Package jp.freeex.us.fourtypes.server

Source Code of jp.freeex.us.fourtypes.server.ServerUtils

package jp.freeex.us.fourtypes.server;

import java.math.BigInteger;
/**
* サーバ側のみで使用するユーティリティ。
* sharedやclientパッケージから使用不可(コンパイルは徹がRuntimeException)。
* @author tasuku
*/
public class ServerUtils {
  /**
   * 日本国内に割り当てられたIPネットアドレス、ネットマスク
   */
  public static final String[][] JAPANESE_IP = {
    {"1.0.16.0", "20"},
    {"1.0.64.0", "18"},
    {"1.1.64.0", "18"},
    {"1.5.0.0", "16"},
    {"1.21.0.0", "16"},
    {"1.33.0.0", "16"},
    {"1.66.0.0", "15"},
    {"1.72.0.0", "13"},
    {"1.112.0.0", "14"},
    {"14.0.8.0", "22"},
    {"14.1.4.0", "22"},
    {"14.1.8.0", "21"},
    {"14.3.0.0", "16"},
    {"14.8.0.0", "13"},
    {"14.101.0.0", "16"},
    {"14.102.132.0", "22"},
    {"14.102.192.0", "19"},
    {"14.128.0.0", "22"},
    {"14.128.16.0", "20"},
    {"14.128.64.0", "19"},
    {"14.128.96.0", "19"},
    {"14.132.0.0", "15"},
    {"14.137.224.0", "19"},
    {"14.192.32.0", "20"},
    {"14.192.48.0", "21"},
    {"14.192.56.0", "22"},
    {"14.192.96.0", "19"},
    {"14.193.0.0", "16"},
    {"27.0.0.0", "22"},
    {"27.0.16.0", "20"},
    {"27.0.32.0", "20"},
    {"27.34.128.0", "19"},
    {"27.34.160.0", "21"},
    {"27.34.168.0", "21"},
    {"27.34.192.0", "19"},
    {"27.50.12.0", "22"},
    {"27.50.96.0", "19"},
    {"27.54.96.0", "20"},
    {"27.54.112.0", "22"},
    {"27.54.124.0", "22"},
    {"27.80.0.0", "12"},
    {"27.96.0.0", "20"},
    {"27.96.16.0", "21"},
    {"27.96.32.0", "19"},
    {"27.96.68.0", "22"},
    {"27.96.72.0", "21"},
    {"27.96.80.0", "22"},
    {"27.98.0.0", "17"},
    {"27.98.128.0", "18"},
    {"27.100.8.0", "22"},
    {"27.100.28.0", "22"},
    {"27.100.32.0", "22"},
    {"27.100.48.0", "20"},
    {"27.106.208.0", "21"},
    {"27.106.224.0", "19"},
    {"27.109.96.0", "21"},
    {"27.109.120.0", "22"},
    {"27.110.0.0", "18"},
    {"27.110.96.0", "20"},
    {"27.110.112.0", "21"},
    {"27.111.76.0", "22"},
    {"27.111.128.0", "19"},
    {"27.112.104.0", "21"},
    {"27.112.124.0", "22"},
    {"27.113.192.0", "19"},
    {"27.113.224.0", "20"},
    {"27.113.248.0", "22"},
    {"27.114.0.0", "17"},
    {"27.116.0.0", "20"},
    {"27.116.24.0", "21"},
    {"27.118.0.0", "20"},
    {"27.120.64.0", "18"},
    {"27.120.128.0", "17"},
    {"27.121.0.0", "18"},
    {"27.121.92.0", "22"},
    {"27.121.128.0", "17"},
    {"27.122.4.0", "22"},
    {"27.122.8.0", "22"},
    {"27.122.32.0", "20"},
    {"27.122.48.0", "21"},
    {"27.122.64.0", "19"},
    {"27.122.96.0", "20"},
    {"27.123.8.0", "21"},
    {"27.123.208.0", "22"},
    {"27.125.204.0", "22"},
    {"27.126.64.0", "18"},
    {"27.126.128.0", "20"},
    {"27.126.160.0", "20"},
    {"27.127.0.0", "17"},
    {"27.127.128.0", "18"},
    {"27.127.240.0", "20"},
    {"27.131.8.0", "22"},
    {"27.131.16.0", "20"},
    {"27.131.192.0", "21"},
    {"27.131.200.0", "21"},
    {"27.131.224.0", "20"},
    {"27.131.240.0", "21"},
    {"27.132.0.0", "14"},
    {"27.136.0.0", "13"},
    {"27.147.64.0", "18"},
    {"27.228.0.0", "14"},
    {"27.253.128.0", "17"},
    {"36.2.0.0", "15"},
    {"36.8.0.0", "13"},
    {"36.52.0.0", "14"},
    {"36.240.0.0", "13"},
    {"39.2.0.0", "15"},
    {"42.83.0.0", "18"},
    {"42.99.128.0", "17"},
    {"42.123.32.0", "22"},
    {"42.124.0.0", "14"},
    {"42.144.0.0", "13"},
    {"42.187.124.0", "22"},
    {"43.0.0.0", "9"},
    {"43.128.0.0", "10"},
    {"43.192.0.0", "11"},
    {"43.232.0.0", "14"},
    {"43.244.0.0", "16"},
    {"43.253.0.0", "16"},
    {"49.0.16.0", "21"},
    {"49.96.0.0", "12"},
    {"49.128.16.0", "21"},
    {"49.128.24.0", "21"},
    {"49.128.96.0", "22"},
    {"49.128.100.0", "22"},
    {"49.128.128.0", "19"},
    {"49.129.0.0", "16"},
    {"49.132.0.0", "14"},
    {"49.143.240.0", "21"},
    {"49.156.4.0", "22"},
    {"49.156.8.0", "21"},
    {"49.156.160.0", "19"},
    {"49.156.192.0", "18"},
    {"49.212.0.0", "16"},
    {"49.236.224.0", "21"},
    {"49.236.232.0", "21"},
    {"49.238.0.0", "19"},
    {"49.239.64.0", "18"},
    {"49.240.0.0", "15"},
    {"49.242.0.0", "18"},
    {"49.242.64.0", "18"},
    {"49.242.128.0", "18"},
    {"49.242.192.0", "18"},
    {"49.243.0.0", "16"},
    {"49.250.0.0", "15"},
    {"49.252.0.0", "15"},
    {"58.0.0.0", "15"},
    {"58.3.0.0", "17"},
    {"58.3.128.0", "17"},
    {"58.4.0.0", "15"},
    {"58.12.0.0", "15"},
    {"58.65.32.0", "19"},
    {"58.70.0.0", "16"},
    {"58.80.0.0", "15"},
    {"58.84.240.0", "20"},
    {"58.85.0.0", "16"},
    {"58.87.16.0", "20"},
    {"58.87.128.0", "17"},
    {"58.88.0.0", "15"},
    {"58.90.0.0", "15"},
    {"58.92.0.0", "14"},
    {"58.98.0.0", "16"},
    {"58.112.0.0", "15"},
    {"58.138.0.0", "17"},
    {"58.138.128.0", "18"},
    {"58.145.160.0", "21"},
    {"58.145.176.0", "21"},
    {"58.146.0.0", "18"},
    {"58.146.64.0", "19"},
    {"58.147.160.0", "21"},
    {"58.147.192.0", "19"},
    {"58.147.224.0", "19"},
    {"58.156.0.0", "15"},
    {"58.158.0.0", "15"},
    {"58.183.0.0", "17"},
    {"58.183.128.0", "17"},
    {"58.188.0.0", "14"},
    {"59.84.0.0", "15"},
    {"59.86.0.0", "17"},
    {"59.86.128.0", "19"},
    {"59.87.0.0", "16"},
    {"59.106.0.0", "16"},
    {"59.128.0.0", "12"},
    {"59.146.0.0", "16"},
    {"59.147.0.0", "16"},
    {"59.151.128.0", "18"},
    {"59.156.0.0", "15"},
    {"59.158.0.0", "15"},
    {"59.166.0.0", "16"},
    {"59.168.0.0", "14"},
    {"59.190.0.0", "16"},
    {"59.191.128.0", "18"},
    {"60.32.0.0", "12"},
    {"60.56.0.0", "16"},
    {"60.57.0.0", "17"},
    {"60.57.128.0", "17"},
    {"60.58.0.0", "15"},
    {"60.60.0.0", "15"},
    {"60.62.0.0", "17"},
    {"60.62.128.0", "20"},
    {"60.62.144.0", "20"},
    {"60.62.160.0", "19"},
    {"60.62.192.0", "18"},
    {"60.64.0.0", "10"},
    {"60.128.0.0", "11"},
    {"60.192.0.0", "15"},
    {"60.236.0.0", "15"},
    {"60.238.0.0", "15"},
    {"60.254.192.0", "18"},
    {"61.4.128.0", "19"},
    {"61.4.160.0", "20"},
    {"61.5.224.0", "19"},
    {"61.7.0.0", "18"},
    {"61.7.64.0", "18"},
    {"61.8.80.0", "21"},
    {"61.8.88.0", "21"},
    {"61.11.128.0", "19"},
    {"61.11.160.0", "20"},
    {"61.11.176.0", "20"},
    {"61.11.192.0", "20"},
    {"61.12.128.0", "17"},
    {"61.14.128.0", "19"},
    {"61.14.160.0", "19"},
    {"61.21.0.0", "16"},
    {"61.22.0.0", "17"},
    {"61.22.128.0", "19"},
    {"61.22.160.0", "19"},
    {"61.22.192.0", "18"},
    {"61.23.0.0", "18"},
    {"61.23.64.0", "18"},
    {"61.23.128.0", "17"},
    {"61.24.0.0", "17"},
    {"61.24.128.0", "17"},
    {"61.25.0.0", "19"},
    {"61.25.32.0", "19"},
    {"61.25.64.0", "18"},
    {"61.25.128.0", "17"},
    {"61.26.0.0", "16"},
    {"61.27.0.0", "17"},
    {"61.27.128.0", "20"},
    {"61.27.144.0", "20"},
    {"61.27.160.0", "19"},
    {"61.27.192.0", "18"},
    {"61.44.0.0", "18"},
    {"61.44.64.0", "18"},
    {"61.44.128.0", "18"},
    {"61.44.192.0", "19"},
    {"61.44.224.0", "20"},
    {"61.44.240.0", "20"},
    {"61.45.0.0", "17"},
    {"61.45.192.0", "19"},
    {"61.45.240.0", "21"},
    {"61.46.0.0", "16"},
    {"61.86.0.0", "16"},
    {"61.87.0.0", "18"},
    {"61.87.64.0", "18"},
    {"61.89.0.0", "16"},
    {"61.112.0.0", "12"},
    {"61.192.0.0", "13"},
    {"61.200.0.0", "13"},
    {"61.208.0.0", "13"},
    {"61.245.0.0", "17"},
    {"61.245.192.0", "20"},
    {"61.245.208.0", "21"},
    {"61.245.216.0", "21"},
    {"101.0.8.0", "21"},
    {"101.0.16.0", "20"},
    {"101.1.64.0", "18"},
    {"101.1.128.0", "17"},
    {"101.2.128.0", "19"},
    {"101.50.4.0", "22"},
    {"101.50.8.0", "21"},
    {"101.50.32.0", "20"},
    {"101.50.48.0", "21"},
    {"101.50.60.0", "22"},
    {"101.50.128.0", "17"},
    {"101.53.96.0", "22"},
    {"101.53.104.0", "21"},
    {"101.53.112.0", "20"},
    {"101.55.128.0", "18"},
    {"101.55.192.0", "19"},
    {"101.55.232.0", "21"},
    {"101.55.240.0", "20"},
    {"101.78.4.0", "22"},
    {"101.96.32.0", "19"},
    {"101.97.0.0", "16"},
    {"101.102.0.0", "18"},
    {"101.102.96.0", "22"},
    {"101.102.128.0", "17"},
    {"101.110.0.0", "18"},
    {"101.110.128.0", "17"},
    {"101.111.0.0", "16"},
    {"101.128.128.0", "17"},
    {"101.140.0.0", "14"},
    {"101.203.0.0", "17"},
    {"101.203.192.0", "18"},
    {"103.1.120.0", "22"},
    {"103.1.140.0", "22"},
    {"103.1.244.0", "22"},
    {"103.1.248.0", "22"},
    {"103.1.252.0", "22"},
    {"103.2.0.0", "22"},
    {"103.2.4.0", "22"},
    {"103.2.8.0", "22"},
    {"103.2.12.0", "22"},
    {"103.2.16.0", "22"},
    {"103.2.20.0", "22"},
    {"103.2.24.0", "22"},
    {"103.2.28.0", "22"},
    {"103.2.32.0", "22"},
    {"103.2.36.0", "22"},
    {"103.2.40.0", "22"},
    {"103.2.44.0", "22"},
    {"103.2.48.0", "22"},
    {"103.2.52.0", "22"},
    {"103.2.56.0", "24"},
    {"103.2.57.0", "24"},
    {"103.2.58.0", "23"},
    {"103.2.60.0", "22"},
    {"103.2.64.0", "22"},
    {"103.2.68.0", "22"},
    {"103.2.72.0", "22"},
    {"103.2.96.0", "22"},
    {"103.2.100.0", "22"},
    {"103.2.124.0", "22"},
    {"103.2.128.0", "22"},
    {"103.2.136.0", "22"},
    {"103.2.160.0", "22"},
    {"103.2.244.0", "22"},
    {"103.2.248.0", "22"},
    {"103.2.252.0", "22"},
    {"103.3.0.0", "22"},
    {"103.3.4.0", "22"},
    {"103.3.8.0", "22"},
    {"103.3.12.0", "22"},
    {"103.3.16.0", "22"},
    {"103.3.48.0", "22"},
    {"103.3.52.0", "22"},
    {"103.3.180.0", "22"},
    {"103.3.184.0", "22"},
    {"103.3.188.0", "22"},
    {"103.4.8.0", "22"},
    {"103.4.24.0", "22"},
    {"103.4.32.0", "22"},
    {"103.4.40.0", "22"},
    {"103.4.68.0", "22"},
    {"103.4.76.0", "22"},
    {"103.4.80.0", "22"},
    {"103.4.200.0", "22"},
    {"103.5.20.0", "22"},
    {"103.5.40.0", "22"},
    {"103.5.64.0", "22"},
    {"103.5.116.0", "22"},
    {"103.5.140.0", "22"},
    {"103.5.160.0", "22"},
    {"103.5.176.0", "22"},
    {"103.5.192.0", "22"},
    {"103.5.248.0", "22"},
    {"103.6.16.0", "22"},
    {"103.6.20.0", "22"},
    {"103.6.44.0", "22"},
    {"103.6.56.0", "22"},
    {"103.6.60.0", "22"},
    {"103.6.68.0", "22"},
    {"103.6.92.0", "22"},
    {"103.6.112.0", "22"},
    {"103.6.224.0", "22"},
    {"103.6.228.0", "22"},
    {"103.6.240.0", "22"},
    {"103.7.20.0", "22"},
    {"103.7.92.0", "22"},
    {"103.7.116.0", "22"},
    {"103.7.120.0", "22"},
    {"103.7.132.0", "22"},
    {"103.7.152.0", "22"},
    {"103.7.198.0", "23"},
    {"103.7.208.0", "22"},
    {"103.7.236.0", "22"},
    {"103.8.20.0", "22"},
    {"103.8.48.0", "22"},
    {"103.8.64.0", "22"},
    {"103.8.68.0", "22"},
    {"103.8.84.0", "22"},
    {"103.8.88.0", "22"},
    {"103.8.92.0", "22"},
    {"103.8.184.0", "22"},
    {"103.8.190.0", "24"},
    {"103.8.196.0", "22"},
    {"103.8.240.0", "22"},
    {"103.9.28.0", "22"},
    {"103.9.92.0", "22"},
    {"103.9.96.0", "22"},
    {"103.9.108.0", "22"},
    {"103.9.120.0", "22"},
    {"103.9.164.0", "22"},
    {"103.9.172.0", "22"},
    {"103.9.176.0", "22"},
    {"103.9.180.0", "24"},
    {"103.9.192.0", "22"},
    {"103.10.36.0", "22"},
    {"103.10.68.0", "22"},
    {"103.10.112.0", "22"},
    {"103.10.164.0", "22"},
    {"103.10.192.0", "22"},
    {"103.10.240.0", "22"},
    {"103.10.244.0", "22"},
    {"103.11.4.0", "22"},
    {"103.11.16.0", "22"},
    {"103.11.120.0", "22"},
    {"103.11.156.0", "22"},
    {"103.11.196.0", "22"},
    {"103.11.208.0", "22"},
    {"103.11.221.0", "24"},
    {"103.11.236.0", "22"},
    {"103.12.16.0", "22"},
    {"103.12.48.0", "22"},
    {"103.12.52.0", "22"},
    {"103.12.158.0", "24"},
    {"103.12.180.0", "22"},
    {"103.12.196.0", "22"},
    {"103.12.224.0", "22"},
    {"103.13.12.0", "22"},
    {"103.13.16.0", "22"},
    {"103.13.20.0", "22"},
    {"103.13.24.0", "22"},
    {"103.13.40.0", "22"},
    {"103.13.44.0", "22"},
    {"103.13.60.0", "22"},
    {"103.13.92.0", "22"},
    {"103.13.104.0", "22"},
    {"103.13.112.0", "22"},
    {"103.13.136.0", "22"},
    {"103.13.140.0", "22"},
    {"103.13.152.0", "22"},
    {"103.13.164.0", "22"},
    {"103.13.168.0", "22"},
    {"103.13.192.0", "22"},
    {"103.13.204.0", "22"},
    {"103.13.208.0", "22"},
    {"103.13.220.0", "22"},
    {"103.13.248.0", "22"},
    {"103.13.252.0", "22"},
    {"103.14.12.0", "22"},
    {"103.14.32.0", "22"},
    {"103.14.148.0", "22"},
    {"103.14.152.0", "22"},
    {"103.14.176.0", "22"},
    {"103.14.196.0", "22"},
    {"103.15.0.0", "22"},
    {"103.15.12.0", "22"},
    {"103.15.32.0", "22"},
    {"103.15.39.0", "24"},
    {"103.15.56.0", "22"},
    {"103.15.68.0", "22"},
    {"103.15.76.0", "22"},
    {"103.15.92.0", "22"},
    {"103.15.108.0", "22"},
    {"103.15.116.0", "22"},
    {"103.15.160.0", "22"},
    {"103.15.188.0", "22"},
    {"103.15.212.0", "22"},
    {"103.16.8.0", "22"},
    {"103.16.36.0", "22"},
    {"103.16.160.0", "22"},
    {"103.16.212.0", "22"},
    {"103.16.224.0", "22"},
    {"103.20.4.0", "22"},
    {"103.20.8.0", "22"},
    {"103.20.36.0", "22"},
    {"103.20.44.0", "22"},
    {"103.20.72.0", "22"},
    {"103.20.84.0", "22"},
    {"103.20.108.0", "22"},
    {"103.20.156.0", "22"},
    {"103.20.172.0", "22"},
    {"103.20.240.0", "22"},
    {"103.21.8.0", "22"},
    {"103.21.36.0", "22"},
    {"103.21.96.0", "22"},
    {"103.21.100.0", "22"},
    {"103.21.104.0", "22"},
    {"103.22.152.0", "22"},
    {"103.22.167.0", "24"},
    {"103.22.212.0", "22"},
    {"103.23.4.0", "22"},
    {"103.23.12.0", "22"},
    {"103.23.72.0", "22"},
    {"103.23.88.0", "22"},
    {"103.23.128.0", "22"},
    {"103.23.196.0", "22"},
    {"103.23.204.0", "22"},
    {"103.23.220.0", "22"},
    {"103.23.248.0", "22"},
    {"103.23.252.0", "22"},
    {"103.28.24.0", "22"},
    {"103.28.28.0", "22"},
    {"103.28.73.0", "24"},
    {"103.28.96.0", "22"},
    {"103.28.164.0", "22"},
    {"103.28.168.0", "22"},
    {"103.28.184.0", "22"},
    {"103.28.228.0", "22"},
    {"103.28.232.0", "22"},
    {"103.28.236.0", "22"},
    {"103.28.248.0", "22"},
    {"103.29.48.0", "22"},
    {"103.29.68.0", "22"},
    {"103.29.113.0", "24"},
    {"103.29.176.0", "22"},
    {"103.29.180.0", "22"},
    {"103.30.8.0", "22"},
    {"103.30.52.0", "22"},
    {"103.30.60.0", "22"},
    {"103.30.64.0", "22"},
    {"103.30.72.0", "22"},
    {"103.30.164.0", "22"},
    {"103.30.176.0", "22"},
    {"103.30.196.0", "22"},
    {"103.30.252.0", "22"},
    {"103.31.12.0", "22"},
    {"103.31.40.0", "22"},
    {"103.31.76.0", "22"},
    {"103.31.116.0", "22"},
    {"103.31.140.0", "22"},
    {"103.31.192.0", "22"},
    {"103.31.216.0", "22"},
    {"103.31.244.0", "22"},
    {"103.31.252.0", "22"},
    {"103.244.92.0", "22"},
    {"103.244.104.0", "22"},
    {"103.244.112.0", "22"},
    {"103.244.116.0", "22"},
    {"103.244.208.0", "22"},
    {"103.244.216.0", "22"},
    {"103.244.220.0", "22"},
    {"103.245.4.0", "22"},
    {"103.245.16.0", "22"},
    {"103.245.40.0", "22"},
    {"103.245.56.0", "22"},
    {"103.245.168.0", "22"},
    {"103.245.224.0", "24"},
    {"103.245.228.0", "22"},
    {"103.245.232.0", "22"},
    {"103.245.236.0", "22"},
    {"103.246.39.0", "24"},
    {"103.246.60.0", "22"},
    {"103.246.68.0", "22"},
    {"103.246.72.0", "22"},
    {"103.246.80.0", "22"},
    {"103.246.148.0", "22"},
    {"103.246.164.0", "22"},
    {"103.246.192.0", "22"},
    {"103.246.232.0", "24"},
    {"103.246.252.0", "22"},
    {"103.247.4.0", "22"},
    {"103.247.52.0", "22"},
    {"103.247.68.0", "22"},
    {"103.247.84.0", "22"},
    {"103.247.88.0", "22"},
    {"103.247.188.0", "22"},
    {"103.247.240.0", "22"},
    {"106.72.0.0", "15"},
    {"106.128.0.0", "10"},
    {"110.0.0.0", "14"},
    {"110.4.32.0", "21"},
    {"110.4.48.0", "20"},
    {"110.4.128.0", "17"},
    {"110.5.0.0", "18"},
    {"110.5.120.0", "21"},
    {"110.44.20.0", "22"},
    {"110.44.64.0", "19"},
    {"110.44.176.0", "21"},
    {"110.50.0.0", "20"},
    {"110.50.24.0", "21"},
    {"110.50.64.0", "20"},
    {"110.50.88.0", "21"},
    {"110.50.96.0", "19"},
    {"110.50.192.0", "19"},
    {"110.50.240.0", "20"},
    {"110.54.0.0", "17"},
    {"110.66.0.0", "15"},
    {"110.74.0.0", "19"},
    {"110.74.32.0", "19"},
    {"110.74.64.0", "18"},
    {"110.74.224.0", "19"},
    {"110.76.180.0", "22"},
    {"110.92.0.0", "20"},
    {"110.92.32.0", "19"},
    {"110.92.80.0", "20"},
    {"110.93.0.0", "21"},
    {"110.93.96.0", "20"},
    {"110.128.0.0", "13"},
    {"110.158.0.0", "16"},
    {"110.160.0.0", "14"},
    {"110.165.128.0", "17"},
    {"110.172.0.0", "20"},
    {"110.172.32.0", "20"},
    {"110.172.48.0", "22"},
    {"110.172.56.0", "21"},
    {"110.173.240.0", "20"},
    {"110.232.0.0", "19"},
    {"110.232.120.0", "21"},
    {"110.232.128.0", "21"},
    {"110.232.136.0", "22"},
    {"110.232.152.0", "21"},
    {"110.232.192.0", "19"},
    {"110.232.224.0", "21"},
    {"110.232.232.0", "22"},
    {"110.232.236.0", "22"},
    {"110.233.0.0", "16"},
    {"111.64.0.0", "16"},
    {"111.65.192.0", "19"},
    {"111.67.112.0", "20"},
    {"111.67.128.0", "18"},
    {"111.68.16.0", "21"},
    {"111.68.128.0", "17"},
    {"111.86.0.0", "15"},
    {"111.89.0.0", "16"},
    {"111.90.0.0", "17"},
    {"111.90.160.0", "21"},
    {"111.91.240.0", "20"},
    {"111.92.244.0", "22"},
    {"111.96.0.0", "12"},
    {"111.119.0.0", "19"},
    {"111.125.0.0", "18"},
    {"111.125.144.0", "21"},
    {"111.168.0.0", "15"},
    {"111.171.128.0", "17"},
    {"111.188.0.0", "14"},
    {"111.216.0.0", "15"},
    {"111.221.60.0", "22"},
    {"111.223.192.0", "19"},
    {"111.232.0.0", "15"},
    {"111.234.0.0", "16"},
    {"111.235.0.0", "18"},
    {"111.235.76.0", "22"},
    {"111.236.0.0", "14"},
    {"112.68.0.0", "14"},
    {"112.78.112.0", "20"},
    {"112.78.192.0", "19"},
    {"112.109.24.0", "21"},
    {"112.136.0.0", "17"},
    {"112.137.32.0", "20"},
    {"112.137.56.0", "21"},
    {"112.137.64.0", "18"},
    {"112.137.144.0", "20"},
    {"112.137.184.0", "21"},
    {"112.137.192.0", "18"},
    {"112.138.0.0", "15"},
    {"112.140.0.0", "19"},
    {"112.140.32.0", "19"},
    {"112.140.128.0", "20"},
    {"112.140.168.0", "21"},
    {"113.20.152.0", "22"},
    {"113.20.192.0", "18"},
    {"113.21.48.0", "20"},
    {"113.21.232.0", "21"},
    {"113.21.248.0", "21"},
    {"113.29.216.0", "21"},
    {"113.32.0.0", "13"},
    {"113.40.0.0", "14"},
    {"113.52.16.0", "20"},
    {"113.52.156.0", "22"},
    {"113.52.240.0", "20"},
    {"113.59.228.0", "22"},
    {"113.61.112.0", "20"},
    {"113.130.0.0", "18"},
    {"113.144.0.0", "12"},
    {"113.192.128.0", "17"},
    {"113.197.16.0", "20"},
    {"113.197.40.0", "21"},
    {"113.197.56.0", "21"},
    {"113.197.128.0", "17"},
    {"113.208.0.0", "18"},
    {"113.212.104.0", "22"},
    {"113.212.128.0", "19"},
    {"113.213.128.0", "18"},
    {"113.213.192.0", "19"},
    {"113.213.224.0", "20"},
    {"113.213.240.0", "20"},
    {"114.16.0.0", "14"},
    {"114.20.0.0", "15"},
    {"114.22.0.0", "16"},
    {"114.31.80.0", "20"},
    {"114.31.104.0", "21"},
    {"114.31.216.0", "21"},
    {"114.48.0.0", "14"},
    {"114.69.0.0", "17"},
    {"114.69.128.0", "19"},
    {"114.69.160.0", "20"},
    {"114.110.48.0", "20"},
    {"114.111.64.0", "18"},
    {"114.129.0.0", "21"},
    {"114.129.48.0", "20"},
    {"114.134.32.0", "19"},
    {"114.134.96.0", "20"},
    {"114.134.112.0", "20"},
    {"114.134.128.0", "19"},
    {"114.134.192.0", "19"},
    {"114.134.224.0", "19"},
    {"114.141.32.0", "21"},
    {"114.142.0.0", "17"},
    {"114.142.128.0", "21"},
    {"114.142.176.0", "20"},
    {"114.144.0.0", "12"},
    {"114.160.0.0", "11"},
    {"114.192.0.0", "14"},
    {"114.198.192.0", "19"},
    {"114.198.224.0", "21"},
    {"115.30.0.0", "19"},
    {"115.30.128.0", "17"},
    {"115.31.0.0", "18"},
    {"115.31.80.0", "21"},
    {"115.31.192.0", "20"},
    {"115.31.208.0", "20"},
    {"115.36.0.0", "14"},
    {"115.42.96.0", "20"},
    {"115.65.0.0", "16"},
    {"115.69.192.0", "20"},
    {"115.69.224.0", "21"},
    {"115.69.232.0", "21"},
    {"115.84.184.0", "21"},
    {"115.85.96.0", "19"},
    {"115.85.136.0", "21"},
    {"115.124.48.0", "20"},
    {"115.124.128.0", "17"},
    {"115.125.0.0", "16"},
    {"115.126.136.0", "21"},
    {"115.126.144.0", "20"},
    {"115.146.0.0", "18"},
    {"115.162.0.0", "15"},
    {"115.165.0.0", "17"},
    {"115.165.128.0", "19"},
    {"115.165.184.0", "21"},
    {"115.166.144.0", "20"},
    {"115.166.160.0", "19"},
    {"115.166.192.0", "20"},
    {"115.166.208.0", "20"},
    {"115.166.224.0", "19"},
    {"115.167.128.0", "17"},
    {"115.176.0.0", "15"},
    {"115.178.112.0", "21"},
    {"115.179.0.0", "16"},
    {"115.187.64.0", "20"},
    {"115.187.92.0", "22"},
    {"116.0.128.0", "17"},
    {"116.12.0.0", "19"},
    {"116.50.48.0", "21"},
    {"116.58.144.0", "20"},
    {"116.58.160.0", "19"},
    {"116.64.0.0", "15"},
    {"116.66.176.0", "20"},
    {"116.67.128.0", "17"},
    {"116.68.216.0", "21"},
    {"116.70.128.0", "18"},
    {"116.70.192.0", "18"},
    {"116.80.0.0", "14"},
    {"116.89.192.0", "20"},
    {"116.89.208.0", "20"},
    {"116.89.240.0", "20"},
    {"116.90.144.0", "20"},
    {"116.90.192.0", "20"},
    {"116.91.0.0", "16"},
    {"116.93.144.0", "20"},
    {"116.94.0.0", "16"},
    {"116.118.192.0", "20"},
    {"116.118.208.0", "20"},
    {"116.118.224.0", "20"},
    {"116.193.96.0", "19"},
    {"116.193.224.0", "19"},
    {"116.197.136.0", "21"},
    {"116.197.152.0", "21"},
    {"116.197.168.0", "21"},
    {"116.199.176.0", "20"},
    {"116.199.240.0", "20"},
    {"116.213.20.0", "22"},
    {"116.214.16.0", "21"},
    {"116.214.80.0", "20"},
    {"116.220.0.0", "14"},
    {"116.254.0.0", "18"},
    {"116.254.64.0", "19"},
    {"116.254.104.0", "21"},
    {"117.18.24.0", "21"},
    {"117.18.88.0", "21"},
    {"117.18.128.0", "18"},
    {"117.18.192.0", "20"},
    {"117.18.208.0", "20"},
    {"117.20.72.0", "21"},
    {"117.20.96.0", "20"},
    {"117.46.0.0", "16"},
    {"117.53.0.0", "19"},
    {"117.53.32.0", "21"},
    {"117.55.0.0", "17"},
    {"117.55.208.0", "20"},
    {"117.58.144.0", "20"},
    {"117.58.224.0", "20"},
    {"117.74.0.0", "18"},
    {"117.102.168.0", "21"},
    {"117.102.176.0", "20"},
    {"117.102.192.0", "19"},
    {"117.103.160.0", "21"},
    {"117.103.176.0", "20"},
    {"117.104.0.0", "18"},
    {"117.104.64.0", "18"},
    {"117.104.128.0", "19"},
    {"117.108.0.0", "15"},
    {"117.120.48.0", "21"},
    {"118.0.0.0", "12"},
    {"118.16.0.0", "13"},
    {"118.67.64.0", "19"},
    {"118.67.96.0", "20"},
    {"118.82.48.0", "20"},
    {"118.82.64.0", "19"},
    {"118.82.96.0", "19"},
    {"118.83.0.0", "16"},
    {"118.86.0.0", "15"},
    {"118.91.192.0", "19"},
    {"118.102.40.0", "21"},
    {"118.102.48.0", "20"},
    {"118.103.0.0", "17"},
    {"118.103.128.0", "21"},
    {"118.104.0.0", "15"},
    {"118.106.0.0", "16"},
    {"118.107.152.0", "21"},
    {"118.108.0.0", "14"},
    {"118.151.0.0", "17"},
    {"118.151.128.0", "18"},
    {"118.151.192.0", "20"},
    {"118.151.224.0", "19"},
    {"118.152.0.0", "14"},
    {"118.156.0.0", "14"},
    {"118.177.0.0", "16"},
    {"118.236.0.0", "15"},
    {"118.238.0.0", "17"},
    {"118.238.128.0", "18"},
    {"118.238.192.0", "18"},
    {"118.240.0.0", "15"},
    {"118.243.0.0", "16"},
    {"119.10.160.0", "21"},
    {"119.10.184.0", "21"},
    {"119.10.192.0", "18"},
    {"119.15.32.0", "19"},
    {"119.15.112.0", "20"},
    {"119.15.144.0", "21"},
    {"119.18.160.0", "20"},
    {"119.18.176.0", "21"},
    {"119.18.216.0", "21"},
    {"119.24.0.0", "15"},
    {"119.26.0.0", "16"},
    {"119.30.8.0", "21"},
    {"119.30.192.0", "18"},
    {"119.31.128.0", "19"},
    {"119.47.0.0", "20"},
    {"119.47.16.0", "20"},
    {"119.47.32.0", "19"},
    {"119.47.64.0", "20"},
    {"119.47.96.0", "20"},
    {"119.47.128.0", "17"},
    {"119.59.64.0", "21"},
    {"119.59.88.0", "21"},
    {"119.63.16.0", "20"},
    {"119.63.112.0", "20"},
    {"119.63.144.0", "20"},
    {"119.63.160.0", "19"},
    {"119.63.192.0", "21"},
    {"119.72.0.0", "16"},
    {"119.75.224.0", "20"},
    {"119.82.8.0", "21"},
    {"119.82.16.0", "21"},
    {"119.82.24.0", "21"},
    {"119.82.152.0", "21"},
    {"119.82.160.0", "19"},
    {"119.82.192.0", "20"},
    {"119.83.0.0", "16"},
    {"119.104.0.0", "14"},
    {"119.110.88.0", "21"},
    {"119.148.104.0", "21"},
    {"119.148.192.0", "18"},
    {"119.150.0.0", "16"},
    {"119.161.104.0", "21"},
    {"119.161.112.0", "21"},
    {"119.168.0.0", "13"},
    {"119.224.160.0", "19"},
    {"119.224.192.0", "18"},
    {"119.228.0.0", "14"},
    {"119.235.104.0", "21"},
    {"119.235.112.0", "20"},
    {"119.235.224.0", "20"},
    {"119.238.0.0", "15"},
    {"119.240.0.0", "14"},
    {"119.244.0.0", "16"},
    {"119.245.0.0", "16"},
    {"119.252.32.0", "19"},
    {"120.29.144.0", "21"},
    {"120.29.160.0", "19"},
    {"120.50.160.0", "21"},
    {"120.50.168.0", "21"},
    {"120.50.192.0", "20"},
    {"120.50.208.0", "20"},
    {"120.50.224.0", "19"},
    {"120.51.0.0", "16"},
    {"120.72.0.0", "20"},
    {"120.72.64.0", "20"},
    {"120.74.0.0", "15"},
    {"120.88.16.0", "20"},
    {"120.88.48.0", "20"},
    {"120.89.64.0", "21"},
    {"120.89.128.0", "17"},
    {"120.93.0.0", "16"},
    {"120.136.8.0", "21"},
    {"120.136.192.0", "18"},
    {"120.137.128.0", "17"},
    {"120.138.128.0", "18"},
    {"120.143.0.0", "18"},
    {"120.143.64.0", "19"},
    {"120.143.96.0", "19"},
    {"121.0.32.0", "20"},
    {"121.0.48.0", "21"},
    {"121.0.56.0", "21"},
    {"121.1.128.0", "17"},
    {"121.2.0.0", "16"},
    {"121.3.0.0", "16"},
    {"121.50.40.0", "21"},
    {"121.50.48.0", "21"},
    {"121.50.56.0", "21"},
    {"121.50.152.0", "21"},
    {"121.50.160.0", "21"},
    {"121.54.184.0", "21"},
    {"121.58.128.0", "21"},
    {"121.58.176.0", "21"},
    {"121.80.0.0", "14"},
    {"121.84.0.0", "14"},
    {"121.92.0.0", "15"},
    {"121.94.0.0", "15"},
    {"121.100.8.0", "21"},
    {"121.100.56.0", "21"},
    {"121.101.64.0", "18"},
    {"121.102.0.0", "16"},
    {"121.103.0.0", "16"},
    {"121.104.0.0", "14"},
    {"121.108.0.0", "14"},
    {"121.112.0.0", "13"},
    {"121.200.128.0", "18"},
    {"121.200.200.0", "21"},
    {"121.200.216.0", "21"},
    {"122.1.0.0", "16"},
    {"122.16.0.0", "12"},
    {"122.49.192.0", "21"},
    {"122.49.232.0", "21"},
    {"122.49.240.0", "20"},
    {"122.50.16.0", "20"},
    {"122.50.32.0", "19"},
    {"122.99.104.0", "21"},
    {"122.100.16.0", "21"},
    {"122.100.24.0", "21"},
    {"122.102.56.0", "21"},
    {"122.102.128.0", "17"},
    {"122.103.0.0", "16"},
    {"122.128.0.0", "20"},
    {"122.128.112.0", "21"},
    {"122.129.160.0", "19"},
    {"122.129.224.0", "20"},
    {"122.130.0.0", "15"},
    {"122.132.0.0", "14"},
    {"122.145.0.0", "16"},
    {"122.152.0.0", "20"},
    {"122.152.16.0", "20"},
    {"122.152.32.0", "20"},
    {"122.152.56.0", "21"},
    {"122.152.64.0", "19"},
    {"122.152.128.0", "18"},
    {"122.196.0.0", "15"},
    {"122.200.32.0", "21"},
    {"122.200.128.0", "22"},
    {"122.200.136.0", "21"},
    {"122.200.192.0", "19"},
    {"122.200.224.0", "19"},
    {"122.201.0.0", "21"},
    {"122.202.16.0", "21"},
    {"122.202.24.0", "21"},
    {"122.208.0.0", "12"},
    {"122.248.64.0", "19"},
    {"122.248.128.0", "18"},
    {"122.249.0.0", "16"},
    {"122.250.0.0", "15"},
    {"122.252.32.0", "19"},
    {"122.252.128.0", "20"},
    {"122.253.0.0", "16"},
    {"122.255.76.0", "22"},
    {"122.255.128.0", "18"},
    {"122.255.192.0", "19"},
    {"122.255.224.0", "20"},
    {"122.255.240.0", "20"},
    {"123.0.64.0", "19"},
    {"123.0.96.0", "19"},
    {"123.1.0.0", "17"},
    {"123.48.0.0", "16"},
    {"123.50.0.0", "19"},
    {"123.50.192.0", "19"},
    {"123.50.224.0", "20"},
    {"123.50.240.0", "20"},
    {"123.98.144.0", "20"},
    {"123.98.224.0", "20"},
    {"123.98.240.0", "20"},
    {"123.100.192.0", "19"},
    {"123.103.128.0", "18"},
    {"123.103.224.0", "20"},
    {"123.104.0.0", "14"},
    {"123.108.0.0", "21"},
    {"123.108.152.0", "21"},
    {"123.108.192.0", "21"},
    {"123.108.232.0", "21"},
    {"123.176.48.0", "21"},
    {"123.176.104.0", "21"},
    {"123.176.128.0", "17"},
    {"123.198.0.0", "17"},
    {"123.198.128.0", "17"},
    {"123.200.32.0", "19"},
    {"123.216.0.0", "13"},
    {"123.224.0.0", "14"},
    {"123.230.0.0", "16"},
    {"123.242.208.0", "20"},
    {"123.242.232.0", "21"},
    {"123.254.0.0", "18"},
    {"123.255.128.0", "18"},
    {"123.255.192.0", "21"},
    {"123.255.232.0", "21"},
    {"123.255.240.0", "21"},
    {"124.18.0.0", "16"},
    {"124.24.0.0", "16"},
    {"124.25.0.0", "16"},
    {"124.26.0.0", "15"},
    {"124.32.0.0", "14"},
    {"124.36.0.0", "14"},
    {"124.40.0.0", "19"},
    {"124.40.32.0", "19"},
    {"124.40.64.0", "19"},
    {"124.40.96.0", "20"},
    {"124.41.0.0", "17"},
    {"124.41.128.0", "18"},
    {"124.44.0.0", "16"},
    {"124.45.0.0", "16"},
    {"124.47.64.0", "18"},
    {"124.47.192.0", "18"},
    {"124.66.192.0", "20"},
    {"124.66.224.0", "19"},
    {"124.83.128.0", "17"},
    {"124.84.0.0", "14"},
    {"124.96.0.0", "13"},
    {"124.108.32.0", "21"},
    {"124.108.56.0", "21"},
    {"124.108.192.0", "18"},
    {"124.109.108.0", "22"},
    {"124.109.128.0", "17"},
    {"124.110.0.0", "16"},
    {"124.140.0.0", "14"},
    {"124.144.0.0", "15"},
    {"124.146.64.0", "19"},
    {"124.146.96.0", "19"},
    {"124.146.128.0", "17"},
    {"124.147.0.0", "18"},
    {"124.147.64.0", "18"},
    {"124.150.144.0", "21"},
    {"124.150.152.0", "21"},
    {"124.150.176.0", "20"},
    {"124.150.192.0", "18"},
    {"124.154.0.0", "16"},
    {"124.155.0.0", "18"},
    {"124.155.64.0", "18"},
    {"124.159.0.0", "16"},
    {"124.195.144.0", "20"},
    {"124.208.0.0", "14"},
    {"124.212.0.0", "14"},
    {"124.219.128.0", "17"},
    {"124.240.224.0", "19"},
    {"124.241.0.0", "17"},
    {"124.241.128.0", "18"},
    {"124.241.192.0", "19"},
    {"124.241.224.0", "20"},
    {"124.241.240.0", "20"},
    {"124.245.0.0", "16"},
    {"124.246.128.0", "17"},
    {"124.247.0.0", "17"},
    {"124.247.128.0", "18"},
    {"124.248.144.0", "20"},
    {"124.255.0.0", "16"},
    {"125.0.0.0", "15"},
    {"125.2.0.0", "15"},
    {"125.4.0.0", "16"},
    {"125.6.0.0", "16"},
    {"125.8.0.0", "13"},
    {"125.28.0.0", "15"},
    {"125.30.0.0", "16"},
    {"125.31.64.0", "18"},
    {"125.48.0.0", "13"},
    {"125.56.0.0", "17"},
    {"125.58.64.0", "18"},
    {"125.62.240.0", "20"},
    {"125.63.32.0", "20"},
    {"125.100.0.0", "14"},
    {"125.170.0.0", "16"},
    {"125.172.0.0", "14"},
    {"125.192.0.0", "14"},
    {"125.196.0.0", "14"},
    {"125.200.0.0", "13"},
    {"125.214.128.0", "19"},
    {"125.215.64.0", "19"},
    {"125.215.96.0", "19"},
    {"125.252.64.0", "18"},
    {"125.252.128.0", "18"},
    {"125.254.56.0", "22"},
    {"126.0.0.0", "8"},
    {"129.60.0.0", "16"},
    {"129.136.0.0", "16"},
    {"129.249.0.0", "16"},
    {"130.34.0.0", "16"},
    {"130.54.0.0", "16"},
    {"130.69.0.0", "16"},
    {"130.87.0.0", "16"},
    {"130.153.0.0", "16"},
    {"130.158.0.0", "16"},
    {"131.112.0.0", "16"},
    {"131.113.0.0", "16"},
    {"131.206.0.0", "16"},
    {"131.248.0.0", "16"},
    {"132.179.0.0", "16"},
    {"132.182.0.0", "16"},
    {"132.222.0.0", "16"},
    {"133.0.0.0", "8"},
    {"134.160.0.0", "16"},
    {"134.180.0.0", "16"},
    {"134.237.0.0", "16"},
    {"136.187.0.0", "16"},
    {"136.198.0.0", "16"},
    {"137.153.0.0", "16"},
    {"138.30.0.0", "16"},
    {"138.101.0.0", "16"},
    {"138.107.0.0", "16"},
    {"138.212.0.0", "16"},
    {"138.243.0.0", "16"},
    {"139.101.0.0", "16"},
    {"139.152.0.0", "16"},
    {"139.154.0.0", "16"},
    {"141.178.0.0", "16"},
    {"143.90.0.0", "16"},
    {"143.94.0.0", "16"},
    {"143.125.0.0", "16"},
    {"143.136.0.0", "16"},
    {"143.221.0.0", "16"},
    {"143.253.0.0", "16"},
    {"144.213.0.0", "16"},
    {"146.51.0.0", "16"},
    {"146.56.0.0", "16"},
    {"147.157.0.0", "16"},
    {"147.176.0.0", "16"},
    {"148.161.0.0", "16"},
    {"150.1.0.0", "16"},
    {"150.2.0.0", "16"},
    {"150.3.0.0", "16"},
    {"150.4.0.0", "15"},
    {"150.6.0.0", "16"},
    {"150.7.0.0", "16"},
    {"150.8.0.0", "16"},
    {"150.9.0.0", "16"},
    {"150.10.0.0", "16"},
    {"150.11.0.0", "16"},
    {"150.12.0.0", "16"},
    {"150.13.0.0", "16"},
    {"150.14.0.0", "16"},
    {"150.15.0.0", "16"},
    {"150.16.0.0", "15"},
    {"150.18.0.0", "16"},
    {"150.19.0.0", "16"},
    {"150.20.0.0", "16"},
    {"150.21.0.0", "16"},
    {"150.22.0.0", "16"},
    {"150.23.0.0", "16"},
    {"150.24.0.0", "16"},
    {"150.25.0.0", "16"},
    {"150.26.0.0", "15"},
    {"150.28.0.0", "16"},
    {"150.29.0.0", "16"},
    {"150.30.0.0", "16"},
    {"150.31.0.0", "16"},
    {"150.32.0.0", "16"},
    {"150.33.0.0", "16"},
    {"150.34.0.0", "15"},
    {"150.36.0.0", "16"},
    {"150.37.0.0", "16"},
    {"150.38.0.0", "15"},
    {"150.40.0.0", "16"},
    {"150.41.0.0", "16"},
    {"150.42.0.0", "16"},
    {"150.43.0.0", "16"},
    {"150.44.0.0", "16"},
    {"150.45.0.0", "16"},
    {"150.46.0.0", "15"},
    {"150.48.0.0", "16"},
    {"150.49.0.0", "16"},
    {"150.50.0.0", "16"},
    {"150.51.0.0", "16"},
    {"150.52.0.0", "16"},
    {"150.53.0.0", "16"},
    {"150.54.0.0", "16"},
    {"150.55.0.0", "16"},
    {"150.56.0.0", "16"},
    {"150.57.0.0", "16"},
    {"150.58.0.0", "16"},
    {"150.59.0.0", "16"},
    {"150.60.0.0", "16"},
    {"150.61.0.0", "16"},
    {"150.62.0.0", "15"},
    {"150.64.0.0", "16"},
    {"150.65.0.0", "16"},
    {"150.66.0.0", "15"},
    {"150.68.0.0", "16"},
    {"150.69.0.0", "16"},
    {"150.70.0.0", "15"},
    {"150.72.0.0", "14"},
    {"150.76.0.0", "14"},
    {"150.80.0.0", "16"},
    {"150.81.0.0", "16"},
    {"150.82.0.0", "16"},
    {"150.83.0.0", "16"},
    {"150.84.0.0", "16"},
    {"150.85.0.0", "16"},
    {"150.86.0.0", "15"},
    {"150.88.0.0", "16"},
    {"150.89.0.0", "16"},
    {"150.90.0.0", "15"},
    {"150.92.0.0", "16"},
    {"150.93.0.0", "16"},
    {"150.94.0.0", "15"},
    {"150.96.0.0", "16"},
    {"150.97.0.0", "16"},
    {"150.98.0.0", "16"},
    {"150.99.0.0", "16"},
    {"150.100.0.0", "16"},
    {"153.120.0.0", "16"},
    {"153.121.0.0", "19"},
    {"153.121.32.0", "19"},
    {"153.121.64.0", "19"},
    {"153.121.96.0", "19"},
    {"153.121.128.0", "17"},
    {"153.122.0.0", "15"},
    {"153.124.0.0", "16"},
    {"153.125.0.0", "17"},
    {"153.125.128.0", "18"},
    {"153.125.192.0", "18"},
    {"153.126.0.0", "17"},
    {"153.126.128.0", "17"},
    {"153.127.0.0", "17"},
    {"153.127.128.0", "18"},
    {"153.127.192.0", "18"},
    {"153.128.0.0", "10"},
    {"153.192.0.0", "11"},
    {"153.224.0.0", "12"},
    {"153.240.0.0", "13"},
    {"153.248.0.0", "14"},
    {"153.252.0.0", "15"},
    {"153.254.0.0", "15"},
    {"154.33.0.0", "16"},
    {"154.34.0.0", "16"},
    {"155.160.0.0", "16"},
    {"157.1.0.0", "16"},
    {"157.2.0.0", "16"},
    {"157.3.0.0", "16"},
    {"157.4.0.0", "16"},
    {"157.6.0.0", "16"},
    {"157.7.0.0", "16"},
    {"157.8.0.0", "16"},
    {"157.9.0.0", "16"},
    {"157.10.0.0", "16"},
    {"157.11.0.0", "16"},
    {"157.12.0.0", "16"},
    {"157.13.0.0", "16"},
    {"157.14.0.0", "18"},
    {"157.14.64.0", "19"},
    {"157.14.96.0", "19"},
    {"157.14.128.0", "21"},
    {"157.14.136.0", "21"},
    {"157.14.144.0", "20"},
    {"157.14.160.0", "19"},
    {"157.14.192.0", "20"},
    {"157.14.208.0", "22"},
    {"157.14.212.0", "22"},
    {"157.14.216.0", "21"},
    {"157.14.224.0", "20"},
    {"157.14.240.0", "21"},
    {"157.14.248.0", "22"},
    {"157.14.252.0", "22"},
    {"157.15.0.0", "16"},
    {"157.16.0.0", "16"},
    {"157.17.0.0", "17"},
    {"157.17.128.0", "17"},
    {"157.19.0.0", "16"},
    {"157.20.0.0", "16"},
    {"157.63.0.0", "16"},
    {"157.64.0.0", "16"},
    {"157.65.0.0", "16"},
    {"157.66.0.0", "16"},
    {"157.67.0.0", "16"},
    {"157.68.0.0", "16"},
    {"157.69.0.0", "16"},
    {"157.70.0.0", "16"},
    {"157.71.0.0", "16"},
    {"157.72.0.0", "14"},
    {"157.76.0.0", "16"},
    {"157.77.0.0", "16"},
    {"157.78.0.0", "16"},
    {"157.79.0.0", "16"},
    {"157.80.0.0", "16"},
    {"157.82.0.0", "16"},
    {"157.101.0.0", "16"},
    {"157.102.0.0", "16"},
    {"157.103.0.0", "16"},
    {"157.104.0.0", "16"},
    {"157.105.0.0", "16"},
    {"157.106.0.0", "16"},
    {"157.107.0.0", "16"},
    {"157.108.0.0", "16"},
    {"157.109.0.0", "16"},
    {"157.110.0.0", "16"},
    {"157.111.0.0", "16"},
    {"157.112.0.0", "17"},
    {"157.112.128.0", "20"},
    {"157.112.144.0", "20"},
    {"157.112.160.0", "20"},
    {"157.112.176.0", "20"},
    {"157.112.192.0", "18"},
    {"157.113.0.0", "16"},
    {"157.114.0.0", "16"},
    {"157.115.0.0", "16"},
    {"157.116.0.0", "16"},
    {"157.117.0.0", "16"},
    {"157.118.0.0", "16"},
    {"157.120.0.0", "16"},
    {"157.192.0.0", "16"},
    {"157.205.0.0", "16"},
    {"157.250.64.0", "18"},
    {"158.198.0.0", "16"},
    {"158.199.0.0", "16"},
    {"158.200.0.0", "16"},
    {"158.201.0.0", "17"},
    {"158.201.128.0", "18"},
    {"158.201.192.0", "19"},
    {"158.201.224.0", "20"},
    {"158.201.240.0", "20"},
    {"158.202.0.0", "16"},
    {"158.203.0.0", "16"},
    {"158.204.0.0", "16"},
    {"158.205.0.0", "16"},
    {"158.206.0.0", "16"},
    {"158.207.0.0", "16"},
    {"158.208.0.0", "16"},
    {"158.209.0.0", "16"},
    {"158.210.0.0", "16"},
    {"158.211.0.0", "16"},
    {"158.212.0.0", "16"},
    {"158.213.0.0", "16"},
    {"158.214.0.0", "16"},
    {"158.215.0.0", "16"},
    {"158.217.0.0", "16"},
    {"159.80.0.0", "16"},
    {"159.211.0.0", "16"},
    {"160.11.0.0", "16"},
    {"160.12.0.0", "16"},
    {"160.13.0.0", "16"},
    {"160.14.0.0", "16"},
    {"160.15.0.0", "16"},
    {"160.16.0.0", "16"},
    {"160.17.0.0", "16"},
    {"160.18.0.0", "16"},
    {"160.19.16.0", "22"},
    {"160.19.32.0", "22"},
    {"160.19.40.0", "22"},
    {"160.19.56.0", "22"},
    {"160.19.68.0", "22"},
    {"160.19.72.0", "21"},
    {"160.19.80.0", "21"},
    {"160.19.88.0", "22"},
    {"160.19.108.0", "22"},
    {"160.19.144.0", "21"},
    {"160.19.156.0", "22"},
    {"160.19.164.0", "22"},
    {"160.19.176.0", "22"},
    {"160.19.184.0", "22"},
    {"160.19.204.0", "22"},
    {"160.19.228.0", "22"},
    {"160.20.16.0", "22"},
    {"160.20.36.0", "22"},
    {"160.20.76.0", "22"},
    {"160.20.104.0", "22"},
    {"160.20.116.0", "22"},
    {"160.20.120.0", "21"},
    {"160.20.128.0", "20"},
    {"160.20.212.0", "24"},
    {"160.20.216.0", "24"},
    {"160.20.220.0", "24"},
    {"160.20.224.0", "24"},
    {"160.20.228.0", "24"},
    {"160.20.240.0", "24"},
    {"160.20.244.0", "24"},
    {"160.20.250.0", "24"},
    {"160.21.0.0", "16"},
    {"160.22.0.0", "16"},
    {"160.23.0.0", "16"},
    {"160.24.0.0", "16"},
    {"160.25.0.0", "16"},
    {"160.26.0.0", "16"},
    {"160.27.0.0", "16"},
    {"160.28.0.0", "16"},
    {"160.29.0.0", "16"},
    {"160.30.0.0", "16"},
    {"160.74.0.0", "16"},
    {"160.185.0.0", "16"},
    {"160.186.0.0", "16"},
    {"160.187.0.0", "16"},
    {"160.188.0.0", "16"},
    {"160.189.0.0", "16"},
    {"160.190.0.0", "16"},
    {"160.191.0.0", "16"},
    {"160.192.0.0", "16"},
    {"160.193.0.0", "16"},
    {"160.194.0.0", "16"},
    {"160.195.0.0", "16"},
    {"160.196.0.0", "16"},
    {"160.197.0.0", "16"},
    {"160.198.0.0", "16"},
    {"160.199.0.0", "16"},
    {"160.200.0.0", "16"},
    {"160.201.0.0", "16"},
    {"160.202.0.0", "21"},
    {"160.203.0.0", "16"},
    {"160.204.0.0", "16"},
    {"160.215.0.0", "16"},
    {"160.233.0.0", "16"},
    {"160.235.0.0", "16"},
    {"160.237.0.0", "16"},
    {"160.238.1.0", "24"},
    {"160.238.2.0", "23"},
    {"160.238.4.0", "22"},
    {"160.238.8.0", "23"},
    {"160.238.10.0", "24"},
    {"160.238.20.0", "24"},
    {"160.238.30.0", "24"},
    {"160.238.32.0", "24"},
    {"160.238.40.0", "24"},
    {"160.238.51.0", "24"},
    {"160.238.56.0", "24"},
    {"160.238.62.0", "24"},
    {"160.238.100.0", "24"},
    {"160.239.0.0", "16"},
    {"160.240.0.0", "16"},
    {"160.241.0.0", "16"},
    {"160.243.0.0", "16"},
    {"160.244.0.0", "16"},
    {"160.245.0.0", "16"},
    {"160.246.0.0", "16"},
    {"160.247.0.0", "16"},
    {"160.248.0.0", "16"},
    {"160.249.0.0", "16"},
    {"160.250.0.0", "16"},
    {"160.251.0.0", "16"},
    {"160.252.0.0", "16"},
    {"161.75.0.0", "16"},
    {"161.93.0.0", "16"},
    {"161.94.0.0", "16"},
    {"161.95.0.0", "16"},
    {"161.96.0.0", "16"},
    {"161.118.0.0", "16"},
    {"161.248.0.0", "16"},
    {"163.42.0.0", "16"},
    {"163.43.0.0", "16"},
    {"163.44.0.0", "16"},
    {"163.45.0.0", "16"},
    {"163.46.0.0", "16"},
    {"163.47.0.0", "22"},
    {"163.47.19.0", "24"},
    {"163.47.22.0", "23"},
    {"163.47.24.0", "21"},
    {"163.47.46.0", "24"},
    {"163.48.0.0", "16"},
    {"163.49.0.0", "16"},
    {"163.50.0.0", "16"},
    {"163.51.0.0", "16"},
    {"163.54.0.0", "16"},
    {"163.55.0.0", "16"},
    {"163.56.0.0", "16"},
    {"163.58.0.0", "16"},
    {"163.59.0.0", "16"},
    {"163.61.0.0", "16"},
    {"163.130.0.0", "16"},
    {"163.131.0.0", "16"},
    {"163.132.0.0", "14"},
    {"163.136.0.0", "14"},
    {"163.140.0.0", "15"},
    {"163.143.0.0", "16"},
    {"163.144.0.0", "14"},
    {"163.148.0.0", "15"},
    {"163.208.0.0", "16"},
    {"163.209.0.0", "16"},
    {"163.210.0.0", "16"},
    {"163.211.0.0", "16"},
    {"163.212.0.0", "16"},
    {"163.214.0.0", "16"},
    {"163.215.0.0", "16"},
    {"163.217.0.0", "16"},
    {"163.218.0.0", "16"},
    {"163.219.0.0", "16"},
    {"163.220.0.0", "16"},
    {"163.221.0.0", "16"},
    {"163.223.0.0", "16"},
    {"163.224.0.0", "16"},
    {"163.225.0.0", "16"},
    {"163.226.0.0", "16"},
    {"163.227.0.0", "16"},
    {"164.43.0.0", "16"},
    {"164.46.0.0", "16"},
    {"164.69.0.0", "16"},
    {"164.70.0.0", "15"},
    {"164.161.0.0", "16"},
    {"164.162.0.0", "16"},
    {"165.14.0.0", "16"},
    {"165.76.0.0", "16"},
    {"165.93.0.0", "16"},
    {"165.96.0.0", "16"},
    {"165.99.0.0", "16"},
    {"165.100.0.0", "17"},
    {"165.100.128.0", "18"},
    {"165.100.192.0", "18"},
    {"165.101.0.0", "16"},
    {"165.102.0.0", "16"},
    {"165.108.0.0", "16"},
    {"165.241.0.0", "16"},
    {"165.242.0.0", "16"},
    {"166.100.0.0", "16"},
    {"166.118.0.0", "16"},
    {"166.119.0.0", "16"},
    {"167.169.0.0", "16"},
    {"167.175.0.0", "16"},
    {"171.2.0.0", "15"},
    {"175.28.4.0", "22"},
    {"175.28.16.0", "20"},
    {"175.28.48.0", "20"},
    {"175.28.128.0", "17"},
    {"175.41.32.0", "21"},
    {"175.41.64.0", "18"},
    {"175.41.192.0", "18"},
    {"175.45.136.0", "21"},
    {"175.45.168.0", "21"},
    {"175.100.208.0", "20"},
    {"175.100.224.0", "19"},
    {"175.103.0.0", "22"},
    {"175.103.4.0", "22"},
    {"175.103.8.0", "22"},
    {"175.103.12.0", "22"},
    {"175.103.128.0", "17"},
    {"175.104.0.0", "15"},
    {"175.108.0.0", "15"},
    {"175.111.64.0", "20"},
    {"175.111.80.0", "21"},
    {"175.111.92.0", "22"},
    {"175.111.120.0", "21"},
    {"175.128.0.0", "13"},
    {"175.158.112.0", "20"},
    {"175.176.196.0", "22"},
    {"175.177.0.0", "16"},
    {"175.179.0.0", "16"},
    {"175.184.0.0", "17"},
    {"180.0.0.0", "10"},
    {"180.92.16.0", "20"},
    {"180.92.32.0", "19"},
    {"180.94.40.0", "21"},
    {"180.94.192.0", "20"},
    {"180.94.208.0", "21"},
    {"180.94.240.0", "20"},
    {"180.131.64.0", "19"},
    {"180.131.96.0", "21"},
    {"180.131.104.0", "22"},
    {"180.131.108.0", "24"},
    {"180.131.109.0", "24"},
    {"180.131.110.0", "24"},
    {"180.131.111.0", "24"},
    {"180.131.112.0", "22"},
    {"180.131.116.0", "23"},
    {"180.131.118.0", "23"},
    {"180.131.120.0", "22"},
    {"180.131.124.0", "24"},
    {"180.131.125.0", "24"},
    {"180.131.126.0", "23"},
    {"180.131.136.0", "21"},
    {"180.131.152.0", "21"},
    {"180.131.192.0", "20"},
    {"180.131.208.0", "20"},
    {"180.131.224.0", "19"},
    {"180.144.0.0", "14"},
    {"180.148.28.0", "22"},
    {"180.148.144.0", "21"},
    {"180.148.160.0", "20"},
    {"180.148.184.0", "21"},
    {"180.148.192.0", "20"},
    {"180.149.160.0", "19"},
    {"180.149.200.0", "24"},
    {"180.149.202.0", "23"},
    {"180.149.204.0", "22"},
    {"180.178.68.0", "22"},
    {"180.178.80.0", "21"},
    {"180.178.88.0", "22"},
    {"180.188.208.0", "20"},
    {"180.189.0.0", "18"},
    {"180.189.128.0", "21"},
    {"180.189.224.0", "19"},
    {"180.196.0.0", "14"},
    {"180.200.0.0", "17"},
    {"180.200.224.0", "21"},
    {"180.200.248.0", "22"},
    {"180.211.72.0", "21"},
    {"180.211.84.0", "22"},
    {"180.214.0.0", "18"},
    {"180.214.224.0", "21"},
    {"180.220.0.0", "15"},
    {"180.222.32.0", "19"},
    {"180.222.72.0", "21"},
    {"180.222.80.0", "20"},
    {"180.222.120.0", "21"},
    {"180.222.176.0", "20"},
    {"180.233.96.0", "20"},
    {"180.233.132.0", "22"},
    {"180.233.136.0", "21"},
    {"180.235.0.0", "18"},
    {"180.235.96.0", "21"},
    {"180.235.140.0", "22"},
    {"180.235.144.0", "22"},
    {"180.235.224.0", "19"},
    {"182.16.224.0", "21"},
    {"182.16.236.0", "22"},
    {"182.20.0.0", "15"},
    {"182.22.0.0", "17"},
    {"182.22.128.0", "17"},
    {"182.23.208.0", "22"},
    {"182.23.216.0", "21"},
    {"182.23.224.0", "19"},
    {"182.48.0.0", "18"},
    {"182.50.96.0", "20"},
    {"182.50.164.0", "22"},
    {"182.50.172.0", "22"},
    {"182.50.192.0", "19"},
    {"182.50.224.0", "20"},
    {"182.54.176.0", "20"},
    {"182.54.240.0", "22"},
    {"182.54.248.0", "21"},
    {"182.93.96.0", "19"},
    {"182.158.0.0", "15"},
    {"182.160.192.0", "18"},
    {"182.161.64.0", "21"},
    {"182.161.76.0", "22"},
    {"182.163.0.0", "18"},
    {"182.163.64.0", "19"},
    {"182.164.0.0", "14"},
    {"182.168.0.0", "14"},
    {"182.173.128.0", "19"},
    {"182.236.0.0", "22"},
    {"182.236.4.0", "23"},
    {"182.236.6.0", "24"},
    {"182.236.7.0", "24"},
    {"182.236.8.0", "23"},
    {"182.236.10.0", "23"},
    {"182.236.12.0", "24"},
    {"182.236.13.0", "24"},
    {"182.236.14.0", "23"},
    {"182.236.16.0", "20"},
    {"182.236.32.0", "21"},
    {"182.236.40.0", "23"},
    {"182.236.42.0", "24"},
    {"182.236.43.0", "24"},
    {"182.236.44.0", "22"},
    {"182.236.48.0", "22"},
    {"182.236.52.0", "24"},
    {"182.236.53.0", "24"},
    {"182.236.54.0", "23"},
    {"182.236.56.0", "21"},
    {"182.236.64.0", "19"},
    {"182.236.96.0", "20"},
    {"182.248.0.0", "14"},
    {"182.255.64.0", "20"},
    {"183.72.0.0", "14"},
    {"183.76.0.0", "15"},
    {"183.78.188.0", "22"},
    {"183.79.0.0", "16"},
    {"183.81.176.0", "22"},
    {"183.86.0.0", "17"},
    {"183.86.128.0", "18"},
    {"183.90.176.0", "21"},
    {"183.90.192.0", "19"},
    {"183.90.224.0", "19"},
    {"183.91.96.0", "19"},
    {"183.176.0.0", "16"},
    {"183.177.0.0", "18"},
    {"183.177.128.0", "17"},
    {"183.180.0.0", "16"},
    {"183.181.0.0", "17"},
    {"183.181.128.0", "18"},
    {"183.181.192.0", "18"},
    {"183.182.32.0", "19"},
    {"183.182.128.0", "17"},
    {"183.183.0.0", "16"},
    {"192.5.216.0", "24"},
    {"192.16.178.0", "24"},
    {"192.16.179.0", "24"},
    {"192.26.91.0", "24"},
    {"192.26.93.0", "24"},
    {"192.26.94.0", "24"},
    {"192.26.96.0", "24"},
    {"192.31.116.0", "22"},
    {"192.31.120.0", "24"},
    {"192.31.121.0", "24"},
    {"192.31.122.0", "23"},
    {"192.31.124.0", "24"},
    {"192.31.197.0", "24"},
    {"192.31.198.0", "24"},
    {"192.31.199.0", "24"},
    {"192.31.200.0", "24"},
    {"192.31.201.0", "24"},
    {"192.31.202.0", "24"},
    {"192.31.203.0", "24"},
    {"192.31.204.0", "24"},
    {"192.31.205.0", "24"},
    {"192.31.206.0", "24"},
    {"192.33.135.0", "24"},
    {"192.41.178.0", "23"},
    {"192.41.180.0", "22"},
    {"192.41.184.0", "21"},
    {"192.41.192.0", "24"},
    {"192.41.193.0", "24"},
    {"192.41.194.0", "23"},
    {"192.41.196.0", "23"},
    {"192.42.103.0", "24"},
    {"192.42.104.0", "22"},
    {"192.42.237.0", "24"},
    {"192.47.0.0", "24"},
    {"192.47.1.0", "24"},
    {"192.47.2.0", "23"},
    {"192.47.4.0", "22"},
    {"192.47.8.0", "21"},
    {"192.47.16.0", "22"},
    {"192.47.20.0", "24"},
    {"192.47.21.0", "24"},
    {"192.47.22.0", "24"},
    {"192.47.23.0", "24"},
    {"192.47.24.0", "24"},
    {"192.47.25.0", "24"},
    {"192.47.26.0", "24"},
    {"192.47.27.0", "24"},
    {"192.47.29.0", "24"},
    {"192.47.30.0", "24"},
    {"192.47.31.0", "24"},
    {"192.47.32.0", "24"},
    {"192.47.33.0", "24"},
    {"192.47.34.0", "24"},
    {"192.47.35.0", "24"},
    {"192.47.37.0", "24"},
    {"192.47.38.0", "24"},
    {"192.47.39.0", "24"},
    {"192.47.40.0", "24"},
    {"192.47.41.0", "24"},
    {"192.47.42.0", "24"},
    {"192.47.43.0", "24"},
    {"192.47.44.0", "24"},
    {"192.47.45.0", "24"},
    {"192.47.46.0", "24"},
    {"192.47.47.0", "24"},
    {"192.47.48.0", "24"},
    {"192.47.49.0", "24"},
    {"192.47.50.0", "24"},
    {"192.47.51.0", "24"},
    {"192.47.52.0", "24"},
    {"192.47.53.0", "24"},
    {"192.47.54.0", "24"},
    {"192.47.55.0", "24"},
    {"192.47.56.0", "24"},
    {"192.47.57.0", "24"},
    {"192.47.58.0", "24"},
    {"192.47.59.0", "24"},
    {"192.47.60.0", "24"},
    {"192.47.61.0", "24"},
    {"192.47.62.0", "24"},
    {"192.47.63.0", "24"},
    {"192.47.64.0", "24"},
    {"192.47.65.0", "24"},
    {"192.47.66.0", "24"},
    {"192.47.67.0", "24"},
    {"192.47.68.0", "24"},
    {"192.47.69.0", "24"},
    {"192.47.70.0", "24"},
    {"192.47.71.0", "24"},
    {"192.47.72.0", "24"},
    {"192.47.73.0", "24"},
    {"192.47.74.0", "24"},
    {"192.47.75.0", "24"},
    {"192.47.76.0", "24"},
    {"192.47.77.0", "24"},
    {"192.47.78.0", "24"},
    {"192.47.79.0", "24"},
    {"192.47.80.0", "24"},
    {"192.47.81.0", "24"},
    {"192.47.82.0", "24"},
    {"192.47.83.0", "24"},
    {"192.47.84.0", "24"},
    {"192.47.85.0", "24"},
    {"192.47.86.0", "24"},
    {"192.47.87.0", "24"},
    {"192.47.88.0", "24"},
    {"192.47.89.0", "24"},
    {"192.47.90.0", "24"},
    {"192.47.91.0", "24"},
    {"192.47.92.0", "24"},
    {"192.47.93.0", "24"},
    {"192.47.94.0", "24"},
    {"192.47.95.0", "24"},
    {"192.47.96.0", "24"},
    {"192.47.97.0", "24"},
    {"192.47.98.0", "24"},
    {"192.47.99.0", "24"},
    {"192.47.100.0", "24"},
    {"192.47.101.0", "24"},
    {"192.47.102.0", "24"},
    {"192.47.103.0", "24"},
    {"192.47.104.0", "24"},
    {"192.47.105.0", "24"},
    {"192.47.106.0", "24"},
    {"192.47.107.0", "24"},
    {"192.47.108.0", "24"},
    {"192.47.109.0", "24"},
    {"192.47.110.0", "24"},
    {"192.47.111.0", "24"},
    {"192.47.112.0", "24"},
    {"192.47.113.0", "24"},
    {"192.47.114.0", "24"},
    {"192.47.115.0", "24"},
    {"192.47.116.0", "24"},
    {"192.47.117.0", "24"},
    {"192.47.118.0", "24"},
    {"192.47.119.0", "24"},
    {"192.47.120.0", "24"},
    {"192.47.121.0", "24"},
    {"192.47.122.0", "24"},
    {"192.47.123.0", "24"},
    {"192.47.124.0", "24"},
    {"192.47.125.0", "24"},
    {"192.47.126.0", "24"},
    {"192.47.127.0", "24"},
    {"192.47.128.0", "24"},
    {"192.47.129.0", "24"},
    {"192.47.130.0", "24"},
    {"192.47.131.0", "24"},
    {"192.47.132.0", "24"},
    {"192.47.133.0", "24"},
    {"192.47.134.0", "24"},
    {"192.47.135.0", "24"},
    {"192.47.136.0", "24"},
    {"192.47.137.0", "24"},
    {"192.47.138.0", "24"},
    {"192.47.139.0", "24"},
    {"192.47.140.0", "24"},
    {"192.47.141.0", "24"},
    {"192.47.142.0", "24"},
    {"192.47.143.0", "24"},
    {"192.47.144.0", "20"},
    {"192.47.160.0", "24"},
    {"192.47.161.0", "24"},
    {"192.47.162.0", "24"},
    {"192.47.163.0", "24"},
    {"192.47.164.0", "24"},
    {"192.47.165.0", "24"},
    {"192.47.166.0", "24"},
    {"192.47.167.0", "24"},
    {"192.47.168.0", "24"},
    {"192.47.169.0", "24"},
    {"192.47.170.0", "24"},
    {"192.47.171.0", "24"},
    {"192.47.172.0", "24"},
    {"192.47.173.0", "24"},
    {"192.47.174.0", "24"},
    {"192.47.175.0", "24"},
    {"192.47.176.0", "24"},
    {"192.47.177.0", "24"},
    {"192.47.178.0", "24"},
    {"192.47.179.0", "24"},
    {"192.47.180.0", "22"},
    {"192.47.184.0", "21"},
    {"192.47.192.0", "24"},
    {"192.47.193.0", "24"},
    {"192.47.194.0", "24"},
    {"192.47.195.0", "24"},
    {"192.47.196.0", "24"},
    {"192.47.197.0", "24"},
    {"192.47.198.0", "24"},
    {"192.47.199.0", "24"},
    {"192.47.200.0", "24"},
    {"192.47.201.0", "24"},
    {"192.47.202.0", "24"},
    {"192.47.203.0", "24"},
    {"192.47.204.0", "24"},
    {"192.47.205.0", "24"},
    {"192.47.206.0", "24"},
    {"192.47.207.0", "24"},
    {"192.47.208.0", "24"},
    {"192.47.209.0", "24"},
    {"192.47.210.0", "24"},
    {"192.47.211.0", "24"},
    {"192.47.212.0", "22"},
    {"192.47.216.0", "24"},
    {"192.47.217.0", "24"},
    {"192.47.218.0", "24"},
    {"192.47.219.0", "24"},
    {"192.47.220.0", "24"},
    {"192.47.221.0", "24"},
    {"192.47.222.0", "24"},
    {"192.47.223.0", "24"},
    {"192.47.224.0", "24"},
    {"192.47.225.0", "24"},
    {"192.47.226.0", "24"},
    {"192.47.227.0", "24"},
    {"192.47.228.0", "24"},
    {"192.47.229.0", "24"},
    {"192.47.230.0", "24"},
    {"192.47.231.0", "24"},
    {"192.47.232.0", "24"},
    {"192.47.233.0", "24"},
    {"192.47.234.0", "24"},
    {"192.47.235.0", "24"},
    {"192.47.236.0", "24"},
    {"192.47.237.0", "24"},
    {"192.47.238.0", "24"},
    {"192.47.239.0", "24"},
    {"192.47.240.0", "24"},
    {"192.47.241.0", "24"},
    {"192.50.0.0", "16"},
    {"192.51.16.0", "20"},
    {"192.51.32.0", "22"},
    {"192.51.36.0", "24"},
    {"192.51.37.0", "24"},
    {"192.51.38.0", "24"},
    {"192.51.39.0", "24"},
    {"192.51.40.0", "22"},
    {"192.51.44.0", "24"},
    {"192.51.45.0", "24"},
    {"192.51.46.0", "24"},
    {"192.51.47.0", "24"},
    {"192.51.49.0", "24"},
    {"192.51.50.0", "24"},
    {"192.51.51.0", "24"},
    {"192.51.52.0", "23"},
    {"192.51.54.0", "24"},
    {"192.51.55.0", "24"},
    {"192.51.56.0", "24"},
    {"192.51.57.0", "24"},
    {"192.51.58.0", "23"},
    {"192.51.60.0", "23"},
    {"192.51.62.0", "24"},
    {"192.51.63.0", "24"},
    {"192.51.64.0", "18"},
    {"192.51.128.0", "24"},
    {"192.51.129.0", "24"},
    {"192.51.130.0", "24"},
    {"192.51.131.0", "24"},
    {"192.51.132.0", "24"},
    {"192.51.133.0", "24"},
    {"192.51.134.0", "24"},
    {"192.51.135.0", "24"},
    {"192.51.136.0", "24"},
    {"192.51.137.0", "24"},
    {"192.51.138.0", "24"},
    {"192.51.139.0", "24"},
    {"192.51.140.0", "24"},
    {"192.51.141.0", "24"},
    {"192.51.142.0", "24"},
    {"192.51.143.0", "24"},
    {"192.51.144.0", "21"},
    {"192.51.152.0", "22"},
    {"192.51.156.0", "23"},
    {"192.51.158.0", "24"},
    {"192.51.159.0", "24"},
    {"192.51.160.0", "21"},
    {"192.51.168.0", "21"},
    {"192.51.176.0", "24"},
    {"192.51.177.0", "24"},
    {"192.51.178.0", "24"},
    {"192.51.179.0", "24"},
    {"192.51.180.0", "22"},
    {"192.51.184.0", "24"},
    {"192.51.185.0", "24"},
    {"192.51.186.0", "24"},
    {"192.51.187.0", "24"},
    {"192.51.189.0", "24"},
    {"192.51.190.0", "23"},
    {"192.51.194.0", "24"},
    {"192.51.195.0", "24"},
    {"192.51.196.0", "22"},
    {"192.51.200.0", "24"},
    {"192.51.201.0", "24"},
    {"192.51.202.0", "24"},
    {"192.51.203.0", "24"},
    {"192.51.204.0", "24"},
    {"192.51.205.0", "24"},
    {"192.51.206.0", "24"},
    {"192.51.207.0", "24"},
    {"192.51.208.0", "20"},
    {"192.51.224.0", "24"},
    {"192.51.225.0", "24"},
    {"192.51.226.0", "24"},
    {"192.51.227.0", "24"},
    {"192.51.228.0", "24"},
    {"192.51.229.0", "24"},
    {"192.51.230.0", "24"},
    {"192.51.231.0", "24"},
    {"192.51.232.0", "24"},
    {"192.51.233.0", "24"},
    {"192.51.234.0", "24"},
    {"192.51.235.0", "24"},
    {"192.51.236.0", "24"},
    {"192.51.237.0", "24"},
    {"192.51.238.0", "24"},
    {"192.51.239.0", "24"},
    {"192.51.241.0", "24"},
    {"192.51.242.0", "24"},
    {"192.51.243.0", "24"},
    {"192.51.244.0", "24"},
    {"192.51.245.0", "24"},
    {"192.51.246.0", "24"},
    {"192.51.247.0", "24"},
    {"192.51.248.0", "24"},
    {"192.51.249.0", "24"},
    {"192.51.250.0", "24"},
    {"192.51.251.0", "24"},
    {"192.51.252.0", "24"},
    {"192.51.253.0", "24"},
    {"192.51.254.0", "24"},
    {"192.51.255.0", "24"},
    {"192.55.118.0", "24"},
    {"192.55.220.0", "24"},
    {"192.58.9.0", "24"},
    {"192.58.10.0", "23"},
    {"192.58.12.0", "22"},
    {"192.58.16.0", "23"},
    {"192.58.18.0", "24"},
    {"192.68.235.0", "24"},
    {"192.68.236.0", "24"},
    {"192.68.237.0", "24"},
    {"192.68.238.0", "24"},
    {"192.68.239.0", "24"},
    {"192.68.240.0", "24"},
    {"192.68.241.0", "24"},
    {"192.68.242.0", "24"},
    {"192.68.243.0", "24"},
    {"192.68.244.0", "24"},
    {"192.68.245.0", "24"},
    {"192.68.246.0", "24"},
    {"192.68.247.0", "24"},
    {"192.68.248.0", "24"},
    {"192.68.249.0", "24"},
    {"192.70.179.0", "24"},
    {"192.70.180.0", "23"},
    {"192.83.218.0", "24"},
    {"192.83.219.0", "24"},
    {"192.104.172.0", "24"},
    {"192.104.232.0", "24"},
    {"192.104.233.0", "24"},
    {"192.104.246.0", "24"},
    {"192.104.247.0", "24"},
    {"192.132.31.0", "24"},
    {"192.135.89.0", "24"},
    {"192.135.92.0", "24"},
    {"192.135.94.0", "24"},
    {"192.135.96.0", "24"},
    {"192.135.101.0", "24"},
    {"192.135.102.0", "24"},
    {"192.135.103.0", "24"},
    {"192.135.104.0", "24"},
    {"192.135.105.0", "24"},
    {"192.135.106.0", "23"},
    {"192.135.108.0", "24"},
    {"192.135.222.0", "24"},
    {"192.146.184.0", "24"},
    {"192.149.209.0", "24"},
    {"192.152.69.0", "24"},
    {"192.152.212.0", "24"},
    {"192.153.95.0", "24"},
    {"192.153.96.0", "21"},
    {"192.153.104.0", "24"},
    {"192.153.105.0", "24"},
    {"192.153.106.0", "23"},
    {"192.153.108.0", "22"},
    {"192.153.112.0", "24"},
    {"192.153.113.0", "24"},
    {"192.153.114.0", "24"},
    {"192.156.140.0", "24"},
    {"192.156.141.0", "24"},
    {"192.156.142.0", "24"},
    {"192.156.143.0", "24"},
    {"192.156.145.0", "24"},
    {"192.156.146.0", "23"},
    {"192.156.148.0", "23"},
    {"192.156.150.0", "24"},
    {"192.156.151.0", "24"},
    {"192.156.152.0", "24"},
    {"192.156.153.0", "24"},
    {"192.156.154.0", "24"},
    {"192.156.158.0", "24"},
    {"192.156.159.0", "24"},
    {"192.160.161.0", "24"},
    {"192.172.227.0", "24"},
    {"192.172.228.0", "24"},
    {"192.172.229.0", "24"},
    {"192.172.230.0", "23"},
    {"192.172.234.0", "24"},
    {"192.172.235.0", "24"},
    {"192.172.236.0", "24"},
    {"192.172.237.0", "24"},
    {"192.172.238.0", "24"},
    {"192.172.239.0", "24"},
    {"192.172.241.0", "24"},
    {"192.172.242.0", "24"},
    {"192.172.243.0", "24"},
    {"192.172.245.0", "24"},
    {"192.172.246.0", "24"},
    {"192.174.128.0", "20"},
    {"192.174.144.0", "20"},
    {"192.174.160.0", "19"},
    {"192.174.192.0", "18"},
    {"192.188.73.0", "24"},
    {"192.188.74.0", "24"},
    {"192.188.75.0", "24"},
    {"192.188.76.0", "24"},
    {"192.188.77.0", "24"},
    {"192.188.78.0", "24"},
    {"192.188.79.0", "24"},
    {"192.188.80.0", "24"},
    {"192.188.85.0", "24"},
    {"192.188.86.0", "23"},
    {"192.188.89.0", "24"},
    {"192.188.90.0", "24"},
    {"192.188.92.0", "24"},
    {"192.189.24.0", "24"},
    {"192.218.0.0", "16"},
    {"192.244.0.0", "16"},
    {"198.17.1.0", "24"},
    {"198.17.118.0", "24"},
    {"198.73.220.0", "24"},
    {"198.180.142.0", "24"},
    {"199.43.18.0", "24"},
    {"202.0.65.0", "24"},
    {"202.0.66.0", "24"},
    {"202.0.72.0", "24"},
    {"202.0.73.0", "24"},
    {"202.0.76.0", "24"},
    {"202.1.208.0", "20"},
    {"202.2.88.0", "22"},
    {"202.2.128.0", "24"},
    {"202.2.129.0", "24"},
    {"202.2.130.0", "24"},
    {"202.2.131.0", "24"},
    {"202.2.132.0", "22"},
    {"202.2.136.0", "21"},
    {"202.2.144.0", "20"},
    {"202.2.160.0", "19"},
    {"202.2.192.0", "18"},
    {"202.3.136.0", "24"},
    {"202.3.140.0", "22"},
    {"202.3.144.0", "20"},
    {"202.4.244.0", "22"},
    {"202.4.248.0", "23"},
    {"202.4.250.0", "24"},
    {"202.5.64.0", "20"},
    {"202.6.8.0", "21"},
    {"202.6.68.0", "22"},
    {"202.6.98.0", "24"},
    {"202.6.119.0", "24"},
    {"202.6.244.0", "22"},
    {"202.6.252.0", "22"},
    {"202.7.16.0", "20"},
    {"202.7.96.0", "20"},
    {"202.7.112.0", "20"},
    {"202.8.6.0", "23"},
    {"202.8.16.0", "21"},
    {"202.8.26.0", "23"},
    {"202.8.48.0", "20"},
    {"202.8.80.0", "22"},
    {"202.8.208.0", "20"},
    {"202.9.208.0", "20"},
    {"202.10.96.0", "20"},
    {"202.11.0.0", "16"},
    {"202.12.8.0", "24"},
    {"202.12.9.0", "24"},
    {"202.12.10.0", "24"},
    {"202.12.11.0", "24"},
    {"202.12.12.0", "24"},
    {"202.12.13.0", "24"},
    {"202.12.14.0", "24"},
    {"202.12.15.0", "24"},
    {"202.12.27.0", "24"},
    {"202.12.30.0", "24"},
    {"202.12.64.0", "22"},
    {"202.12.243.0", "24"},
    {"202.12.244.0", "22"},
    {"202.13.0.0", "16"},
    {"202.15.0.0", "16"},
    {"202.16.0.0", "16"},
    {"202.17.0.0", "16"},
    {"202.18.0.0", "16"},
    {"202.19.0.0", "16"},
    {"202.20.110.0", "24"},
    {"202.20.123.0", "24"},
    {"202.20.124.0", "24"},
    {"202.21.160.0", "20"},
    {"202.22.64.0", "18"},
    {"202.22.208.0", "20"},
    {"202.23.0.0", "16"},
    {"202.24.0.0", "15"},
    {"202.26.0.0", "16"},
    {"202.32.0.0", "14"},
    {"202.41.134.0", "24"},
    {"202.41.135.0", "24"},
    {"202.41.200.0", "22"},
    {"202.41.208.0", "20"},
    {"202.43.16.0", "20"},
    {"202.43.68.0", "22"},
    {"202.43.96.0", "22"},
    {"202.43.104.0", "22"},
    {"202.43.240.0", "21"},
    {"202.45.12.0", "24"},
    {"202.45.129.0", "24"},
    {"202.45.160.0", "21"},
    {"202.45.168.0", "21"},
    {"202.47.8.0", "21"},
    {"202.47.16.0", "20"},
    {"202.47.136.0", "22"},
    {"202.48.0.0", "16"},
    {"202.51.4.0", "22"},
    {"202.51.8.0", "21"},
    {"202.51.32.0", "20"},
    {"202.51.48.0", "21"},
    {"202.52.16.0", "20"},
    {"202.52.38.0", "24"},
    {"202.52.151.0", "24"},
    {"202.52.154.0", "24"},
    {"202.52.176.0", "20"},
    {"202.53.16.0", "20"},
    {"202.53.112.0", "20"},
    {"202.53.208.0", "20"},
    {"202.55.112.0", "20"},
    {"202.55.136.0", "22"},
    {"202.55.192.0", "19"},
    {"202.56.16.0", "20"},
    {"202.56.64.0", "20"},
    {"202.57.224.0", "20"},
    {"202.58.1.0", "24"},
    {"202.58.4.0", "22"},
    {"202.58.16.0", "20"},
    {"202.58.104.0", "22"},
    {"202.58.116.0", "22"},
    {"202.58.144.0", "20"},
    {"202.58.234.0", "24"},
    {"202.59.112.0", "20"},
    {"202.59.144.0", "21"},
    {"202.59.176.0", "20"},
    {"202.59.234.0", "23"},
    {"202.60.16.0", "20"},
    {"202.60.32.0", "20"},
    {"202.60.160.0", "19"},
    {"202.61.1.0", "24"},
    {"202.61.16.0", "20"},
    {"202.62.160.0", "20"},
    {"202.62.176.0", "20"},
    {"202.62.253.0", "24"},
    {"202.67.16.0", "20"},
    {"202.67.48.0", "20"},
    {"202.69.112.0", "20"},
    {"202.69.224.0", "20"},
    {"202.70.140.0", "24"},
    {"202.70.176.0", "20"},
    {"202.70.208.0", "20"},
    {"202.70.224.0", "19"},
    {"202.71.48.0", "20"},
    {"202.71.64.0", "19"},
    {"202.72.48.0", "20"},
    {"202.72.64.0", "20"},
    {"202.73.64.0", "20"},
    {"202.73.80.0", "20"},
    {"202.73.136.0", "21"},
    {"202.73.208.0", "20"},
    {"202.74.4.0", "22"},
    {"202.74.16.0", "20"},
    {"202.74.47.0", "24"},
    {"202.74.253.0", "24"},
    {"202.75.8.0", "21"},
    {"202.75.112.0", "20"},
    {"202.75.224.0", "21"},
    {"202.75.232.0", "22"},
    {"202.75.236.0", "23"},
    {"202.75.238.0", "23"},
    {"202.76.192.0", "19"},
    {"202.78.176.0", "20"},
    {"202.78.208.0", "20"},
    {"202.78.248.0", "23"},
    {"202.78.250.0", "24"},
    {"202.79.0.0", "20"},
    {"202.79.128.0", "19"},
    {"202.79.240.0", "21"},
    {"202.80.96.0", "21"},
    {"202.81.8.0", "21"},
    {"202.81.80.0", "20"},
    {"202.83.128.0", "19"},
    {"202.83.184.0", "21"},
    {"202.83.224.0", "20"},
    {"202.84.18.0", "23"},
    {"202.84.48.0", "20"},
    {"202.84.80.0", "20"},
    {"202.86.56.0", "21"},
    {"202.86.120.0", "21"},
    {"202.86.224.0", "20"},
    {"202.86.240.0", "21"},
    {"202.87.64.0", "20"},
    {"202.87.224.0", "20"},
    {"202.88.48.0", "20"},
    {"202.88.192.0", "21"},
    {"202.89.80.0", "20"},
    {"202.89.112.0", "22"},
    {"202.89.224.0", "20"},
    {"202.89.240.0", "21"},
    {"202.90.8.0", "21"},
    {"202.90.176.0", "20"},
    {"202.90.208.0", "20"},
    {"202.91.48.0", "20"},
    {"202.91.112.0", "20"},
    {"202.91.144.0", "20"},
    {"202.91.208.0", "20"},
    {"202.93.64.0", "19"},
    {"202.93.144.0", "21"},
    {"202.94.48.0", "20"},
    {"202.94.86.0", "24"},
    {"202.94.128.0", "19"},
    {"202.94.176.0", "20"},
    {"202.94.192.0", "19"},
    {"202.95.32.0", "19"},
    {"202.95.160.0", "20"},
    {"202.95.176.0", "20"},
    {"202.95.208.0", "20"},
    {"202.95.248.0", "23"},
    {"202.122.24.0", "21"},
    {"202.122.48.0", "20"},
    {"202.122.136.0", "21"},
    {"202.122.176.0", "20"},
    {"202.122.192.0", "18"},
    {"202.123.184.0", "21"},
    {"202.124.0.0", "20"},
    {"202.124.48.0", "20"},
    {"202.124.208.0", "20"},
    {"202.125.48.0", "20"},
    {"202.126.16.0", "21"},
    {"202.126.24.0", "21"},
    {"202.126.224.0", "20"},
    {"202.126.240.0", "20"},
    {"202.127.80.0", "20"},
    {"202.127.176.0", "20"},
    {"202.129.176.0", "21"},
    {"202.129.254.0", "24"},
    {"202.130.60.0", "22"},
    {"202.131.8.0", "21"},
    {"202.131.192.0", "20"},
    {"202.133.112.0", "20"},
    {"202.134.208.0", "20"},
    {"202.135.0.0", "22"},
    {"202.135.4.0", "22"},
    {"202.135.8.0", "21"},
    {"202.135.16.0", "20"},
    {"202.135.32.0", "19"},
    {"202.135.64.0", "19"},
    {"202.135.96.0", "19"},
    {"202.135.128.0", "22"},
    {"202.135.132.0", "23"},
    {"202.135.134.0", "24"},
    {"202.135.135.0", "24"},
    {"202.135.136.0", "21"},
    {"202.135.144.0", "20"},
    {"202.135.160.0", "19"},
    {"202.135.192.0", "18"},
    {"202.136.192.0", "20"},
    {"202.137.32.0", "19"},
    {"202.137.184.0", "21"},
    {"202.138.80.0", "20"},
    {"202.140.0.0", "19"},
    {"202.140.192.0", "19"},
    {"202.141.192.0", "20"},
    {"202.142.8.0", "21"},
    {"202.142.224.0", "19"},
    {"202.143.2.0", "23"},
    {"202.143.8.0", "21"},
    {"202.143.64.0", "19"},
    {"202.143.192.0", "19"},
    {"202.143.224.0", "19"},
    {"202.144.224.0", "19"},
    {"202.145.16.0", "20"},
    {"202.146.16.0", "21"},
    {"202.147.0.0", "18"},
    {"202.147.208.0", "20"},
    {"202.148.240.0", "20"},
    {"202.149.0.0", "20"},
    {"202.149.16.0", "21"},
    {"202.150.12.0", "22"},
    {"202.150.48.0", "21"},
    {"202.151.96.0", "19"},
    {"202.152.96.0", "19"},
    {"202.152.208.0", "20"},
    {"202.157.0.0", "18"},
    {"202.157.96.0", "20"},
    {"202.157.112.0", "20"},
    {"202.157.224.0", "19"},
    {"202.158.224.0", "20"},
    {"202.161.192.0", "18"},
    {"202.162.80.0", "20"},
    {"202.162.112.0", "20"},
    {"202.162.128.0", "19"},
    {"202.163.160.0", "20"},
    {"202.163.176.0", "20"},
    {"202.164.64.0", "19"},
    {"202.164.224.0", "20"},
    {"202.164.240.0", "20"},
    {"202.165.48.0", "21"},
    {"202.165.112.0", "21"},
    {"202.165.160.0", "20"},
    {"202.166.185.0", "24"},
    {"202.168.216.0", "21"},
    {"202.169.64.0", "20"},
    {"202.169.80.0", "20"},
    {"202.169.128.0", "19"},
    {"202.169.184.0", "21"},
    {"202.170.96.0", "20"},
    {"202.170.176.0", "20"},
    {"202.170.208.0", "21"},
    {"202.171.80.0", "20"},
    {"202.171.112.0", "20"},
    {"202.171.128.0", "19"},
    {"202.171.224.0", "21"},
    {"202.172.24.0", "21"},
    {"202.172.64.0", "19"},
    {"202.173.5.0", "24"},
    {"202.173.96.0", "20"},
    {"202.174.48.0", "20"},
    {"202.174.192.0", "19"},
    {"202.175.144.0", "20"},
    {"202.176.8.0", "22"},
    {"202.176.16.0", "20"},
    {"202.176.32.0", "19"},
    {"202.177.32.0", "21"},
    {"202.177.48.0", "20"},
    {"202.177.64.0", "18"},
    {"202.178.80.0", "20"},
    {"202.178.96.0", "20"},
    {"202.179.32.0", "19"},
    {"202.179.192.0", "20"},
    {"202.179.208.0", "20"},
    {"202.179.224.0", "20"},
    {"202.180.32.0", "20"},
    {"202.180.56.0", "21"},
    {"202.180.176.0", "20"},
    {"202.180.192.0", "20"},
    {"202.181.96.0", "20"},
    {"202.183.48.0", "20"},
    {"202.183.80.0", "20"},
    {"202.189.144.0", "20"},
    {"202.189.176.0", "21"},
    {"202.189.192.0", "19"},
    {"202.191.16.0", "20"},
    {"202.191.112.0", "21"},
    {"202.208.0.0", "14"},
    {"202.212.0.0", "14"},
    {"202.216.0.0", "14"},
    {"202.220.0.0", "14"},
    {"202.224.0.0", "15"},
    {"202.226.0.0", "15"},
    {"202.228.0.0", "15"},
    {"202.230.0.0", "15"},
    {"202.232.0.0", "14"},
    {"202.236.0.0", "14"},
    {"202.240.0.0", "12"},
    {"203.14.212.0", "24"},
    {"203.34.81.0", "24"},
    {"203.76.64.0", "19"},
    {"203.76.164.0", "22"},
    {"203.77.184.0", "21"},
    {"203.78.224.0", "19"},
    {"203.79.48.0", "20"},
    {"203.80.6.0", "23"},
    {"203.80.24.0", "21"},
    {"203.81.12.0", "22"},
    {"203.81.112.0", "20"},
    {"203.82.128.0", "19"},
    {"203.83.240.0", "21"},
    {"203.86.224.0", "21"},
    {"203.86.240.0", "21"},
    {"203.86.248.0", "23"},
    {"203.88.176.0", "20"},
    {"203.89.32.0", "19"},
    {"203.89.128.0", "22"},
    {"203.90.16.0", "21"},
    {"203.91.160.0", "19"},
    {"203.92.6.0", "24"},
    {"203.92.16.0", "21"},
    {"203.92.208.0", "20"},
    {"203.95.16.0", "21"},
    {"203.95.24.0", "21"},
    {"203.95.32.0", "19"},
    {"203.99.0.0", "21"},
    {"203.99.72.0", "21"},
    {"203.99.224.0", "21"},
    {"203.99.240.0", "21"},
    {"203.104.96.0", "20"},
    {"203.104.112.0", "20"},
    {"203.104.128.0", "19"},
    {"203.104.160.0", "19"},
    {"203.104.192.0", "19"},
    {"203.104.224.0", "19"},
    {"203.105.64.0", "19"},
    {"203.110.96.0", "19"},
    {"203.110.224.0", "21"},
    {"203.111.192.0", "20"},
    {"203.111.240.0", "21"},
    {"203.111.252.0", "22"},
    {"203.112.0.0", "19"},
    {"203.112.32.0", "19"},
    {"203.112.64.0", "21"},
    {"203.114.192.0", "19"},
    {"203.114.228.0", "22"},
    {"203.114.248.0", "22"},
    {"203.118.252.0", "22"},
    {"203.119.1.0", "24"},
    {"203.119.16.0", "22"},
    {"203.119.22.0", "23"},
    {"203.119.40.0", "24"},
    {"203.123.56.0", "23"},
    {"203.123.58.0", "24"},
    {"203.124.6.0", "23"},
    {"203.124.64.0", "19"},
    {"203.129.96.0", "20"},
    {"203.129.112.0", "20"},
    {"203.129.160.0", "19"},
    {"203.131.192.0", "20"},
    {"203.132.96.0", "19"},
    {"203.133.128.0", "19"},
    {"203.133.192.0", "19"},
    {"203.133.224.0", "21"},
    {"203.133.232.0", "21"},
    {"203.133.240.0", "21"},
    {"203.133.248.0", "22"},
    {"203.135.192.0", "18"},
    {"203.136.0.0", "14"},
    {"203.140.0.0", "15"},
    {"203.142.192.0", "20"},
    {"203.142.208.0", "21"},
    {"203.143.96.0", "19"},
    {"203.145.96.0", "20"},
    {"203.145.120.0", "21"},
    {"203.145.224.0", "19"},
    {"203.147.112.0", "20"},
    {"203.148.96.0", "19"},
    {"203.149.96.0", "20"},
    {"203.152.192.0", "19"},
    {"203.153.56.0", "22"},
    {"203.153.64.0", "20"},
    {"203.160.16.0", "20"},
    {"203.163.0.0", "18"},
    {"203.163.64.0", "18"},
    {"203.165.0.0", "17"},
    {"203.165.128.0", "17"},
    {"203.167.32.0", "19"},
    {"203.168.64.0", "18"},
    {"203.169.8.0", "21"},
    {"203.170.32.0", "20"},
    {"203.170.52.0", "22"},
    {"203.171.8.0", "21"},
    {"203.171.128.0", "19"},
    {"203.171.212.0", "22"},
    {"203.173.64.0", "20"},
    {"203.173.80.0", "21"},
    {"203.174.64.0", "20"},
    {"203.174.88.0", "21"},
    {"203.174.192.0", "19"},
    {"203.174.224.0", "19"},
    {"203.175.16.0", "20"},
    {"203.175.80.0", "20"},
    {"203.178.0.0", "15"},
    {"203.180.0.0", "14"},
    {"203.184.96.0", "19"},
    {"203.188.208.0", "21"},
    {"203.189.32.0", "19"},
    {"203.189.96.0", "20"},
    {"203.190.28.0", "22"},
    {"203.190.56.0", "21"},
    {"203.191.136.0", "21"},
    {"203.191.208.0", "20"},
    {"203.191.224.0", "20"},
    {"203.191.240.0", "20"},
    {"203.192.96.0", "19"},
    {"203.192.128.0", "19"},
    {"203.192.160.0", "19"},
    {"203.194.64.0", "19"},
    {"203.196.16.0", "21"},
    {"203.196.64.0", "20"},
    {"203.196.80.0", "21"},
    {"203.196.88.0", "23"},
    {"203.196.91.0", "24"},
    {"203.196.96.0", "20"},
    {"203.196.112.0", "20"},
    {"203.201.52.0", "22"},
    {"203.201.188.0", "22"},
    {"203.202.192.0", "19"},
    {"203.205.96.0", "20"},
    {"203.205.112.0", "20"},
    {"203.207.48.0", "22"},
    {"203.208.23.0", "24"},
    {"203.209.144.0", "20"},
    {"203.209.176.0", "22"},
    {"203.209.184.0", "22"},
    {"203.210.88.0", "22"},
    {"203.211.32.0", "20"},
    {"203.211.48.0", "21"},
    {"203.211.160.0", "19"},
    {"203.211.192.0", "19"},
    {"203.211.224.0", "19"},
    {"203.212.32.0", "19"},
    {"203.213.160.0", "19"},
    {"203.215.56.0", "22"},
    {"203.215.224.0", "21"},
    {"203.216.0.0", "17"},
    {"203.216.128.0", "19"},
    {"203.216.192.0", "18"},
    {"203.217.156.0", "22"},
    {"203.217.180.0", "22"},
    {"203.222.208.0", "20"},
    {"203.222.224.0", "19"},
    {"203.223.24.0", "21"},
    {"203.223.48.0", "20"},
    {"203.223.64.0", "23"},
    {"203.223.66.0", "23"},
    {"203.223.68.0", "22"},
    {"203.223.72.0", "21"},
    {"203.223.80.0", "21"},
    {"203.223.180.0", "22"},
    {"210.1.144.0", "20"},
    {"210.1.160.0", "19"},
    {"210.1.236.0", "22"},
    {"210.2.192.0", "18"},
    {"210.4.160.0", "19"},
    {"210.4.240.0", "20"},
    {"210.7.96.0", "19"},
    {"210.7.128.0", "17"},
    {"210.14.48.0", "20"},
    {"210.20.0.0", "18"},
    {"210.20.64.0", "18"},
    {"210.20.128.0", "20"},
    {"210.20.144.0", "20"},
    {"210.20.160.0", "19"},
    {"210.20.192.0", "18"},
    {"210.48.128.0", "21"},
    {"210.48.224.0", "19"},
    {"210.56.160.0", "19"},
    {"210.79.0.0", "20"},
    {"210.79.32.0", "20"},
    {"210.79.192.0", "20"},
    {"210.80.192.0", "18"},
    {"210.81.0.0", "19"},
    {"210.81.32.0", "19"},
    {"210.81.64.0", "18"},
    {"210.81.128.0", "18"},
    {"210.81.192.0", "18"},
    {"210.87.224.0", "20"},
    {"210.88.0.0", "20"},
    {"210.88.16.0", "20"},
    {"210.88.32.0", "20"},
    {"210.88.48.0", "21"},
    {"210.88.56.0", "21"},
    {"210.88.64.0", "19"},
    {"210.88.96.0", "19"},
    {"210.88.128.0", "20"},
    {"210.88.144.0", "20"},
    {"210.88.160.0", "20"},
    {"210.88.176.0", "21"},
    {"210.88.184.0", "22"},
    {"210.88.188.0", "22"},
    {"210.88.192.0", "20"},
    {"210.88.208.0", "21"},
    {"210.88.216.0", "22"},
    {"210.88.220.0", "23"},
    {"210.88.222.0", "24"},
    {"210.88.223.0", "24"},
    {"210.88.224.0", "21"},
    {"210.88.232.0", "23"},
    {"210.88.234.0", "23"},
    {"210.88.236.0", "22"},
    {"210.88.240.0", "20"},
    {"210.89.0.0", "19"},
    {"210.89.96.0", "22"},
    {"210.89.100.0", "23"},
    {"210.89.102.0", "23"},
    {"210.89.104.0", "21"},
    {"210.89.112.0", "20"},
    {"210.89.192.0", "18"},
    {"210.128.0.0", "13"},
    {"210.136.0.0", "13"},
    {"210.144.0.0", "12"},
    {"210.160.0.0", "12"},
    {"210.185.128.0", "19"},
    {"210.188.0.0", "14"},
    {"210.193.64.0", "18"},
    {"210.194.0.0", "16"},
    {"210.196.0.0", "14"},
    {"210.203.192.0", "18"},
    {"210.211.32.0", "20"},
    {"210.211.48.0", "21"},
    {"210.211.56.0", "21"},
    {"210.224.0.0", "15"},
    {"210.226.0.0", "15"},
    {"210.228.0.0", "14"},
    {"210.232.0.0", "14"},
    {"210.236.0.0", "14"},
    {"210.247.0.0", "17"},
    {"210.248.0.0", "13"},
    {"211.0.0.0", "13"},
    {"211.8.0.0", "13"},
    {"211.16.0.0", "14"},
    {"211.120.0.0", "13"},
    {"211.128.0.0", "13"},
    {"218.33.128.0", "17"},
    {"218.40.0.0", "13"},
    {"218.100.5.0", "24"},
    {"218.100.6.0", "24"},
    {"218.100.7.0", "24"},
    {"218.100.8.0", "24"},
    {"218.100.9.0", "24"},
    {"218.100.15.0", "24"},
    {"218.100.42.0", "24"},
    {"218.100.45.0", "24"},
    {"218.100.67.0", "24"},
    {"218.110.0.0", "16"},
    {"218.112.0.0", "14"},
    {"218.116.0.0", "14"},
    {"218.120.0.0", "13"},
    {"218.128.0.0", "12"},
    {"218.176.0.0", "13"},
    {"218.185.128.0", "18"},
    {"218.216.0.0", "13"},
    {"218.224.0.0", "13"},
    {"218.251.0.0", "17"},
    {"218.251.128.0", "17"},
    {"219.0.0.0", "10"},
    {"219.66.0.0", "15"},
    {"219.73.128.0", "17"},
    {"219.75.128.0", "17"},
    {"219.94.128.0", "17"},
    {"219.96.0.0", "11"},
    {"219.160.0.0", "14"},
    {"219.164.0.0", "15"},
    {"219.166.0.0", "15"},
    {"219.168.0.0", "13"},
    {"219.176.0.0", "12"},
    {"219.192.0.0", "12"},
    {"219.208.0.0", "13"},
    {"220.0.0.0", "10"},
    {"220.96.0.0", "14"},
    {"220.100.0.0", "17"},
    {"220.100.128.0", "18"},
    {"220.100.192.0", "18"},
    {"220.102.0.0", "16"},
    {"220.104.0.0", "13"},
    {"220.144.0.0", "16"},
    {"220.145.0.0", "16"},
    {"220.146.0.0", "15"},
    {"220.148.0.0", "16"},
    {"220.150.0.0", "16"},
    {"220.151.0.0", "16"},
    {"220.152.0.0", "18"},
    {"220.152.64.0", "19"},
    {"220.152.96.0", "20"},
    {"220.152.120.0", "21"},
    {"220.153.0.0", "16"},
    {"220.156.0.0", "18"},
    {"220.156.64.0", "19"},
    {"220.156.96.0", "19"},
    {"220.156.128.0", "19"},
    {"220.156.192.0", "18"},
    {"220.157.0.0", "18"},
    {"220.157.128.0", "17"},
    {"220.158.0.0", "17"},
    {"220.159.0.0", "17"},
    {"220.159.128.0", "17"},
    {"220.208.0.0", "12"},
    {"220.247.0.0", "18"},
    {"220.247.64.0", "18"},
    {"220.247.184.0", "21"},
    {"220.254.0.0", "17"},
    {"220.254.128.0", "17"},
    {"221.12.192.0", "18"},
    {"221.16.0.0", "12"},
    {"221.32.0.0", "11"},
    {"221.64.0.0", "11"},
    {"221.96.0.0", "12"},
    {"221.112.0.0", "16"},
    {"221.113.0.0", "16"},
    {"221.114.0.0", "15"},
    {"221.116.0.0", "14"},
    {"221.120.168.0", "21"},
    {"221.121.160.0", "20"},
    {"221.121.176.0", "21"},
    {"221.121.192.0", "18"},
    {"221.132.96.0", "20"},
    {"221.132.120.0", "21"},
    {"221.132.128.0", "18"},
    {"221.133.64.0", "18"},
    {"221.170.0.0", "16"},
    {"221.171.0.0", "16"},
    {"221.184.0.0", "13"},
    {"221.240.0.0", "12"},
    {"222.0.0.0", "13"},
    {"222.8.0.0", "16"},
    {"222.9.0.0", "16"},
    {"222.10.0.0", "15"},
    {"222.12.0.0", "14"},
    {"222.144.0.0", "13"},
    {"222.158.0.0", "15"},
    {"222.224.0.0", "16"},
    {"222.225.0.0", "16"},
    {"222.226.0.0", "15"},
    {"222.228.0.0", "16"},
    {"222.229.0.0", "18"},
    {"222.229.64.0", "20"},
    {"222.229.96.0", "19"},
    {"222.229.128.0", "17"},
    {"222.230.0.0", "16"},
    {"222.231.64.0", "18"},
    {"222.231.128.0", "17"},
    {"223.25.128.0", "18"},
    {"223.27.68.0", "22"},
    {"223.27.72.0", "21"},
    {"223.27.116.0", "22"},
    {"223.27.124.0", "22"},
    {"223.27.180.0", "22"},
    {"223.29.0.0", "17"},
    {"223.29.176.0", "20"},
    {"223.29.244.0", "22"},
    {"223.132.0.0", "14"},
    {"223.165.20.0", "22"},
    {"223.165.32.0", "19"},
    {"223.165.80.0", "20"},
    {"223.216.0.0", "14"},
    {"223.223.0.0", "17"},
    {"223.223.160.0", "22"},
    {"223.223.164.0", "22"},
    {"223.223.208.0", "21"},
    {"223.223.224.0", "19"}
  };
  /**
   * cron呼び出し元IPアドレス
   */
  public static final String CRON_KICKER = "0.1.0.1";
 
