I'm already tired of Microsoft web-sites. The great company creates repulsive sites and the same foul browser. I wanna say you guys perhaps have never thought about flexibility and usability. It seems the sites of Microsoft were created for robots or some kind of iron things (maybe for cyborgs?). So when I want to learn Silverlight, I'm faced with this:


I have a useful recommendation for Microsoft — Mandership by Artemy Lebedev

P.S.: Anyway I like to use some of Microsoft software, e.g. Visual Studio.

Here are the rules for mod_authz_host sent by our customer:

# Total Networks: 1,549
# Total Subnets:  187,840,256
<Limit GET HEAD POST>
order allow,deny
deny from 95.134.20.245
deny from 12.233.143.165
deny from 58.14.0.0/15
deny from 58.16.0.0/16
deny from 58.17.0.0/17
deny from 58.17.128.0/17
deny from 58.18.0.0/16
deny from 58.19.0.0/16
deny from 58.20.0.0/16
deny from 58.21.0.0/16
deny from 58.22.0.0/15
deny from 58.24.0.0/15
deny from 58.30.0.0/15
deny from 58.32.0.0/13
deny from 58.40.0.0/15
deny from 58.42.0.0/16
deny from 58.43.0.0/16
deny from 58.44.0.0/14
deny from 58.48.0.0/13
deny from 58.56.0.0/15
deny from 58.58.0.0/16
deny from 58.59.0.0/17
deny from 58.59.128.0/17
deny from 58.60.0.0/14
deny from 58.66.0.0/15
deny from 58.68.128.0/17
deny from 58.82.0.0/15
deny from 58.87.64.0/18
deny from 58.99.128.0/17
deny from 58.100.0.0/15
deny from 58.116.0.0/14
deny from 58.128.0.0/13
deny from 58.144.0.0/16
deny from 58.154.0.0/15
deny from 58.192.0.0/15
deny from 58.194.0.0/15
deny from 58.196.0.0/15
deny from 58.198.0.0/15
deny from 58.200.0.0/13
deny from 58.208.0.0/12
deny from 58.240.0.0/15
deny from 58.242.0.0/15
deny from 58.244.0.0/15
deny from 58.246.0.0/15
deny from 58.248.0.0/13
deny from 59.32.0.0/13
deny from 59.40.0.0/15
deny from 59.42.0.0/16
deny from 59.43.0.0/16
deny from 59.44.0.0/14
deny from 59.48.0.0/16
deny from 59.49.0.0/17
deny from 59.49.128.0/17
deny from 59.50.0.0/16
deny from 59.51.0.0/17
deny from 59.51.128.0/17
deny from 59.52.0.0/14
deny from 59.56.0.0/14
deny from 59.60.0.0/15
deny from 59.62.0.0/15
deny from 59.64.0.0/14
deny from 59.68.0.0/14
deny from 59.72.0.0/15
deny from 59.74.0.0/15
deny from 59.76.0.0/16
deny from 59.77.0.0/16
deny from 59.78.0.0/15
deny from 59.80.0.0/14
deny from 59.107.0.0/17
deny from 59.107.128.0/17
deny from 59.108.0.0/15
deny from 59.110.0.0/15
deny from 59.151.0.0/17
deny from 59.155.0.0/16
deny from 59.172.0.0/15
deny from 59.174.0.0/15
deny from 59.191.0.0/17
deny from 59.191.240.0/20
deny from 59.192.0.0/10
deny from 60.0.0.0/13
deny from 60.8.0.0/15
deny from 60.10.0.0/16
deny from 60.11.0.0/16
deny from 60.12.0.0/16
deny from 60.13.0.0/18
deny from 60.13.64.0/18
deny from 60.13.128.0/17
deny from 60.14.0.0/15
deny from 60.16.0.0/13
deny from 60.24.0.0/14
deny from 60.28.0.0/15
deny from 60.30.0.0/16
deny from 60.31.0.0/16
deny from 60.55.0.0/16
deny from 60.63.0.0/16
deny from 60.160.0.0/15
deny from 60.162.0.0/15
deny from 60.164.0.0/15
deny from 60.166.0.0/15
deny from 60.168.0.0/13
deny from 60.176.0.0/12
deny from 60.194.0.0/15
deny from 60.200.0.0/14
deny from 60.204.0.0/16
deny from 60.205.0.0/16
deny from 60.206.0.0/15
deny from 60.208.0.0/13
deny from 60.216.0.0/15
deny from 60.218.0.0/15
deny from 60.220.0.0/14
deny from 60.232.0.0/15
deny from 60.235.0.0/16
deny from 60.245.128.0/17
deny from 60.247.0.0/16
deny from 60.252.0.0/16
deny from 60.253.128.0/17
deny from 60.255.0.0/16
deny from 61.4.80.0/22
deny from 61.4.176.0/20
deny from 61.8.160.0/20
deny from 61.28.0.0/20
deny from 61.28.16.0/20
deny from 61.28.32.0/19
deny from 61.28.64.0/18
deny from 61.29.128.0/18
deny from 61.29.192.0/19
deny from 61.29.224.0/20
deny from 61.29.240.0/20
deny from 61.45.128.0/18
deny from 61.47.128.0/18
deny from 61.48.0.0/14
deny from 61.52.0.0/15
deny from 61.54.0.0/16
deny from 61.55.0.0/16
deny from 61.87.192.0/18
deny from 61.128.0.0/15
deny from 61.130.0.0/15
deny from 61.132.0.0/16
deny from 61.133.0.0/17
deny from 61.133.128.0/17
deny from 61.134.0.0/18
deny from 61.134.64.0/19
deny from 61.134.96.0/19
deny from 61.134.128.0/18
deny from 61.134.192.0/18
deny from 61.135.0.0/16
deny from 61.136.0.0/18
deny from 61.136.64.0/18
deny from 61.136.128.0/17
deny from 61.137.0.0/17
deny from 61.137.128.0/17
deny from 61.138.0.0/18
deny from 61.138.64.0/18
deny from 61.138.128.0/18
deny from 61.138.192.0/18
deny from 61.139.0.0/17
deny from 61.139.128.0/18
deny from 61.139.192.0/18
deny from 61.140.0.0/14
deny from 61.144.0.0/14
deny from 61.148.0.0/15
deny from 61.150.0.0/15
deny from 61.152.0.0/16
deny from 61.153.0.0/16
deny from 61.154.0.0/15
deny from 61.156.0.0/16
deny from 61.157.0.0/16
deny from 61.158.0.0/17
deny from 61.158.128.0/17
deny from 61.159.0.0/18
deny from 61.159.64.0/18
deny from 61.159.128.0/17
deny from 61.160.0.0/16
deny from 61.161.0.0/18
deny from 61.161.64.0/18
deny from 61.161.128.0/17
deny from 61.162.0.0/16
deny from 61.163.0.0/16
deny from 61.164.0.0/16
deny from 61.165.0.0/16
deny from 61.166.0.0/16
deny from 61.167.0.0/16
deny from 61.168.0.0/16
deny from 61.169.0.0/16
deny from 61.170.0.0/15
deny from 61.172.0.0/14
deny from 61.176.0.0/16
deny from 61.177.0.0/16
deny from 61.178.0.0/16
deny from 61.179.0.0/16
deny from 61.180.0.0/17
deny from 61.180.128.0/17
deny from 61.181.0.0/16
deny from 61.182.0.0/16
deny from 61.183.0.0/16
deny from 61.184.0.0/14
deny from 61.188.0.0/16
deny from 61.189.0.0/17
deny from 61.189.128.0/17
deny from 61.190.0.0/15
deny from 61.232.0.0/14
deny from 61.236.0.0/15
deny from 61.240.0.0/14
deny from 110.6.0.0/15
deny from 110.16.0.0/14
deny from 110.40.0.0/14
deny from 110.48.0.0/16
deny from 110.51.0.0/16
deny from 110.52.0.0/15
deny from 110.56.0.0/13
deny from 112.0.0.0/10
deny from 112.64.0.0/15
deny from 112.66.0.0/15
deny from 112.73.0.0/16
deny from 112.74.0.0/15
deny from 112.80.0.0/13
deny from 112.88.0.0/13
deny from 112.96.0.0/15
deny from 112.98.0.0/15
deny from 112.100.0.0/14
deny from 112.109.128.0/17
deny from 112.111.0.0/16
deny from 112.112.0.0/14
deny from 112.116.0.0/15
deny from 112.122.0.0/15
deny from 112.124.0.0/14
deny from 112.128.0.0/14
deny from 112.132.0.0/16
deny from 112.192.0.0/14
deny from 112.224.0.0/11
deny from 113.0.0.0/13
deny from 113.8.0.0/15
deny from 113.11.192.0/19
deny from 113.12.0.0/14
deny from 113.16.0.0/15
deny from 113.18.0.0/16
deny from 113.24.0.0/14
deny from 113.31.0.0/16
deny from 113.44.0.0/14
deny from 113.48.0.0/14
deny from 113.52.160.0/19
deny from 113.54.0.0/15
deny from 113.56.0.0/15
deny from 113.58.0.0/16
deny from 113.59.0.0/17
deny from 113.62.0.0/15
deny from 113.64.0.0/11
deny from 113.96.0.0/12
deny from 113.112.0.0/13
deny from 113.120.0.0/13
deny from 113.128.0.0/15
deny from 113.130.96.0/20
deny from 113.130.112.0/21
deny from 113.132.0.0/14
deny from 113.136.0.0/13
deny from 113.194.0.0/15
deny from 113.200.0.0/15
deny from 113.202.0.0/16
deny from 113.204.0.0/14
deny from 113.208.96.0/19
deny from 113.208.128.0/17
deny from 113.209.0.0/16
deny from 113.212.0.0/18
deny from 113.213.0.0/17
deny from 113.214.0.0/15
deny from 113.218.0.0/15
deny from 113.220.0.0/14
deny from 113.224.0.0/12
deny from 113.240.0.0/13
deny from 113.248.0.0/14
deny from 114.28.0.0/16
deny from 114.54.0.0/15
deny from 114.60.0.0/14
deny from 114.64.0.0/14
deny from 114.68.0.0/16
deny from 114.80.0.0/12
deny from 114.96.0.0/13
deny from 114.104.0.0/14
deny from 114.110.0.0/20
deny from 114.110.64.0/18
deny from 114.111.0.0/19
deny from 114.111.160.0/19
deny from 114.112.0.0/14
deny from 114.116.0.0/15
deny from 114.118.0.0/15
deny from 114.132.0.0/16
deny from 114.135.0.0/16
deny from 114.138.0.0/15
deny from 114.141.128.0/18
deny from 114.196.0.0/15
deny from 114.208.0.0/14
deny from 114.212.0.0/15
deny from 114.214.0.0/16
deny from 114.215.0.0/16
deny from 114.216.0.0/13
deny from 114.224.0.0/12
deny from 114.240.0.0/12
deny from 115.24.0.0/14
deny from 115.28.0.0/15
deny from 115.32.0.0/14
deny from 115.44.0.0/15
deny from 115.46.0.0/16
deny from 115.47.0.0/16
deny from 115.48.0.0/12
deny from 115.84.0.0/18
deny from 115.84.192.0/19
deny from 115.85.192.0/18
deny from 115.100.0.0/14
deny from 115.104.0.0/14
deny from 115.120.0.0/14
deny from 115.124.16.0/20
deny from 115.148.0.0/14
deny from 115.152.0.0/15
deny from 115.154.0.0/15
deny from 115.156.0.0/15
deny from 115.158.0.0/16
deny from 115.159.0.0/16
deny from 115.168.0.0/14
deny from 115.172.0.0/14
deny from 115.180.0.0/14
deny from 115.192.0.0/11
deny from 115.224.0.0/12
deny from 116.1.0.0/16
deny from 116.2.0.0/15
deny from 116.4.0.0/14
deny from 116.8.0.0/14
deny from 116.13.0.0/16
deny from 116.16.0.0/12
deny from 116.52.0.0/14
deny from 116.56.0.0/15
deny from 116.58.128.0/20
deny from 116.58.208.0/20
deny from 116.60.0.0/14
deny from 116.66.0.0/17
deny from 116.69.0.0/16
deny from 116.70.0.0/17
deny from 116.76.0.0/15
deny from 116.78.0.0/15
deny from 116.89.144.0/20
deny from 116.90.80.0/20
deny from 116.90.184.0/21
deny from 116.95.0.0/16
deny from 116.112.0.0/14
deny from 116.116.0.0/15
deny from 116.128.0.0/10
deny from 116.192.0.0/16
deny from 116.193.16.0/20
deny from 116.193.32.0/19
deny from 116.194.0.0/15
deny from 116.196.0.0/16
deny from 116.198.0.0/16
deny from 116.199.0.0/17
deny from 116.199.128.0/19
deny from 116.204.0.0/15
deny from 116.207.0.0/16
deny from 116.208.0.0/14
deny from 116.212.160.0/20
deny from 116.213.64.0/18
deny from 116.213.128.0/17
deny from 116.214.32.0/19
deny from 116.214.64.0/20
deny from 116.214.128.0/17
deny from 116.215.0.0/16
deny from 116.216.0.0/14
deny from 116.224.0.0/12
deny from 116.242.0.0/15
deny from 116.244.0.0/15
deny from 116.246.0.0/15
deny from 116.248.0.0/15
deny from 116.252.0.0/15
deny from 116.254.128.0/17
deny from 116.255.128.0/17
deny from 117.8.0.0/13
deny from 117.21.0.0/16
deny from 117.22.0.0/15
deny from 117.24.0.0/13
deny from 117.32.0.0/13
deny from 117.40.0.0/14
deny from 117.44.0.0/15
deny from 117.48.0.0/14
deny from 117.53.48.0/20
deny from 117.53.176.0/20
deny from 117.57.0.0/16
deny from 117.58.0.0/17
deny from 117.59.0.0/16
deny from 117.60.0.0/14
deny from 117.64.0.0/13
deny from 117.72.0.0/15
deny from 117.74.64.0/20
deny from 117.74.128.0/17
deny from 117.75.0.0/16
deny from 117.76.0.0/14
deny from 117.80.0.0/12
deny from 117.100.0.0/15
deny from 117.103.16.0/20
deny from 117.103.128.0/20
deny from 117.106.0.0/15
deny from 117.112.0.0/13
deny from 117.120.64.0/18
deny from 117.120.128.0/17
deny from 117.121.0.0/17
deny from 117.121.128.0/18
deny from 117.121.192.0/21
deny from 117.122.128.0/17
deny from 117.124.0.0/14
deny from 117.128.0.0/10
deny from 118.24.0.0/13
deny from 118.64.0.0/15
deny from 118.66.0.0/16
deny from 118.67.112.0/20
deny from 118.72.0.0/13
deny from 118.80.0.0/15
deny from 118.84.0.0/15
deny from 118.88.32.0/19
deny from 118.88.64.0/18
deny from 118.88.128.0/17
deny from 118.89.0.0/16
deny from 118.91.240.0/20
deny from 118.102.16.0/20
deny from 118.112.0.0/13
deny from 118.120.0.0/14
deny from 118.124.0.0/15
deny from 118.126.0.0/16
deny from 118.132.0.0/14
deny from 118.144.0.0/14
deny from 118.178.0.0/16
deny from 118.180.0.0/14
deny from 118.184.0.0/13
deny from 118.192.0.0/14
deny from 118.196.0.0/14
deny from 118.200.0.0/15
deny from 118.202.0.0/15
deny from 118.204.0.0/14
deny from 118.212.0.0/16
deny from 118.213.0.0/16
deny from 118.224.0.0/14
deny from 118.228.0.0/15
deny from 118.230.0.0/16
deny from 118.239.0.0/16
deny from 118.242.0.0/16
deny from 118.244.0.0/14
deny from 118.248.0.0/13
deny from 119.0.0.0/15
deny from 119.2.0.0/19
deny from 119.2.128.0/17
deny from 119.3.0.0/16
deny from 119.4.0.0/14
deny from 119.8.0.0/15
deny from 119.10.0.0/17
deny from 119.15.136.0/21
deny from 119.16.0.0/16
deny from 119.18.192.0/20
deny from 119.18.208.0/21
deny from 119.18.224.0/20
deny from 119.18.240.0/20
deny from 119.19.0.0/16
deny from 119.20.0.0/14
deny from 119.27.64.0/18
deny from 119.27.160.0/19
deny from 119.27.192.0/18
deny from 119.28.0.0/15
deny from 119.30.48.0/20
deny from 119.31.192.0/19
deny from 119.32.0.0/14
deny from 119.36.0.0/16
deny from 119.37.0.0/17
deny from 119.37.128.0/18
deny from 119.37.192.0/18
deny from 119.38.0.0/17
deny from 119.38.128.0/18
deny from 119.38.192.0/20
deny from 119.38.208.0/20
deny from 119.38.224.0/19
deny from 119.39.0.0/16
deny from 119.40.0.0/18
deny from 119.40.64.0/20
deny from 119.40.128.0/17
deny from 119.41.0.0/16
deny from 119.42.0.0/19
deny from 119.42.136.0/21
deny from 119.42.224.0/19
deny from 119.44.0.0/15
deny from 119.48.0.0/13
deny from 119.57.0.0/16
deny from 119.58.0.0/16
deny from 119.59.128.0/17
deny from 119.60.0.0/16
deny from 119.61.0.0/16
deny from 119.62.0.0/16
deny from 119.63.32.0/19
deny from 119.75.208.0/20
deny from 119.78.0.0/15
deny from 119.80.0.0/16
deny from 119.81.0.0/16
deny from 119.84.0.0/14
deny from 119.88.0.0/14
deny from 119.96.0.0/13
deny from 119.108.0.0/15
deny from 119.112.0.0/13
deny from 119.120.0.0/13
deny from 119.128.0.0/12
deny from 119.144.0.0/14
deny from 119.148.160.0/20
deny from 119.161.128.0/17
deny from 119.162.0.0/15
deny from 119.164.0.0/14
deny from 119.176.0.0/12
deny from 119.232.0.0/15
deny from 119.235.128.0/18
deny from 119.248.0.0/14
deny from 119.253.0.0/16
deny from 119.254.0.0/15
deny from 120.0.0.0/12
deny from 120.24.0.0/14
deny from 120.30.0.0/16
deny from 120.31.0.0/16
deny from 120.32.0.0/13
deny from 120.40.0.0/14
deny from 120.44.0.0/14
deny from 120.48.0.0/15
deny from 120.52.0.0/14
deny from 120.64.0.0/14
deny from 120.68.0.0/14
deny from 120.72.32.0/19
deny from 120.72.128.0/17
deny from 120.76.0.0/14
deny from 120.80.0.0/13
deny from 120.90.0.0/15
deny from 120.92.0.0/16
deny from 120.94.0.0/16
deny from 120.95.0.0/16
deny from 120.128.0.0/14
deny from 120.132.0.0/17
deny from 120.132.128.0/17
deny from 120.133.0.0/16
deny from 120.134.0.0/15
deny from 120.136.128.0/18
deny from 120.137.0.0/17
deny from 120.192.0.0/10
deny from 121.0.16.0/20
deny from 121.4.0.0/15
deny from 121.8.0.0/13
deny from 121.16.0.0/13
deny from 121.24.0.0/14
deny from 121.28.0.0/15
deny from 121.30.0.0/16
deny from 121.31.0.0/16
deny from 121.32.0.0/14
deny from 121.36.0.0/16
deny from 121.37.0.0/16
deny from 121.38.0.0/15
deny from 121.40.0.0/14
deny from 121.46.0.0/18
deny from 121.46.128.0/17
deny from 121.47.0.0/16
deny from 121.48.0.0/15
deny from 121.51.0.0/16
deny from 121.52.160.0/19
deny from 121.52.208.0/20
deny from 121.52.224.0/19
deny from 121.55.0.0/18
deny from 121.56.0.0/15
deny from 121.58.0.0/17
deny from 121.58.144.0/20
deny from 121.59.0.0/16
deny from 121.60.0.0/14
deny from 121.68.0.0/14
deny from 121.76.0.0/15
deny from 121.79.128.0/18
deny from 121.89.0.0/16
deny from 121.100.128.0/17
deny from 121.101.208.0/20
deny from 121.192.0.0/16
deny from 121.193.0.0/16
deny from 121.194.0.0/15
deny from 121.196.0.0/14
deny from 121.201.0.0/16
deny from 121.204.0.0/14
deny from 121.224.0.0/12
deny from 121.248.0.0/14
deny from 121.255.0.0/16
deny from 122.0.64.0/18
deny from 122.0.128.0/17
deny from 122.4.0.0/14
deny from 122.8.0.0/13
deny from 122.48.0.0/16
deny from 122.49.0.0/18
deny from 122.51.0.0/16
deny from 122.64.0.0/11
deny from 122.96.0.0/15
deny from 122.102.0.0/20
deny from 122.102.64.0/20
deny from 122.102.80.0/20
deny from 122.112.0.0/14
deny from 122.119.0.0/16
deny from 122.136.0.0/13
deny from 122.144.128.0/17
deny from 122.152.192.0/18
deny from 122.156.0.0/14
deny from 122.192.0.0/14
deny from 122.198.0.0/16
deny from 122.200.64.0/18
deny from 122.204.0.0/14
deny from 122.224.0.0/12
deny from 122.240.0.0/13
deny from 122.248.48.0/20
deny from 123.0.128.0/18
deny from 123.4.0.0/14
deny from 123.8.0.0/13
deny from 123.49.128.0/17
deny from 123.52.0.0/14
deny from 123.56.0.0/13
deny from 123.64.0.0/11
deny from 123.96.0.0/15
deny from 123.98.0.0/17
deny from 123.99.128.0/17
deny from 123.100.0.0/19
deny from 123.101.0.0/16
deny from 123.103.0.0/17
deny from 123.108.128.0/20
deny from 123.108.208.0/20
deny from 123.112.0.0/12
deny from 123.128.0.0/13
deny from 123.136.80.0/20
deny from 123.137.0.0/16
deny from 123.138.0.0/15
deny from 123.144.0.0/14
deny from 123.148.0.0/16
deny from 123.149.0.0/16
deny from 123.150.0.0/15
deny from 123.152.0.0/13
deny from 123.160.0.0/14
deny from 123.164.0.0/14
deny from 123.168.0.0/14
deny from 123.172.0.0/15
deny from 123.174.0.0/15
deny from 123.176.80.0/20
deny from 123.177.0.0/16
deny from 123.178.0.0/15
deny from 123.180.0.0/14
deny from 123.184.0.0/14
deny from 123.188.0.0/14
deny from 123.196.0.0/15
deny from 123.199.128.0/17
deny from 123.206.0.0/15
deny from 123.232.0.0/14
deny from 123.242.0.0/17
deny from 123.244.0.0/14
deny from 123.249.0.0/16
deny from 123.253.0.0/16
deny from 124.6.64.0/18
deny from 124.14.0.0/15
deny from 124.16.0.0/15
deny from 124.20.0.0/16
deny from 124.21.0.0/20
deny from 124.21.16.0/20
deny from 124.21.32.0/19
deny from 124.21.64.0/18
deny from 124.21.128.0/17
deny from 124.22.0.0/15
deny from 124.28.192.0/18
deny from 124.29.0.0/17
deny from 124.31.0.0/16
deny from 124.40.112.0/20
deny from 124.40.128.0/18
deny from 124.42.0.0/17
deny from 124.42.128.0/17
deny from 124.47.0.0/18
deny from 124.64.0.0/15
deny from 124.66.0.0/17
deny from 124.67.0.0/16
deny from 124.68.0.0/14
deny from 124.72.0.0/16
deny from 124.73.0.0/16
deny from 124.74.0.0/15
deny from 124.76.0.0/14
deny from 124.88.0.0/16
deny from 124.89.0.0/17
deny from 124.89.128.0/17
deny from 124.90.0.0/15
deny from 124.92.0.0/14
deny from 124.108.8.0/21
deny from 124.108.40.0/21
deny from 124.112.0.0/15
deny from 124.114.0.0/15
deny from 124.116.0.0/16
deny from 124.117.0.0/16
deny from 124.118.0.0/15
deny from 124.126.0.0/15
deny from 124.128.0.0/13
deny from 124.147.128.0/17
deny from 124.156.0.0/16
deny from 124.160.0.0/16
deny from 124.161.0.0/16
deny from 124.162.0.0/16
deny from 124.163.0.0/16
deny from 124.164.0.0/14
deny from 124.172.0.0/15
deny from 124.174.0.0/15
deny from 124.192.0.0/15
deny from 124.196.0.0/16
deny from 124.200.0.0/13
deny from 124.220.0.0/14
deny from 124.224.0.0/16
deny from 124.225.0.0/16
deny from 124.226.0.0/15
deny from 124.228.0.0/14
deny from 124.232.0.0/15
deny from 124.234.0.0/15
deny from 124.236.0.0/14
deny from 124.240.0.0/17
deny from 124.240.128.0/18
deny from 124.242.0.0/16
deny from 124.243.192.0/18
deny from 124.248.0.0/17
deny from 124.249.0.0/16
deny from 124.250.0.0/15
deny from 124.254.0.0/18
deny from 125.31.192.0/18
deny from 125.32.0.0/16
deny from 125.33.0.0/16
deny from 125.34.0.0/16
deny from 125.35.0.0/17
deny from 125.35.128.0/17
deny from 125.36.0.0/14
deny from 125.40.0.0/13
deny from 125.58.128.0/17
deny from 125.61.128.0/17
deny from 125.62.0.0/18
deny from 125.64.0.0/13
deny from 125.72.0.0/16
deny from 125.73.0.0/16
deny from 125.74.0.0/15
deny from 125.76.0.0/17
deny from 125.76.128.0/17
deny from 125.77.0.0/16
deny from 125.78.0.0/15
deny from 125.80.0.0/13
deny from 125.88.0.0/13
deny from 125.96.0.0/15
deny from 125.98.0.0/16
deny from 125.104.0.0/13
deny from 125.112.0.0/12
deny from 125.169.0.0/16
deny from 125.171.0.0/16
deny from 125.208.0.0/18
deny from 125.210.0.0/16
deny from 125.211.0.0/16
deny from 125.213.0.0/17
deny from 125.214.96.0/19
deny from 125.215.0.0/18
deny from 125.216.0.0/15
deny from 125.218.0.0/16
deny from 125.219.0.0/16
deny from 125.220.0.0/15
deny from 125.222.0.0/15
deny from 125.254.128.0/18
deny from 125.254.192.0/18
deny from 134.196.0.0/16
deny from 159.226.0.0/16
deny from 161.207.0.0/16
deny from 162.105.0.0/16
deny from 166.111.0.0/16
deny from 167.139.0.0/16
deny from 168.160.0.0/16
deny from 169.211.1.0/24
deny from 192.83.122.0/24
deny from 192.83.169.0/24
deny from 192.124.154.0/24
deny from 192.188.170.0/24
deny from 198.17.7.0/24
deny from 202.0.110.0/24
deny from 202.0.176.0/22
deny from 202.4.128.0/19
deny from 202.4.252.0/22
deny from 202.8.128.0/19
deny from 202.10.64.0/20
deny from 202.14.88.0/24
deny from 202.14.235.0/24
deny from 202.14.236.0/23
deny from 202.14.238.0/24
deny from 202.20.120.0/24
deny from 202.22.248.0/22
deny from 202.22.252.0/22
deny from 202.38.0.0/23
deny from 202.38.2.0/23
deny from 202.38.4.0/22
deny from 202.38.8.0/21
deny from 202.38.64.0/19
deny from 202.38.96.0/19
deny from 202.38.128.0/23
deny from 202.38.130.0/23
deny from 202.38.132.0/23
deny from 202.38.134.0/24
deny from 202.38.135.0/24
deny from 202.38.136.0/24
deny from 202.38.137.0/24
deny from 202.38.138.0/24
deny from 202.38.140.0/23
deny from 202.38.142.0/24
deny from 202.38.143.0/24
deny from 202.38.146.0/23
deny from 202.38.149.0/24
deny from 202.38.150.0/23
deny from 202.38.152.0/23
deny from 202.38.154.0/23
deny from 202.38.156.0/24
deny from 202.38.158.0/23
deny from 202.38.160.0/23
deny from 202.38.164.0/22
deny from 202.38.168.0/24
deny from 202.38.169.0/24
deny from 202.38.170.0/24
deny from 202.38.171.0/24
deny from 202.38.172.0/24
deny from 202.38.173.0/24
deny from 202.38.174.0/24
deny from 202.38.175.0/24
deny from 202.38.176.0/23
deny from 202.38.184.0/21
deny from 202.38.192.0/18
deny from 202.41.152.0/21
deny from 202.41.240.0/20
deny from 202.43.144.0/20
deny from 202.46.32.0/19
deny from 202.46.224.0/20
deny from 202.60.112.0/20
deny from 202.63.248.0/22
deny from 202.69.4.0/22
deny from 202.69.16.0/20
deny from 202.70.0.0/19
deny from 202.74.8.0/21
deny from 202.75.208.0/20
deny from 202.85.208.0/20
deny from 202.90.0.0/22
deny from 202.90.224.0/20
deny from 202.90.252.0/22
deny from 202.91.0.0/22
deny from 202.91.128.0/22
deny from 202.91.176.0/20
deny from 202.91.224.0/19
deny from 202.92.0.0/22
deny from 202.92.252.0/22
deny from 202.93.0.0/22
deny from 202.93.252.0/22
deny from 202.95.0.0/22
deny from 202.95.4.0/22
deny from 202.95.8.0/21
deny from 202.95.16.0/20
deny from 202.95.252.0/22
deny from 202.96.0.0/18
deny from 202.96.64.0/21
deny from 202.96.72.0/21
deny from 202.96.80.0/20
deny from 202.96.96.0/21
deny from 202.96.104.0/21
deny from 202.96.112.0/20
deny from 202.96.128.0/21
deny from 202.96.136.0/21
deny from 202.96.144.0/20
deny from 202.96.160.0/21
deny from 202.96.168.0/21
deny from 202.96.176.0/20
deny from 202.96.192.0/21
deny from 202.96.200.0/21
deny from 202.96.208.0/20
deny from 202.96.224.0/21
deny from 202.96.232.0/21
deny from 202.96.240.0/20
deny from 202.97.0.0/21
deny from 202.97.8.0/21
deny from 202.97.16.0/20
deny from 202.97.32.0/19
deny from 202.97.64.0/19
deny from 202.97.96.0/20
deny from 202.97.112.0/20
deny from 202.97.128.0/18
deny from 202.97.192.0/19
deny from 202.97.224.0/21
deny from 202.97.232.0/21
deny from 202.97.240.0/20
deny from 202.98.0.0/21
deny from 202.98.8.0/21
deny from 202.98.16.0/20
deny from 202.98.32.0/21
deny from 202.98.40.0/21
deny from 202.98.48.0/20
deny from 202.98.64.0/19
deny from 202.98.96.0/21
deny from 202.98.104.0/21
deny from 202.98.112.0/20
deny from 202.98.128.0/19
deny from 202.98.160.0/21
deny from 202.98.168.0/21
deny from 202.98.176.0/20
deny from 202.98.192.0/21
deny from 202.98.200.0/21
deny from 202.98.208.0/20
deny from 202.98.224.0/21
deny from 202.98.232.0/21
deny from 202.98.240.0/20
deny from 202.99.0.0/18
deny from 202.99.64.0/19
deny from 202.99.96.0/21
deny from 202.99.104.0/21
deny from 202.99.112.0/20
deny from 202.99.128.0/19
deny from 202.99.160.0/21
deny from 202.99.168.0/21
deny from 202.99.176.0/20
deny from 202.99.192.0/21
deny from 202.99.200.0/21
deny from 202.99.208.0/20
deny from 202.99.224.0/21
deny from 202.99.232.0/21
deny from 202.99.240.0/20
deny from 202.100.0.0/21
deny from 202.100.8.0/21
deny from 202.100.16.0/20
deny from 202.100.32.0/19
deny from 202.100.64.0/21
deny from 202.100.72.0/21
deny from 202.100.80.0/20
deny from 202.100.96.0/21
deny from 202.100.104.0/21
deny from 202.100.112.0/20
deny from 202.100.128.0/21
deny from 202.100.136.0/21
deny from 202.100.144.0/20
deny from 202.100.160.0/21
deny from 202.100.168.0/21
deny from 202.100.176.0/20
deny from 202.100.192.0/21
deny from 202.100.200.0/21
deny from 202.100.208.0/20
deny from 202.100.224.0/19
deny from 202.101.0.0/18
deny from 202.101.64.0/19
deny from 202.101.96.0/19
deny from 202.101.128.0/18
deny from 202.101.192.0/19
deny from 202.101.224.0/21
deny from 202.101.232.0/21
deny from 202.101.240.0/20
deny from 202.102.0.0/19
deny from 202.102.32.0/19
deny from 202.102.64.0/18
deny from 202.102.128.0/21
deny from 202.102.136.0/21
deny from 202.102.144.0/20
deny from 202.102.160.0/19
deny from 202.102.192.0/21
deny from 202.102.200.0/21
deny from 202.102.208.0/20
deny from 202.102.224.0/21
deny from 202.102.232.0/21
deny from 202.102.240.0/20
deny from 202.103.0.0/21
deny from 202.103.8.0/21
deny from 202.103.16.0/20
deny from 202.103.32.0/19
deny from 202.103.64.0/19
deny from 202.103.96.0/21
deny from 202.103.104.0/21
deny from 202.103.112.0/20
deny from 202.103.128.0/18
deny from 202.103.192.0/19
deny from 202.103.224.0/21
deny from 202.103.232.0/21
deny from 202.103.240.0/20
deny from 202.104.0.0/15
deny from 202.106.0.0/16
deny from 202.107.0.0/17
deny from 202.107.128.0/17
deny from 202.108.0.0/16
deny from 202.109.0.0/16
deny from 202.110.0.0/18
deny from 202.110.64.0/18
deny from 202.110.128.0/18
deny from 202.110.192.0/18
deny from 202.111.0.0/17
deny from 202.111.128.0/19
deny from 202.111.160.0/19
deny from 202.111.192.0/18
deny from 202.112.0.0/16
deny from 202.113.0.0/20
deny from 202.113.16.0/20
deny from 202.113.32.0/19
deny from 202.113.64.0/18
deny from 202.113.128.0/18
deny from 202.113.192.0/19
deny from 202.113.224.0/20
deny from 202.113.240.0/20
deny from 202.114.0.0/19
deny from 202.114.32.0/19
deny from 202.114.64.0/18
deny from 202.114.128.0/17
deny from 202.115.0.0/19
deny from 202.115.32.0/19
deny from 202.115.64.0/18
deny from 202.115.128.0/17
deny from 202.116.0.0/19
deny from 202.116.32.0/20
deny from 202.116.48.0/20
deny from 202.116.64.0/19
deny from 202.116.96.0/19
deny from 202.116.128.0/17
deny from 202.117.0.0/18
deny from 202.117.64.0/18
deny from 202.117.128.0/17
deny from 202.118.0.0/19
deny from 202.118.32.0/19
deny from 202.118.64.0/18
deny from 202.118.128.0/17
deny from 202.119.0.0/19
deny from 202.119.32.0/19
deny from 202.119.64.0/20
deny from 202.119.80.0/20
deny from 202.119.96.0/19
deny from 202.119.128.0/17
deny from 202.120.0.0/18
deny from 202.120.64.0/18
deny from 202.120.128.0/17
deny from 202.121.0.0/16
deny from 202.122.0.0/21
deny from 202.122.32.0/21
deny from 202.122.64.0/19
deny from 202.122.112.0/21
deny from 202.122.128.0/24
deny from 202.123.96.0/20
deny from 202.125.176.0/20
deny from 202.127.0.0/23
deny from 202.127.2.0/24
deny from 202.127.3.0/24
deny from 202.127.4.0/24
deny from 202.127.5.0/24
deny from 202.127.6.0/23
deny from 202.127.12.0/22
deny from 202.127.16.0/20
deny from 202.127.40.0/21
deny from 202.127.48.0/20
deny from 202.127.112.0/20
deny from 202.127.128.0/20
deny from 202.127.144.0/20
deny from 202.127.160.0/21
deny from 202.127.192.0/23
deny from 202.127.194.0/23
deny from 202.127.196.0/22
deny from 202.127.200.0/21
deny from 202.127.208.0/24
deny from 202.127.209.0/24
deny from 202.127.212.0/22
deny from 202.127.216.0/21
deny from 202.127.224.0/19
deny from 202.130.0.0/19
deny from 202.130.224.0/19
deny from 202.131.16.0/21
deny from 202.131.48.0/20
deny from 202.131.208.0/20
deny from 202.136.48.0/20
deny from 202.136.208.0/20
deny from 202.136.224.0/20
deny from 202.141.160.0/19
deny from 202.142.16.0/20
deny from 202.143.16.0/20
deny from 202.148.96.0/19
deny from 202.149.160.0/19
deny from 202.149.224.0/19
deny from 202.150.16.0/20
deny from 202.152.176.0/20
deny from 202.153.48.0/20
deny from 202.158.160.0/19
deny from 202.160.176.0/20
deny from 202.164.0.0/20
deny from 202.164.25.0/24
deny from 202.165.96.0/20
deny from 202.165.176.0/20
deny from 202.165.208.0/20
deny from 202.168.160.0/20
deny from 202.168.176.0/20
deny from 202.170.128.0/19
deny from 202.170.216.0/21
deny from 202.173.8.0/21
deny from 202.173.224.0/19
deny from 202.179.240.0/20
deny from 202.180.128.0/19
deny from 202.181.112.0/20
deny from 202.189.80.0/20
deny from 202.192.0.0/13
deny from 202.200.0.0/14
deny from 202.204.0.0/14
deny from 203.18.50.0/24
deny from 203.79.0.0/20
deny from 203.80.144.0/20
deny from 203.81.16.0/20
deny from 203.83.56.0/21
deny from 203.86.0.0/19
deny from 203.86.32.0/19
deny from 203.86.64.0/20
deny from 203.86.80.0/20
deny from 203.88.32.0/19
deny from 203.88.192.0/19
deny from 203.89.0.0/22
deny from 203.90.0.0/22
deny from 203.90.128.0/19
deny from 203.90.160.0/19
deny from 203.90.192.0/19
deny from 203.91.32.0/19
deny from 203.91.96.0/20
deny from 203.91.120.0/21
deny from 203.92.0.0/22
deny from 203.92.160.0/19
deny from 203.93.0.0/22
deny from 203.93.4.0/22
deny from 203.93.8.0/24
deny from 203.93.9.0/24
deny from 203.93.10.0/23
deny from 203.93.12.0/22
deny from 203.93.16.0/20
deny from 203.93.32.0/19
deny from 203.93.64.0/18
deny from 203.93.128.0/21
deny from 203.93.136.0/22
deny from 203.93.140.0/24
deny from 203.93.141.0/24
deny from 203.93.142.0/23
deny from 203.93.144.0/20
deny from 203.93.160.0/19
deny from 203.93.192.0/18
deny from 203.94.0.0/22
deny from 203.94.4.0/22
deny from 203.94.8.0/21
deny from 203.94.16.0/20
deny from 203.95.0.0/21
deny from 203.95.96.0/20
deny from 203.95.112.0/20
deny from 203.99.16.0/20
deny from 203.99.80.0/20
deny from 203.100.32.0/20
deny from 203.100.80.0/20
deny from 203.100.96.0/19
deny from 203.100.192.0/20
deny from 203.110.160.0/19
deny from 203.118.192.0/19
deny from 203.118.248.0/22
deny from 203.119.24.0/21
deny from 203.119.32.0/22
deny from 203.128.32.0/19
deny from 203.128.96.0/19
deny from 203.130.32.0/19
deny from 203.132.32.0/19
deny from 203.134.240.0/21
deny from 203.135.96.0/20
deny from 203.135.112.0/20
deny from 203.135.160.0/20
deny from 203.142.219.0/24
deny from 203.148.0.0/18
deny from 203.152.64.0/19
deny from 203.156.192.0/18
deny from 203.158.16.0/21
deny from 203.161.192.0/19
deny from 203.166.160.0/19
deny from 203.171.224.0/20
deny from 203.174.7.0/24
deny from 203.174.96.0/19
deny from 203.175.128.0/19
deny from 203.175.192.0/18
deny from 203.176.168.0/21
deny from 203.184.80.0/20
deny from 203.187.160.0/19
deny from 203.190.96.0/20
deny from 203.191.16.0/20
deny from 203.191.64.0/18
deny from 203.191.144.0/21
deny from 203.191.152.0/21
deny from 203.192.0.0/19
deny from 203.196.0.0/21
deny from 203.207.64.0/18
deny from 203.207.128.0/17
deny from 203.208.0.0/20
deny from 203.208.16.0/22
deny from 203.208.32.0/19
deny from 203.209.224.0/19
deny from 203.212.0.0/20
deny from 203.212.80.0/20
deny from 203.222.192.0/20
deny from 203.223.0.0/20
deny from 210.2.0.0/20
deny from 210.2.16.0/20
deny from 210.5.0.0/19
deny from 210.5.144.0/20
deny from 210.12.0.0/18
deny from 210.12.64.0/18
deny from 210.12.128.0/18
deny from 210.12.192.0/18
deny from 210.13.0.0/18
deny from 210.13.64.0/18
deny from 210.13.128.0/17
deny from 210.14.64.0/19
deny from 210.14.112.0/20
deny from 210.14.128.0/19
deny from 210.14.160.0/19
deny from 210.14.192.0/19
deny from 210.14.224.0/19
deny from 210.15.0.0/19
deny from 210.15.32.0/19
deny from 210.15.64.0/19
deny from 210.15.96.0/19
deny from 210.15.128.0/18
deny from 210.16.128.0/18
deny from 210.21.0.0/17
deny from 210.21.128.0/17
deny from 210.22.0.0/16
deny from 210.23.32.0/19
deny from 210.25.0.0/16
deny from 210.26.0.0/15
deny from 210.28.0.0/14
deny from 210.32.0.0/14
deny from 210.36.0.0/14
deny from 210.40.0.0/13
deny from 210.51.0.0/16
deny from 210.52.0.0/18
deny from 210.52.64.0/18
deny from 210.52.128.0/17
deny from 210.53.0.0/17
deny from 210.53.128.0/17
deny from 210.56.192.0/19
deny from 210.72.0.0/17
deny from 210.72.128.0/19
deny from 210.72.160.0/19
deny from 210.72.192.0/18
deny from 210.73.0.0/19
deny from 210.73.32.0/19
deny from 210.73.64.0/18
deny from 210.73.128.0/17
deny from 210.74.0.0/19
deny from 210.74.32.0/19
deny from 210.74.64.0/19
deny from 210.74.96.0/19
deny from 210.74.128.0/19
deny from 210.74.160.0/19
deny from 210.74.192.0/18
deny from 210.75.0.0/16
deny from 210.76.0.0/19
deny from 210.76.32.0/19
deny from 210.76.64.0/18
deny from 210.76.128.0/17
deny from 210.77.0.0/16
deny from 210.78.0.0/19
deny from 210.78.32.0/19
deny from 210.78.64.0/18
deny from 210.78.128.0/19
deny from 210.78.160.0/19
deny from 210.78.192.0/18
deny from 210.79.64.0/18
deny from 210.79.224.0/19
deny from 210.82.0.0/15
deny from 210.87.128.0/20
deny from 210.87.144.0/20
deny from 210.87.160.0/19
deny from 210.185.192.0/18
deny from 210.192.96.0/19
deny from 211.64.0.0/14
deny from 211.68.0.0/15
deny from 211.70.0.0/15
deny from 211.80.0.0/16
deny from 211.81.0.0/16
deny from 211.82.0.0/16
deny from 211.83.0.0/16
deny from 211.84.0.0/15
deny from 211.86.0.0/15
deny from 211.88.0.0/16
deny from 211.89.0.0/16
deny from 211.90.0.0/15
deny from 211.92.0.0/15
deny from 211.94.0.0/15
deny from 211.96.0.0/15
deny from 211.98.0.0/15
deny from 211.100.0.0/16
deny from 211.101.0.0/18
deny from 211.101.64.0/18
deny from 211.101.128.0/17
deny from 211.102.0.0/16
deny from 211.103.0.0/17
deny from 211.103.128.0/17
deny from 211.136.0.0/14
deny from 211.140.0.0/15
deny from 211.142.0.0/17
deny from 211.142.128.0/17
deny from 211.143.0.0/16
deny from 211.144.0.0/15
deny from 211.146.0.0/16
deny from 211.147.0.0/16
deny from 211.148.0.0/14
deny from 211.152.0.0/15
deny from 211.154.0.0/16
deny from 211.155.0.0/18
deny from 211.155.64.0/19
deny from 211.155.96.0/19
deny from 211.155.128.0/17
deny from 211.156.0.0/14
deny from 211.160.0.0/14
deny from 211.164.0.0/14
deny from 218.0.0.0/16
deny from 218.1.0.0/16
deny from 218.2.0.0/15
deny from 218.4.0.0/15
deny from 218.6.0.0/16
deny from 218.7.0.0/16
deny from 218.8.0.0/15
deny from 218.10.0.0/16
deny from 218.11.0.0/16
deny from 218.12.0.0/16
deny from 218.13.0.0/16
deny from 218.14.0.0/15
deny from 218.16.0.0/14
deny from 218.20.0.0/16
deny from 218.21.0.0/17
deny from 218.21.128.0/17
deny from 218.22.0.0/15
deny from 218.24.0.0/15
deny from 218.26.0.0/16
deny from 218.27.0.0/16
deny from 218.28.0.0/15
deny from 218.30.0.0/15
deny from 218.56.0.0/14
deny from 218.60.0.0/15
deny from 218.62.0.0/17
deny from 218.62.128.0/17
deny from 218.63.0.0/16
deny from 218.64.0.0/15
deny from 218.66.0.0/16
deny from 218.67.0.0/17
deny from 218.67.128.0/17
deny from 218.68.0.0/15
deny from 218.70.0.0/15
deny from 218.72.0.0/14
deny from 218.76.0.0/15
deny from 218.78.0.0/15
deny from 218.80.0.0/14
deny from 218.84.0.0/14
deny from 218.88.0.0/13
deny from 218.96.0.0/14
deny from 218.104.0.0/17
deny from 218.104.128.0/19
deny from 218.104.160.0/19
deny from 218.104.192.0/21
deny from 218.104.200.0/21
deny from 218.104.208.0/20
deny from 218.104.224.0/19
deny from 218.105.0.0/16
deny from 218.106.0.0/15
deny from 218.108.0.0/16
deny from 218.109.0.0/16
deny from 218.185.192.0/19
deny from 218.192.0.0/16
deny from 218.193.0.0/16
deny from 218.194.0.0/16
deny from 218.195.0.0/16
deny from 218.196.0.0/14
deny from 218.200.0.0/14
deny from 218.204.0.0/15
deny from 218.206.0.0/15
deny from 218.240.0.0/14
deny from 218.244.0.0/15
deny from 218.246.0.0/15
deny from 218.249.0.0/16
deny from 219.72.0.0/16
deny from 219.82.0.0/16
deny from 219.128.0.0/12
deny from 219.144.0.0/14
deny from 219.148.0.0/16
deny from 219.149.0.0/17
deny from 219.149.128.0/18
deny from 219.149.192.0/18
deny from 219.150.0.0/19
deny from 219.150.32.0/19
deny from 219.150.64.0/19
deny from 219.150.96.0/20
deny from 219.150.112.0/20
deny from 219.150.128.0/17
deny from 219.151.0.0/19
deny from 219.151.32.0/19
deny from 219.151.64.0/18
deny from 219.151.128.0/17
deny from 219.152.0.0/15
deny from 219.154.0.0/15
deny from 219.156.0.0/15
deny from 219.158.0.0/17
deny from 219.158.128.0/17
deny from 219.159.0.0/18
deny from 219.159.64.0/18
deny from 219.159.128.0/17
deny from 219.216.0.0/15
deny from 219.218.0.0/15
deny from 219.220.0.0/16
deny from 219.221.0.0/16
deny from 219.222.0.0/15
deny from 219.224.0.0/15
deny from 219.226.0.0/16
deny from 219.227.0.0/16
deny from 219.228.0.0/15
deny from 219.230.0.0/15
deny from 219.232.0.0/14
deny from 219.236.0.0/15
deny from 219.238.0.0/15
deny from 219.242.0.0/15
deny from 219.244.0.0/14
deny from 220.101.192.0/18
deny from 220.112.0.0/14
deny from 220.152.128.0/17
deny from 220.154.0.0/15
deny from 220.160.0.0/11
deny from 220.192.0.0/15
deny from 220.194.0.0/15
deny from 220.196.0.0/14
deny from 220.200.0.0/13
deny from 220.231.0.0/18
deny from 220.231.128.0/17
deny from 220.232.64.0/18
deny from 220.234.0.0/16
deny from 220.242.0.0/15
deny from 220.248.0.0/14
deny from 220.252.0.0/16
deny from 221.0.0.0/15
deny from 221.2.0.0/16
deny from 221.3.0.0/17
deny from 221.3.128.0/17
deny from 221.4.0.0/16
deny from 221.5.0.0/17
deny from 221.5.128.0/17
deny from 221.6.0.0/16
deny from 221.7.0.0/19
deny from 221.7.32.0/19
deny from 221.7.64.0/19
deny from 221.7.96.0/19
deny from 221.7.128.0/17
deny from 221.8.0.0/15
deny from 221.10.0.0/16
deny from 221.11.0.0/17
deny from 221.11.128.0/18
deny from 221.11.192.0/19
deny from 221.11.224.0/19
deny from 221.12.0.0/17
deny from 221.12.128.0/18
deny from 221.13.0.0/18
deny from 221.13.64.0/19
deny from 221.13.96.0/19
deny from 221.13.128.0/17
deny from 221.14.0.0/15
deny from 221.122.0.0/15
deny from 221.129.0.0/16
deny from 221.130.0.0/15
deny from 221.133.224.0/19
deny from 221.136.0.0/16
deny from 221.137.0.0/16
deny from 221.172.0.0/14
deny from 221.176.0.0/13
deny from 221.192.0.0/15
deny from 221.194.0.0/16
deny from 221.195.0.0/16
deny from 221.196.0.0/15
deny from 221.198.0.0/16
deny from 221.199.0.0/19
deny from 221.199.32.0/20
deny from 221.199.48.0/20
deny from 221.199.64.0/18
deny from 221.199.128.0/18
deny from 221.199.192.0/20
deny from 221.199.224.0/19
deny from 221.200.0.0/14
deny from 221.204.0.0/15
deny from 221.206.0.0/16
deny from 221.207.0.0/18
deny from 221.207.64.0/18
deny from 221.207.128.0/17
deny from 221.208.0.0/14
deny from 221.212.0.0/16
deny from 221.213.0.0/16
deny from 221.214.0.0/15
deny from 221.216.0.0/13
deny from 221.224.0.0/13
deny from 221.232.0.0/14
deny from 221.236.0.0/15
deny from 221.238.0.0/16
deny from 221.239.0.0/17
deny from 221.239.128.0/17
deny from 222.16.0.0/15
deny from 222.18.0.0/15
deny from 222.20.0.0/15
deny from 222.22.0.0/16
deny from 222.23.0.0/16
deny from 222.24.0.0/15
deny from 222.26.0.0/15
deny from 222.28.0.0/14
deny from 222.32.0.0/11
deny from 222.64.0.0/13
deny from 222.72.0.0/15
deny from 222.74.0.0/16
deny from 222.75.0.0/16
deny from 222.76.0.0/14
deny from 222.80.0.0/15
deny from 222.82.0.0/16
deny from 222.83.0.0/17
deny from 222.83.128.0/17
deny from 222.84.0.0/16
deny from 222.85.0.0/17
deny from 222.85.128.0/17
deny from 222.86.0.0/15
deny from 222.88.0.0/15
deny from 222.90.0.0/15
deny from 222.92.0.0/14
deny from 222.125.0.0/16
deny from 222.126.128.0/17
deny from 222.128.0.0/14
deny from 222.132.0.0/14
deny from 222.136.0.0/13
deny from 222.160.0.0/15
deny from 222.162.0.0/16
deny from 222.163.0.0/19
deny from 222.163.32.0/19
deny from 222.163.64.0/18
deny from 222.163.128.0/17
deny from 222.168.0.0/15
deny from 222.170.0.0/15
deny from 222.172.0.0/17
deny from 222.172.128.0/17
deny from 222.173.0.0/16
deny from 222.174.0.0/15
deny from 222.176.0.0/13
deny from 222.184.0.0/13
deny from 222.192.0.0/14
deny from 222.196.0.0/15
deny from 222.198.0.0/16
deny from 222.199.0.0/16
deny from 222.200.0.0/14
deny from 222.204.0.0/15
deny from 222.206.0.0/15
deny from 222.208.0.0/13
deny from 222.216.0.0/15
deny from 222.218.0.0/16
deny from 222.219.0.0/16
deny from 222.220.0.0/15
deny from 222.222.0.0/15
deny from 222.240.0.0/13
deny from 222.248.0.0/16
deny from 222.249.0.0/17
deny from 222.249.128.0/19
deny from 222.249.160.0/20
deny from 222.249.176.0/20
deny from 222.249.192.0/18
allow from all
</Limit>

