// Decompiled by Jad v1.5.7f. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   Useful.java


public class Useful
{

    public Useful()
    {
    }

    public static double roundTo(double d, int i)
    {
        if(i <= 0)
            return (double)Math.round(d);
        d *= Math.pow(10D, i);
        double d1 = d - Math.floor(d);
        d = Math.floor(d);
        if(d1 >= 0.5D)
            d++;
        d /= Math.pow(10D, i);
        return d;
    }

    public static boolean isBinary(String s)
    {
        return concealedOnly(s, "01");
    }

    public static boolean isHex(String s)
    {
        return concealedOnly(s.toUpperCase(), "0123456789ABCDEF");
    }

    private static String toHexValue(int i)
    {
        if(i < 10)
            return "" + i;
        switch(i)
        {
        case 10: // '\n'
            return "A";

        case 11: // '\013'
            return "B";

        case 12: // '\f'
            return "C";

        case 13: // '\r'
            return "D";

        case 14: // '\016'
            return "E";

        case 15: // '\017'
            return "F";
        }
        return "";
    }

    private static int toDecValue(String s)
    {
        if(s.equals("0"))
            return 0;
        if(s.equals("1"))
            return 1;
        if(s.equals("2"))
            return 2;
        if(s.equals("3"))
            return 3;
        if(s.equals("4"))
            return 4;
        if(s.equals("5"))
            return 5;
        if(s.equals("6"))
            return 6;
        if(s.equals("7"))
            return 7;
        if(s.equals("8"))
            return 8;
        if(s.equals("9"))
            return 9;
        if(s.equals("A"))
            return 10;
        if(s.equals("B"))
            return 11;
        if(s.equals("C"))
            return 12;
        if(s.equals("D"))
            return 13;
        if(s.equals("E"))
            return 14;
        return !s.equals("F") ? 0 : 15;
    }

    public static int binToDec(String s)
    {
        boolean flag = false;
        int j = 0;
        if(!isBinary(s))
            return -1;
        for(int i = 0; i < s.length(); i++)
            if(s.substring(s.length() - i - 1, s.length() - i).equals("1"))
                j = (int)((double)j + Math.pow(2D, i));

        return j;
    }

    public static String decToBin(int i)
    {
        boolean flag = false;
        String s = "";
        if(i <= 0)
            return "0";
        for(; i > 1; i /= 2)
            if((double)i / 2D > Math.floor((double)i / 2D))
                s = "1" + s;
            else
                s = "0" + s;

        s = "1" + s;
        return s;
    }

    public static String decToHex(int i)
    {
        boolean flag = false;
        String s = "";
        if(i < 16)
            return toHexValue(i);
        for(; i >= 16; i /= 16)
            s = toHexValue(i - (i / 16) * 16) + s;

        s = toHexValue(i - (i / 16) * 16) + s;
        return s;
    }

    public static int hexToDec(String s)
    {
        boolean flag = false;
        int j = 0;
        if(!isHex(s))
            return -1;
        for(int i = 0; i < s.length(); i++)
            j = (int)((double)j + (double)toDecValue(s.substring(s.length() - i - 1, s.length() - i)) * Math.pow(16D, i));

        return j;
    }

    public static String binToHex(String s)
    {
        if(!isBinary(s))
            return "";
        else
            return decToHex(binToDec(s));
    }

    public static String hexToBin(String s)
    {
        if(!isHex(s))
            return "";
        else
            return decToBin(hexToDec(s));
    }

    public static String left(String s, int i)
    {
        return s.substring(0, i);
    }

    public static String mid(String s, int i, int j)
    {
        return s.substring(i - 1, (i + j) - 1);
    }

    public static String right(String s, int i)
    {
        return s.substring(s.length() - i, s.length());
    }

    public static boolean concealed(String s, String s1)
    {
        if(s1.length() == 0)
            return true;
        for(int i = 1; i <= (s.length() - s1.length()) + 1; i++)
            if(mid(s, i, s1.length()).equals(s1))
                return true;

        return false;
    }

    public static boolean concealedAny(String s, String s1)
    {
        if(s1.length() == 0)
            return true;
        for(int i = 1; i <= s1.length(); i++)
            if(concealed(s, mid(s1, i, 1)))
                return true;

        return false;
    }

    public static boolean concealedOnly(String s, String s1)
    {
        boolean flag = false;
        if(s1.length() == 0)
            return true;
        for(int i = 1; i <= s.length(); i++)
        {
            boolean flag1 = false;
            for(int j = 1; j <= s1.length(); j++)
                if(mid(s, i, 1).equals(mid(s1, j, 1)))
                    flag1 = true;

            if(!flag1)
                return false;
        }

        return true;
    }
}