  /**
   * IPアドレスが国内ドメインかどうかチェックする。
   * ただしIPv6の場合はチェックせず真値を返す
   * @param ip IPアドレス
   * @return 真:国内orIPv6、偽:国外
   */
  public static boolean isJapaneseIP(String ip){
    if(CRON_KICKER.equals(ip)) return true;
    if(ip==null) return false;
    if(ip.contains(":")) return true;
    for(int index=0;index<JAPANESE_IP.length;index++){
      String[] range = JAPANESE_IP[index];
      if(ServerUtils.isScorp(ip, range[0], range[1])){
        return true;
      }
    }
    return false;
  }
 
  /**
   * サブネットマスク検査.
   * @param ipaddr 検査したいIPアドレス文字列、"xxx.xxx.xxx.xxx" 形式
   * @param segaddr セグメントIPアドレス、"xxx.xxx.xxx.xxx" 形式
   * @param len マスク長、1~32
   * @return true=OK,false=NG
   */
  public static boolean isScorp(String ipaddr, String segaddr, String len){
    int length = -1;
    if(len!=null || (!"".equals(len))){
      try{
        length = Integer.parseInt(len);
      }catch(RuntimeException e){}
    }
    if(length==-1){
      return ipaddr.equals(segaddr);
    }else return ServerUtils.isScorp(ipaddr, segaddr, length);
  }