It seems they block all Chinese users :-)
P.S.: With tolerance to any nation.

We have written Ape using C# and .NET Framework. It is a pretty funny subject for arguments but I'm going to dismiss this thought and tell you about one important advantage of Ape. When you use .NET Framework you get a “managed code”. Your application isn't executed on CPU directly. Instead it goes through the CLR:



It gives you 99.9% of confidence that you are protected from “buffer overflow errors” - most popular hacker method for attaks on Apache server. When a program has too small buffer for some data saving and there aren't any incoming data length checking. So the buffer is overflowed and an attacker gets opportunity to execute some code on attacked machine.
The same error in managed application (Ape is 100% managed) leads to exception with detailed report. Every exception in Ape gives 500 HTTP code and a record in error.log

We've compiled the most popular configurations for mod_cache and mod_gzip in one single code. It is a bomb with power to speed your traffic (mod_cache) and reduce its size (mod_gzip). Catch it! ;)

# By file extension
SetEnvIfNoCase request_uri \.mdb$ gzip=9
SetEnvIfNoCase request_uri \.bmp$ gzip cache-enable=mem
SetEnvIfNoCase request_uri \.(?:jpg|gif|png|swf|avi|rm)$ no-gzip                        

# By MIME type
SetEnvIfNoCase mime text/.* gzip=9 cache-enable=mem
SetEnvIfNoCase mime audio/wav gzip cache-enable=mem
SetEnvIfNoCase mime image/bmp gzip cache-enable=mem
SetEnvIfNoCase mime message/rfc822 gzip

