// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/acl/ACLItemMethod.java
// public enum ACLItemMethod {
//     DIRECT,
//     PROXY,
//     REJECT
// }
// 
// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/acl/ACLItemType.java
// public enum ACLItemType {
//     DOMAIN,
//     DOMAIN_SUFFIX,
//     IPv4,
//     IPv4_CIDR,
//     IPv6,
//     IPv6_CIDR
// }
// 
// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/exception/InvalidAddressException.java
// public class InvalidAddressException extends Exception {
// 
//     public InvalidAddressException(final String msg) {
//         super(msg);
//     }
// 
// }


import com.vecsight.dragonite.proxy.acl.ACLItemMethod;
import com.vecsight.dragonite.proxy.acl.ACLItemType;
import com.vecsight.dragonite.proxy.exception.InvalidAddressException;
import java.net.InetAddress;
import java.net.UnknownHostException;
        }

        final int mask;
        try {
            final int shift = Integer.parseInt(stringSplit[1]);

            if (shift < 1 || shift > 32)
                throw new InvalidAddressException(string + " is not a valid IPv4 CIDR address");

            mask = (-1) << (32 - shift);
        } catch (final NumberFormatException e) {
            throw new InvalidAddressException(string + " is not a valid IPv4 CIDR address");
        }

        final int addr = ipv4ToInt(bytes);

        lowest = addr & mask;

        highest = lowest + (~mask);

    }

    private int ipv4ToInt(final byte[] bytes) {
        return ((bytes[0] << 24) & 0xFF000000)
                | ((bytes[1] << 16) & 0xFF0000)
                | ((bytes[2] << 8) & 0xFF00)
                | (bytes[3] & 0xFF);
    }

    @Override
// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/acl/ACLItemMethod.java
// public enum ACLItemMethod {
//     DIRECT,
//     PROXY,
//     REJECT
// }
// 
// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/acl/ACLItemType.java
// public enum ACLItemType {
//     DOMAIN,
//     DOMAIN_SUFFIX,
//     IPv4,
//     IPv4_CIDR,
//     IPv6,
//     IPv6_CIDR
// }
// 
// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/exception/InvalidAddressException.java
// public class InvalidAddressException extends Exception {
// 
//     public InvalidAddressException(final String msg) {
//         super(msg);
//     }
// 
// }


// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/acl/item/IPv4CIDRACLItem.java
import com.vecsight.dragonite.proxy.acl.ACLItemMethod;
import com.vecsight.dragonite.proxy.acl.ACLItemType;
import com.vecsight.dragonite.proxy.exception.InvalidAddressException;
import java.net.InetAddress;
import java.net.UnknownHostException;

        }

        final int mask;
        try {
            final int shift = Integer.parseInt(stringSplit[1]);

            if (shift < 1 || shift > 32)
                throw new InvalidAddressException(string + " is not a valid IPv4 CIDR address");

            mask = (-1) << (32 - shift);
        } catch (final NumberFormatException e) {
            throw new InvalidAddressException(string + " is not a valid IPv4 CIDR address");
        }

        final int addr = ipv4ToInt(bytes);

        lowest = addr & mask;

        highest = lowest + (~mask);

    }

    private int ipv4ToInt(final byte[] bytes) {
        return ((bytes[0] << 24) & 0xFF000000)
                | ((bytes[1] << 16) & 0xFF0000)
                | ((bytes[2] << 8) & 0xFF00)
                | (bytes[3] & 0xFF);
    }

    @Override
    public ACLItemType getType() {