  /**
   * サブネットマスク検査.
   * 検査したいIPアドレス、セグメントIPアドレス、マスク長を指定して、
   * サブネットマスクしたIPアドレスの範囲であるかを検査する。
   * @param ipaddr 検査したいIPアドレス文字列、"xxx.xxx.xxx.xxx" 形式
   * @param segaddr セグメントIPアドレス、"xxx.xxx.xxx.xxx" 形式
   * @param len マスク長、1~32
   * @return true=OK,false=NG
   */
  public static boolean isScorp(String ipaddr,String segaddr,int len){
    byte[] bmask = getMask(len);
    byte[] bseg = addrTobyte(segaddr);
    BigInteger minBigInt = new BigInteger(byteAND(bseg,bmask));
    byte[] bmax = byteOR(bseg,byteXOR(bmask,addrTobyte("255.255.255.255")));
    BigInteger maxBigInt = new BigInteger(bmax);
    BigInteger bchk = new BigInteger(addrTobyte(ipaddr));
    return minBigInt.compareTo(bchk) <= 0 && bchk.compareTo(maxBigInt) <= 0 ? true : false;
  }
  /**
   * サブネットマスクした値の最小アドレスを返す。
   * (例)
   * 192.168.87.22 とマスク長 24 を指定した場合、192.168.87.0 を byte[] で返す
   * @param segaddr IPアドレス"xxx.xxx.xxx.xxx" 形式
   * @param len マスク長、1~32
   * @return 最小アドレスbyte[]
   */
  public static byte[] minSegment(String segaddr,int len){
    byte[] bmask = getMask(len);
    byte[] bseg = addrTobyte(segaddr);
    byte[] bw = byteAND(bseg,bmask);
    if (bw[0]==0 && bw[1]==0 && bw[2]==0 && bw[3]==0){
      byte[] b = {0,0,0,0};
      byte[] br = new byte[4];
      int p = b.length > 4 ? 1 : 0;
      for(int i=0;i < br.length;i++,p++){
        br[i] = b[p];
      }
      return br;
    }
    byte[] b = new BigInteger(1,bw).toByteArray();
    byte[] br = new byte[4];
    int p = b.length > 4 ? 1 : 0;
    for(int i=0;i < br.length;i++,p++){
      br[i] = b[p];
    }
    return br;
  }