SetEnvIfNoCase mime application/msword gzip
SetEnvIfNoCase mime application/postscript gzip
SetEnvIfNoCase mime application/vnd.ms-excel gzip
SetEnvIfNoCase mime application/vnd.ms-powerpoint gzip
SetEnvIfNoCase mime application/vnd.ms-works gzip
SetEnvIfNoCase mime application/x-javascript gzip cache-enable=mem
SetEnvIfNoCase mime application/x-msaccess gzip
SetEnvIfNoCase mime application/pdf gzip

# Exceptions for old browsers
#BrowserMatchNoCase \bOpera(?:\s5\.|/5) and \
#    mime application/.* no-gzip vary-agent !cache-enable
#BrowserMatchNoCase \bMozilla/4\.[67] and \
#    (mime application/.* or mime image/.*) no-gzip vary-agent !cache-enable
#BrowserMatchNoCase \bNetscape(?:6/6\.|/) and \
#    mime application/.* no-gzip vary-agent !cache-enable
#BrowserMatchNoCase \bFirefox/1 and \
#    mime application/pdf no-gzip vary-agent !cache-enable

SetEnvIfNoCase (mime text/css) or (mime image/jpeg) vary-agent
BrowserMatchNoCase \bMSIE\s[567]\. and \
    (mime text/css or mime image/jpeg) no-gzip vary-agent !cache-enable

