WordPress.org

Plugin Directory

WP-SpamShield Anti-Spam

An exceptionally powerful WordPress anti-spam plugin that eliminates comment spam, trackback spam, contact form spam & registration spam.

An exceptionally powerful and user-friendly WordPress anti-spam plugin that eliminates comment spam, trackback spam, contact form spam & registration spam.

The All-in-One Anti-Spam Plugin for WordPress - Without CAPTCHAs

Leading edge WordPress anti-spam protection, with NO CAPTCHAs, challenge questions or other inconvenience to site visitors. This plugin works silently in the background, and simply makes WordPress spam disappear.

Supports: Contact Form 7, Gravity Forms, Ninja Forms, JetPack Contact Forms & Comments, BuddyPress, bbPress, WooCommerce, s2Member, WP-Members, Mailchimp, Fast Secure Contact Form, Formidable Forms, almost all WordPress forms, and almost all WordPress registration forms.

NEED HELP?

Plugin Documentation | Troubleshooting Guide | FAQs | Tech Support

How It Works

Most of the spam hitting your site originates from bots, but quite a bit comes from humans too. This plugin works like a firewall to ensure that your commenters are in fact, human, and that those humans aren't spamming you.

Two Layers of Spam Blocking

There are two layers of leading edge anti-spam protection that work together to block both automated (spambots) and human spam:

  1. The JavaScript/Cookies Anti-Spam Layer
  2. The Algorithmic Anti-Spam Layer

The first anti-spam layer uses a dynamic combination of JavaScript and cookies to weed out the humans from spambots, preventing 100% of automated spam from ever getting to your site. Even if bot authors could engineer a way to break through the JavaScript/Cookies Anti-Spam Layer, the Algorithmic Anti-Spam Layer would still stop almost all of the spam that the JavaScript Layer blocks, and provides close to a fully redundant backstop. This JavaScript Anti-Spam Layer utilizes multiple randomly generated keys, and is algorithmically enhanced to ensure that spambots won't beat it. The powerful Algorithmic Anti-Spam Layer consists of over 100 advanced filters, and eliminates trackback spam and most human spam as well. And, it does all that without hindering legitimate comments, trackbacks, contact forms, or registrations.

No More Wasted Time Sifting Through the Comment Spam Queue

This type of solution works invisibly in the background, with no inconveniences. You won't have to waste valuable time sifting through a spam queue any more, because there won't be anything there.

WP-SpamShield is different from other anti-spam plugins in that it BLOCKS spam at the front door of your site and doesn't allow it into the WordPress database at all. Many other anti-spam plugins simply label a comment as spam, leaving you to sort through a spam queue, which wastes your valuable time. WP-SpamShield will give you back your time!

Improves User-Friendliness of Your Website

If you want to improve the user-friendliness of your site, this is THE anti-spam plugin you want. After all, why should your users have to prove they are human? Since your users won't be inconvenienced by outdated and frustrating anti-spam methods, you will provide a smoother, trouble-free experience for your website users, which leads to improved readership, ad revenue, sales, or other types of conversion, and therefore greater success for your website.

Improves Security