  /**
   * サブネットマスクした値の最大アドレスを返す。
   * (例)
   * 192.168.87.22 とマスク長 24 を指定した場合、192.168.87.255 を byte[] で返す
   * @param segaddr IPアドレス"xxx.xxx.xxx.xxx" 形式
   * @param len マスク長、1~32
   * @return 最大アドレスbyte[]
   */
  public static byte[] maxSegment(String segaddr,int len){
    byte[] bmask = getMask(len);
    byte[] bseg = addrTobyte(segaddr);
    byte[] bmax = byteOR(bseg,byteXOR(bmask,addrTobyte("255.255.255.255")));
    byte[] b = new BigInteger(1,bmax).toByteArray();
    byte[] br = new byte[4];
    int p = b.length > 4 ? 1 : 0;
    for(int i=0;i < br.length;i++,p++){
      br[i] = b[p];
    }
    return br;
  }
  /**
   * マスク値で、有効アドレス数を求める
   * @param len len マスク長、1~32
   * @return 有効アドレス数
   */
  public static long countSegment(int len){
    byte[] bmask = getMask(len);
    byte[] bseg = new byte[]{-1,-1,-1,-1};
    byte[] bx = new BigInteger(1
        ,byteOR(bseg,byteXOR(bmask,addrTobyte("255.255.255.255"))))
        .toByteArray();
    byte[] bw = byteAND(bseg,bmask);
    if (bw[0]==0 && bw[1]==0 && bw[2]==0 && bw[3]==0){
      byte[] b = {0,0,0,0};
      byte[] br = new byte[4];
      int p = b.length > 4 ? 1 : 0;
      for(int i=0;i < br.length;i++,p++){
        br[i] = b[p];
      }
      byte[] bmax = new byte[4];
      byte[] bmin = new byte[4];
      int k = bx.length > 4 ? 1 : 0;
      for(int i=0;i < bmax.length;i++,k++){
        bmax[i] = bx[k];
        bmin[i] = br[k];
      }
      BigInteger bigintMax = new BigInteger(1,bmax);
      BigInteger bigintMin = new BigInteger(1,bmin);
      return bigintMax.longValue() - bigintMin.longValue() + 1;
    }
    byte[] bn = new BigInteger(1,bw).toByteArray();
    byte[] bmax = new byte[4];
    byte[] bmin = new byte[4];
    int p = bx.length > 4 ? 1 : 0;
    for(int i=0;i < bmax.length;i++,p++){
      bmax[i] = bx[p];
      bmin[i] = bn[p];
    }
    BigInteger bigintMax = new BigInteger(1,bmax);
    BigInteger bigintMin = new BigInteger(1,bmin);
    return bigintMax.longValue() - bigintMin.longValue() + 1;
  }
  /**
   * IPアドレス文字列、"xxx.xxx.xxx.xxx" → byte[].
   * @param s IPアドレス文字列
   * @return byte[]
   */
  public static byte[] addrTobyte(String s){
    String[] sp = s.split("\\.");
    byte[] b = new byte[4];
    for(int i=0;i < 4;i++){
      b[i] = (byte)(Integer.parseInt(sp[i]));
    }
    return b;
  }