# Vary header should be properly set for caching
Header merge Vary User-Agent env=vary-agent

# Set expiry delta for static content
# Dynamic pages should set expiry delta by oneself
Header merge Cache-Control max-age=86400 env=cache-enable

More info you can find on our blog.

Hello everybody!
We've already told about new features in Ape. One of them is mod_setenvif extended expressions syntax. It allows you to write powerful conditions and unite their results with other modules. It allows you to get another approach in server configuring. The approach based on environment variables is similar to primitive programming.
I'm going to show you a little joke: multiplication table based on mod_setenfiv. The code below looks like a program! Of course not so powerful because we weren't going to create programming language and so on. More than our primary goal is compatibility with Apache mod_setenvif. But we didn't make backward compatibility.
So let's look on the code:

# INPUT
SetEnvIf query_string a=(\d+)&b=(\d+) a=$1 b=$2

# COMPUTE

# generic situations
SetEnvIf a 1 result=%{b}e
SetEnvIf b 1 result=%{a}e
SetEnvIf (a 0) or (b 0) result=0

# in general case prepare the results like associated array
SetEnvIf a 2  2=4   3=6   4=8   5=10  6=12  7=14  8=16  9=18
SetEnvIf a 3  2=6   3=9   4=12  5=15  6=18  7=21  8=24  9=27
SetEnvIf a 4  2=8   3=12  4=16  5=20  6=24  7=28  8=32  9=36
SetEnvIf a 5  2=10  3=15  4=20  5=25  6=30  7=35  8=40  9=45
SetEnvIf a 6  2=12  3=18  4=24  5=30  6=36  7=42  8=48  9=54
SetEnvIf a 7  2=14  3=21  4=28  5=35  6=42  7=49  8=56  9=53
SetEnvIf a 8  2=16  3=24  4=32  5=40  6=48  7=56  8=64  9=72
SetEnvIf a 9  2=18  3=27  4=36  5=45  6=54  7=63  8=72  9=81

# get result from associated array using 'b' as key
SetEnvIf (result !.) and (b ([2-9]+)) result=%{$1}e

# error case: result hasn't been computed yet
SetEnvIf result !. error

# OUTPUT
Header onsuccess set RESULT %{result}e env=!error

To view it in action you should save the code in some .htaccess file and make a request like /?a=3&b=4. Also you need to see response HTTP headers to see the result.

P.S.: Our primary goal in Ape is flexibility in configuration. That is the main reason urged us to extend mod_setenvif syntax.