Not allowing spam into the database improves security by potentially preventing SQL injection and XSS exploit attacks through automated spam comment submissions. The plugin also has several other features that improve security, such as blocking certain potentially dangerous URLs in spam comment submissions, and limiting comment size to 15kb. (15kb of text is roughly the equivalent of 3 typed pages in Microsoft Word, single-spaced, so that's more than enough for even the longest of comments.) See this blog post for more info.

Helps Improve Overall Website Performance

The plugin helps keep your WordPress database slimmer and more efficient (keeping your site running faster in the long term) by not allowing the thousands upon thousands of spam comments into it, which could bloat the database and potentially corrupt it. Keeping your database lean is extremely important, because bloated databases result in much longer query times and increased server load, slowing down a site dramatically even for simple functions. If website performance is important to you, then you definitely want an anti-spam plugin like WP-SpamShield instead of a plugin that uses a spam queue. See this FAQ for more detailed info.

ZERO False Positives

It does all this with ZERO false positives, because of the method used to block spam. Notice we didn't say a "low false positive rate" - we said ZERO false positives. If a comment/contact form/registration gets blocked as spam, the user is given instant feedback and has a chance to correct their comment/contact form/registration/etc and try again, which means there cannot be false positives. This leads to fewer frustrated website visitors, and less work for you. We are committed to keeping the promise of zero false positives.

100% Trackback Validation and Anti-Spam

The trackback validation contains a filter that compares the client IP address of the incoming trackback against the IP address of the server where the link is supposedly coming from. If they don't match, then it is guaranteed spam, without fail. This alone eliminates more than 99.99% of trackback spam. Trackback spammers don't send spam out from the same server where their clients' websites reside. There are algorithmic anti-spam filters in place to ensure 100% trackback spam blocking. Although it's far more rare, the plugin protects again pingback spam as well. You can be confident that only legitimate trackbacks and pingbacks will get through.

Includes a Spam-Free Contact Form, and Anti-Spam for Contact Form 7, Gravity Forms, Ninja Forms, JetPack Contact Forms, and Most Other Forms

Includes drop-in spam-free contact form, with easy one-click installation. Easy to use - no configuration necessary, but you can configure it if you like. (See Installation for info.) WP-SpamShield also includes automatic anti-spam protection for Contact Form 7, Gravity Forms, Ninja Forms, JetPack Contact Forms, Fast Secure Contact Forms, Formidable Forms, and more. (You don't have to do a thing...just add your Contact Form 7, Gravity Forms, Ninja Forms, JetPack Contact Forms, or other forms to your site, and they will automatically be protected.) It will automatically protect most forms on your WordPress site from automated spam, even if they are not listed here.

WordPress Registration Anti-Spam

The plugin also includes powerful protection from user registration spam. Once you install WP-SpamShield, you don't have to worry about bots or spammy users signing up any more. (Note: This protects almost all registration forms, including the WordPress default registration form, and registration forms for bbPress, BuddyPress, WooCommerce, s2Member, WP-Members, and many more. See this FAQ for more info.

Stops Email Harvesters

The plugin has a feature to thwart email harvesting bots and keep them from scraping your site for email addresses. (Which helps reduce spam in your email inbox.) The plugin automatically obfuscates plain text email addresses and mailto links in your website content by encoding them into HTML entities (hexadecimal and decimal character codes that look like gibberish to harvesters, but render the email addresses perfectly in a browser). It protects email addresses on pages, posts, comments, excerpts, and text widgets.

Why Not Just Use a CAPTCHA-Based Anti-Spam Method?

The concept of using a CAPTCHA as an anti-spam solution in this modern day and age is flawed for several reasons:

  1. It's an outdated concept that has far outlived its usefulness, and was originally developed before user-friendliness was a high priority.
  2. It goes in the exact opposite direction of user-friendly design principles. Think about it. Users of your website have to type in numbers and letters obscured by squiggly lines and symbols, only to be told they are wrong several times, even after typing in the correct answer. This is proven to hurt website business and revenue because of the negative feelings it causes. People simply don't like CAPTCHAs.
  3. It is not the user's responsibility to separate humans from bots, or to stop spam; it's the web developer's responsibility. Even if the CAPTCHA is simple, and all the user has to do is click a button, it is still annoying and unnecessary. It's one extra step that you are putting between your user and their end goal.
  4. CAPTCHAs can be defeated. In fact, bots have been cracking CAPTCHAs since 2008. The only benefit of a CAPTCHA was that it was considered to be unbeatable by bots. That day is long past.
  5. Why use a CAPTCHA when there are better solutions that don't inconvenience your website users?

Optimized and Scalable - Won't Slow Down Your Site

This plugin has an extremely low overhead and won't slow down your site, unlike some other anti-spam plugins. Each of the filters in the plugin have been benchmarked, and when processing comments for spam, the fastest filters are put at the front of the stack. Once a comment tests positive for spam, the testing process terminates and will not engage the remaining filters. Additionally, as mentioned above, by keeping spam out of the WordPress database altogether, WP-SpamShield helps keep your database slimmer and more efficient, which in turn helps keep your site running faster. This efficiency helps keep the server load down, and helps improve the overall performance of your site. WP-SpamShield is optimized to work well with all major caching plugins.

Faster than the Cloud

Speaking of scalability, WP-SpamShield can kill spam faster than any cloud-based anti-spam solution. Cloud-based anti-spam plugins are inherently slower at processing spam because they have to connect to an external server to check the spam status, which in turn will increase your site's server load. With WP-SpamShield, all anti-spam processing happens directly on your website's server, with lightning speed.

Free for Commercial and Personal Websites

No cost, no hidden fees. This powerful anti-spam plugin is free for both Commercial and Personal use. If you find that WP-SpamShield benefits you, and you're so inclined, then feel free to make a donation.

Responsive and Helpful Tech Support

If you have any issues with the plugin, we are here to help. Simply submit a support request at the WP-SpamShield Support Page, and we'll help you diagnose and fix the issue quickly. Don't take our word for it though - look through our plugin ratings/reviews and notice the high percentage of resolved support threads and satisfied users.

Additional Features

  1. Now WP-SpamShield provides automatic anti-spam protection for: Contact Form 7 forms, Gravity Forms, Ninja Forms, JetPack Contact Forms; BuddyPress, bbPress and WooCommerce registration forms; almost all other WordPress forms; and almost all registration forms!
  2. As of version 1.9.2, WP-SpamShield protects JetPack Comments from spam. (Making it one of the few anti-spam plugins that works with JetPack Comments.)
  3. A counter on your dashboard to keep track of all the spam it's blocking. The numbers will show how effective this plugin is.
  4. See what's been blocked with "Blocked Comment Logging Mode", a temporary diagnostic mode that logs blocked spam (comments, trackbacks, registrations, and contact form submissions) for 7 days, then turns off automatically. If you want to see what spam has been blocked, or verify that everything is working, turn this on and see what WP-SpamShield is protecting your site from.
  5. Multiple languages available and more on the way. Currently includes Dutch (nl_NL), French (fr_FR), German (de_DE), Indonesian (id_ID), Italian (it_IT), and Serbian (sr_RS) translations. Ready for translation into other languages.
  6. Easy to install - truly plug and play. Just upload and activate. (Installation Status on the plugin admin page to let you know if plugin is installed correctly.)
  7. Compatible with, and optimized for all major cache plugins, including WP Super Cache and many others. Not all anti-spam plugins can say that.
  8. Display your blocked spam stats on your site. Customizable widgets for graphic counters to display spam stats, in multiple colors, sizes and options.
  9. Works in WordPress Multisite as well. (See the related FAQ for details.)
  10. Enhanced Comment Blacklist option. Instead of just sending comments to moderation as with WordPress's default Comment Blacklist functionality, with this turned on, anything that matches a string in the blacklist will be completely blocked. Block specific human spammers by IP, email address, or a number of other options. The Enhanced Comment Blacklist has some improvements over the default WordPress blacklist functionality, and adds a link in the comment & contact form notification emails that will let you blacklist a spammer's IP with one click. It also provides some advanced custom options for blocking spam on the built-in contact form.
  11. WP-SpamShield Whitelist option. Allows you to specify certain users who you want to let bypass the antispam filters.
  12. This plugin is legal to use in Germany and the EU, and does not violate European privacy laws. It does not use any type of cloud-based service, spam data is not transmitted from your server to any other server, and all anti-spam processing happens directly on your website's server.
  13. A truly plug and play replacement and upgrade for WP-SpamFree. (This plugin is a far more advanced fork of WP-SpamFree with dramatically improved page load speed, security, and spam blocking power, by its original author.) It will import your old data from WP-SpamFree automatically upon installation and activation, and features you were using on your site previously such as contact forms and spam stats will continue to work without any changes to pages, posts, or theme.

Languages Available

  • English
  • Dutch (nl_NL)
  • French (fr_FR)
  • German (de_DE)
  • Indonesian (id_ID)
  • Italian (it_IT)
  • Serbian (sr_RS)

If you would like to help translate, please get in touch with us.

Requirements

  • WordPress 3.9 or higher (Recommended: WordPress 4.0 or higher)
  • PHP 5.3 or higher (Recommended: PHP 5.4 or higher)
  • Your server must be configured to allow the use of an .htaccess file. (This is enabled by default on the vast majority of servers.)

Please see the plugin documentation's requirements section for more information.

WordPress Without Spam

How does it feel to run a WordPress site without being bombarded by blog comment spam, trackback spam, contact form spam, and registration spam? If you're happy with the WP-SpamShield WordPress anti-spam plugin, let others know by reviewing the plugin!

Requires: 3.9 or higher
Compatible up to: 4.3
Last Updated: 2015-9-5
Active Installs: 100,000+

Ratings

4.8 out of 5 stars

Support

27 of 27 support threads in the last two months have been resolved.

Got something to say? Need help?

Compatibility

+
=
Not enough data

4 people say it works.
0 people say it's broken.

100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,3,3 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1
100,1,1 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,2,2 100,1,1 100,2,2 100,2,2 100,3,3 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 50,2,1 100,1,1 100,1,1 67,3,2 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,2,2 100,1,1 100,2,2 100,2,2 100,1,1 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,3,3 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,2,2 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,2,2 100,1,1 100,2,2 100,2,2 100,3,3 100,2,2 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,3,3 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,2,2
100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1
100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,1,1 100,1,1 100,1,1 100,1,1
100,4,4 100,2,2 100,1,1 100,1,1 100,3,3 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,1,1 100,4,4 100,1,1 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,5,5 100,4,4 100,4,4 100,4,4 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,2,2 100,3,3 100,3,3 100,2,2 100,1,1 100,1,1 100,1,1 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,4,4 100,4,4 100,4,4 100,1,1 100,2,2 100,2,2 100,4,4 100,2,2 100,2,2 100,3,3 100,2,2 100,2,2 100,2,2 100,4,4 100,2,2 100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,1,1 100,3,3 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,4,4 100,4,4 100,4,4 100,1,1 100,2,2 100,2,2 100,4,4 100,3,3 100,2,2 100,3,3 100,2,2 100,2,2 100,2,2 100,4,4 100,2,2 100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,1,1 100,1,1 100,1,1 100,3,3 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,2,2 100,1,1 100,1,1 100,3,3 100,4,4 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,4,4 100,4,4 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,4,4 100,1,1 100,4,4 100,1,1 100,1,1 100,4,4 100,2,2 100,4,4
100,1,1 100,4,4 100,4,4 100,4,4 100,3,3 100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,1,1 100,4,4 100,3,3 100,3,3 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,2,2 100,2,2 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,5,5 100,4,4 100,4,4 100,4,4 100,4,4
100,4,4 100,5,5 100,4,4 100,4,4 100,4,4 100,4,4
100,1,1 100,1,1 100,2,2 100,1,1 100,2,2 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 83,6,5 100,4,4 100,4,4 100,1,1 100,2,2 100,2,2 100,4,4 100,2,2 100,2,2 100,3,3 100,2,2 100,2,2 100,2,2 100,4,4 100,2,2 100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,5,5 100,4,4 100,4,4 100,4,4 100,4,4
100,2,2 100,6,6 100,4,4 100,2,2 100,2,2 100,2,2 100,4,4 100,2,2 100,3,3 100,4,4 100,2,2 100,2,2 100,2,2 100,5,5 100,2,2 100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,2,2 100,1,1 100,2,2 100,1,1 100,2,2 100,4,4 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,4,4 100,4,4
100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,2,2 100,1,1 100,1,1 100,1,1 100,4,4 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,2,2 100,4,4 100,1,1 100,1,1 100,3,3 100,4,4 100,4,4
100,1,1 100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,1,1 100,1,1 100,2,2 100,1,1 100,3,3 100,2,2 100,1,1 100,2,2 100,3,3 100,1,1 100,4,4 100,4,4 100,1,1 100,1,1 100,3,3 100,4,4 100,4,4
100,1,1 100,4,4 100,4,4 100,4,4 100,4,4 100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,1,1 100,4,4 100,3,3 100,4,4 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,4,4 100,6,6 100,4,4 100,4,4 100,4,4 100,4,4
100,1,1 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,7,7 100,4,4 100,4,4 100,4,4 100,4,4
100,4,4 100,5,5 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,8,8 100,4,4 100,4,4 100,4,4 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,5,5 80,5,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,5,5 100,4,4 100,4,4 100,5,5 100,4,4 100,4,4 100,5,5 100,5,5 100,4,4 100,4,4 100,4,4 100,4,4 100,5,5 100,4,4 100,4,4 100,4,4 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,1,1 100,4,4 100,4,4 100,4,4 100,5,5 100,4,4