  /**
   * マスク長→サブネットマスク byte[]
   * @param n マスク長
   * @return サブネットマスク byte[]
   */
  public static byte[] getMask(int n){
    byte[] b = new BigInteger(1,new byte[]{-1,-1,-1,-1}).shiftRight(n)
        .xor(new BigInteger(1,new byte[]{-1,-1,-1,-1}))
        .toByteArray();
    byte[] br = new byte[4];
    for(int i=0;i < br.length;i++){
      br[i] = b[i+1];
    }
    return br;
  }

  /**
   * byteのアンド処理。
   * @param b1 ターゲット
   * @param b2 ターゲット
   * @return 結果
   */
  static byte[] byteAND(byte[] b1,byte[] b2){
    byte[] r = new byte[b1.length];
    for(int i=0;i < r.length;i++){
      r[i] = (byte)(b1[i] & b2[i]);
    }
    return r;
  }

  /**
   * byteのオア処理。
   * @param b1 ターゲット
   * @param b2 ターゲット
   * @return 結果
   */
  static byte[] byteOR(byte[] b1,byte[] b2){
    byte[] r = new byte[b1.length];
    for(int i=0;i < r.length;i++){
      r[i] = (byte)(b1[i] | b2[i]);
    }
    return r;
  }

  /**
   * byteのXOR処理。
   * @param b1 ターゲット
   * @param b2 ターゲット
   * @return 結果
   */
  static byte[] byteXOR(byte[] b1,byte[] b2){
    byte[] r = new byte[b1.length];
    for(int i=0;i < r.length;i++){
      r[i] = (byte)(b1[i] ^ b2[i]);
    }
    return r;
  }

}
TOP

Related Classes of jp.freeex.us.fourtypes.server.ServerUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.