/*
 * Decompiled with CFR 0.152.
 */
import java.io.ByteArrayInputStream;
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.DataOutput;
import java.io.IOException;
import java.io.InputStream;

public final class iv
implements dm {
    private static final cn g = cn.b(22);
    private final int e;
    private final int f;
    public final int a;
    public final int b;
    public static int[] c;
    public static int[] d;

    public static byte[] a(int n, String string) {
        int n2 = n + 1;
        char c = string.charAt(n);
        byte[] byArray = new byte[c];
        for (n = 0; n < c; ++n) {
            int n3 = string.charAt(n2);
            ++n2;
            if (n3 > 127) {
                n3 = 127 - n3;
            }
            byArray[n] = (byte)n3;
        }
        return byArray;
    }

    private static long a(long l) {
        return l * (long)4 / (long)36;
    }

    public final int b(cn cn2) {
        return g.a(this.f, cn2.b);
    }

    public final int a(cn cn2) {
        return g.a(this.e, cn2.b);
    }

    public final void a(DataOutput dataOutput) {
        iv.a(this, dataOutput);
    }

    private static int b(int n, int n2) {
        while (n > n2) {
            n -= n2;
        }
        while (n < 0) {
            n += n2;
        }
        return n;
    }

    private static int a(int n) {
        while (n < -180000000) {
            n += 360000000;
        }
        while (n > 180000000) {
            n -= 360000000;
        }
        return n;
    }

    private static void a(InputStream inputStream, int[] nArray) {
        try {
            DataInputStream dataInputStream = new DataInputStream(inputStream);
            nArray[0] = dataInputStream.readInt();
            for (int i = 1; i < nArray.length; ++i) {
                nArray[i] = nArray[i - 1] + (dataInputStream.readUnsignedByte() << 16 | dataInputStream.readUnsignedByte() << 8 | dataInputStream.readUnsignedByte());
            }
            return;
        }
        finally {
            inputStream.close();
        }
    }

    public final long b(iv iv2) {
        long l = Math.abs((long)(this.a - iv2.a));
        long l2 = Math.abs((long)(this.b - iv2.b));
        if (l2 > 180000000L) {
            l2 = 360000000L - l2;
        }
        l2 = l2 * (long)ck.h((Math.abs(this.a) + Math.abs(iv2.a)) / 2000000) / (long)250;
        return iv.a(l) * iv.a(l) + iv.a(l2) * iv.a(l2);
    }

    public final long a(iv iv2) {
        return (long)(this.a - iv2.a) * (long)(this.a - iv2.a) / (long)100 + (long)(this.b - iv2.b) * (long)(this.b - iv2.b) / (long)100;
    }

    public final long a(iv iv2, cn cn2) {
        int n = iv2.a(cn2) - this.a(cn2);
        int n2 = iv2.b(cn2) - this.b(cn2);
        return (long)n * (long)n + (long)n2 * (long)n2;
    }

    public static iv a(int n, int n2, int n3) {
        return new iv(n, n2, n3);
    }

    public static iv a(lk lk2) {
        int n = lk2.d(1);
        int n2 = lk2.d(2);
        return new iv(n, n2);
    }

    public static iv a(DataInput dataInput) {
        return new iv(dataInput.readInt(), dataInput.readInt());
    }

    public final iv d() {
        return this;
    }

    public final int a() {
        return 1;
    }

    public final int hashCode() {
        return 29 * this.a + this.b;
    }

    public final String toString() {
        return iv.a(this.a, this.b);
    }

    public final lk b() {
        lk lk2 = new lk(la.d);
        lk2.h(1, this.a);
        lk2.h(2, this.b);
        return lk2;
    }

    private iv(int n, int n2, int n3, int n4, int n5) {
        n5 = iv.a(n5);
        this.a = n4;
        this.b = n5;
        cn cn2 = cn.b(n3);
        this.e = cn2.a(iv.b(n, cn2.a), 22);
        this.f = cn2.a(n2, 22);
    }

    private iv(int n, int n2, int n3) {
        cn cn2 = cn.b(n3);
        this.e = cn2.a(iv.b(n, cn2.a), 22);
        this.f = cn2.a(n2, 22);
        this.a = iv.c(this.f, g);
        n = this.e;
        cn cn3 = g;
        this.b = (int)((long)(n - cn3.a / 2) * 360000000L / (long)cn3.a);
    }

    public static iv a(String string) {
        if (string.indexOf(44) != -1) {
            try {
                String[] stringArray = ed.a(string, ',');
                int n = iv.b(stringArray[0]);
                int n2 = iv.b(stringArray[1]);
                return new iv(n, n2);
            }
            catch (NumberFormatException numberFormatException) {}
        }
        return null;
    }

    /*
     * Enabled aggressive block sorting
     */
    public final boolean equals(Object object) {
        block3: {
            block2: {
                if (this == object) break block2;
                if (!(object instanceof iv)) break block3;
                iv iv2 = (iv)object;
                if ((this.a != iv2.a || this.b != iv2.b) && (this.e != iv2.e || this.f != iv2.f)) break block3;
            }
            return true;
        }
        return false;
    }

    public static void a(iv iv2, DataOutput dataOutput) {
        if (iv2 == null) {
            dataOutput.writeInt(0);
            dataOutput.writeInt(0);
            return;
        }
        dataOutput.writeInt(iv2.a);
        dataOutput.writeInt(iv2.b);
    }

    public static String a(int n, int n2) {
        return iv.b(n) + ',' + iv.b(n2);
    }

    private static String b(int n) {
        int n2 = n / 1000000;
        int n3 = Math.abs(n - n2 * 1000000);
        StringBuffer stringBuffer = new StringBuffer();
        if (n < 0 && n2 == 0) {
            stringBuffer.append("-");
        }
        stringBuffer.append(n2);
        if (n3 > 0) {
            stringBuffer.append('.');
            stringBuffer.append(String.valueOf(n3 + 1000000).substring(1));
        }
        return stringBuffer.toString();
    }

    private static int b(String string) {
        if ((string = string.trim()).indexOf(46) == -1) {
            return Integer.parseInt(string) * 1000000;
        }
        String[] stringArray = ed.a(string, '.');
        if (stringArray.length <= 2) {
            int n = Integer.parseInt(stringArray[0]);
            int n2 = stringArray[0].indexOf("-") != -1 ? 1 : 0;
            String string2 = stringArray[1].substring(0, Math.min(6, stringArray[1].length()));
            if (string2.length() != 0 && string2.charAt(0) >= '0' && string2.charAt(0) <= '9') {
                int n3 = Integer.parseInt(ed.a(string2, 6, '0'));
                n2 = n2 != 0 ? -1 : 1;
                return (n *= 1000000) + n3 * n2;
            }
            throw new NumberFormatException("Invalid fractional part in \"" + string + "\"");
        }
        throw new NumberFormatException("Coordinate has more than one decimal point: " + string);
    }

    public final iv a(int n, int n2, cn cn2) {
        int n3 = cn2.a(n, 22) + this.e;
        int n4 = cn2.a(n2, 22) + this.f;
        int n5 = this.a;
        if (n2 != 0) {
            n5 = iv.c(n4, g);
        }
        n2 = this.b;
        if (n != 0) {
            n2 += (int)((long)n * 360000000L / (long)cn2.a);
        }
        return new iv(n3, n4, 22, n5, n2);
    }

    /*
     * Enabled aggressive block sorting
     * Enabled unnecessary exception pruning
     * Enabled aggressive exception aggregation
     */
    private static int c(int n, cn cn2) {
        if (d == null) {
            d = new int[141];
            try {
                iv.a(new ByteArrayInputStream(iv.a(0, "\u01a8\u0080\u009b\u00f6\u0097\u001bv\u0018\u001bv\u0018\u001bo*\u001baU\u001bL\u00d1\u001b1K\u001b\u000fO\u001a\u0099\u0099\u001a\u00c7=\u001a\u00fc\u00f1\u001aI\u0016\u001a\t\u0019\u0019\u00bc\u00a2\u0019y\u00d0\u0019*\u00a1\u0018\u00a8\u00c5\u0018\u00ff\u00e6\u0018%\u00b2\u0017\u00b8\u00d1\u0017f\u00f2\u0017\u0002\u00bf\u0016\u00e3\u00e4\u00164m\u0015\u00b5\u00f9\u0015_0\u0014\u008d\u00c7\u0014\u00faa\u0014\u0017o\u0013\u00d6!\u0013:\u00cb\u0012\u00b3^\u0012^U\u0011\u008f\u00b7\u0011\u00fc\u0099\u0011\u0017\u00a9\u0010\u00d3\u00bf\u0010B\u00bc\u000f\u00a5\u0002\u000fr\u00e9\u000f\f\u00e6\u000e\u00d7 \u000eE@\r\u009b\u0007\r\u00fb\u00f9\r&\u00b9\f\u00b5\u00ac\fp\u00ca\f\u0018q\u000b\u00bd\n\u000bm\u00f8\u000b\u001a\u009a\n\u00b5(\n{M\n.R\t\u009c4\t\u00e6\u008f\tR\u00fd\t\f\u009c\b\u00b6\u000e\b\u00f9\u0081\bF\u00d5\b\b\r\u0007\u00b4\u001e\u0007\u00f0\u00a8\u0007V-\u0007\u001e\u001b\u0006\u0098\u00e7\u0006\u00cd\u00e5\u0006\u007f\u001a\u0006M\u000f\u0006\u001cr\u0005\u00928\u0005\u00c0Y\u0005\u00ed\u00b1\u0005g\u00f1\u0005=\u00ee\u0005\u0014\u00b2\u0004\u0092;\u0004\u00b9\u00aa\u0004\u00de\u00f0\u0004}f\u0004ZN\u00048A\u0004\u0017:\u0003\u0088/\u0003\u00a7\u001a\u0003\u00c6\u008c\u0003\u00e3\u00ca\u0003\u00ffX\u0003d\u00a8\u0003J+\u00030L\u0003\u00177\u0002\u0081\u009b\u0002\u0098O\u0002\u00afr\u0002\u00c5F\u0002\u00db\u00b7\u0002\u00f0\u008e\u0002{\u00c2\u0002h(\u0002U+\u0002B\u00bc\u00020\u0093\u0002\u001f\u00df\u0002\u000e\u00a2\u0001\u0081\u00e3\u0001\u0091\u00a3\u0001\u00a0\u00e9\u0001\u00af\u00b4\u0001\u00bdr\u0001\u00cb\u00f5\u0001\u00d8\u0011\u0001\u00e5\u0001\u0001\u00f2X\u0001\u00fe\u0012\u0001u/\u0001i\u00d8\u0001^|\u0001S\u00d7\u0001I*\u0001>\u0080\u00015#\u0001+\u00e8\u0001\"T\u0001\u0019[\u0001\u0010\u00d5\u0001\b<\u0001\u0000\u0011\u0000\u0087(\u0000\u008f|\u0000\u0096\r\u0000\u009e\u00a7\u0000\u00a5\u00a1\u0000\u00ab\u0019\u0000\u00b2\u00f4\u0000\u00b80\u0000\u00be\b\u0000\u00c4\u0010\u0000\u00caG\u00fd\u0080\u008f\u00c2\u00f2\u000fBs\u000fBs\u000fC\u00dc\u000fF\u0006\u000fI\u00e6\u000fNa\u000fT^\u000f[\u00ec\u000fd\u0002\u000fm\u00cf\u000fx\u00e0\u000f\u00fb\u00ab\u000f\u00edT\u000f\u00de&\u000f\u00ceN\u000f\u00bd\u00ac\u000f\u00aa\u00c2\u000f\u0095\u0015\u000f\u0080\u009e\u0010\u0017-\u00100\u0001\u0010Jk\u0010ft\u0010\u00fb+\u0010\u00dc\u00e3\u0010\u00bb\u00a8\u0010\u0098\u0092\u0011\f\u0091\u00113\u0093\u0011\\\u0083\u0011\u00f74\u0011\u00ca\u00d6\u0011\u009av\u0012\u0017\u00cb\u0012L\u00fe\u0012\u00fc\u0082\u0012\u00c1F\u0012\u0084\u00fb\u0013;\u00a4\u0013\u007fw\u0013\u00b9\u00f9\u0014\u00118\u0014_\u00bb\u0014\u00cdd\u0015\tW\u0015d\u009a\u0015\u00baV\u0016*\u0080\u0016\u00e9:\u0017\u0007m\u0017\u007f\u0002\u0017\u0082u\u0018\u00fcH\u0019\u0011\u0014\u0019\u00d8x\u001aG.\u001a\u008e\u0003\u001b\u00da\u00a6\u001cf\u00cc\u001d4\u00cc\u001e\u0011\u001f\u001e\u0082o\u001f\u0084J!\f\u00e8\"3\u00f7#r\u00da$\u00b3\u009d&E\u00cb'\u009e*)\u00db\u0019+\u00ebF-\u00c7\u00da0\u0019\u00d32\u00be\u00be5\u00c2\u00ae9\u001e\u001c<\u0088iAd\u00dfF\u00f6RL\u00easS\u00b4O\\\u00f64gZ\f")), d);
            }
            catch (IOException iOException) {
                throw new RuntimeException("rmercator.dat is incorrect");
            }
        }
        int[] nArray = d;
        int n2 = Math.abs(n = (int)((long)(cn2.a / 2 - n) * 1000000000L / (long)cn2.a)) / 5000000 + 1;
        if (n2 >= nArray.length - 2) {
            if (n <= 0) {
                return -80000000;
            }
            return 80000000;
        }
        int n3 = Math.abs(n) % 5000000;
        long l = (long)((-1 * nArray[n2 - 1] + 3 * nArray[n2] - 3 * nArray[n2 + 1] + nArray[n2 + 2]) / 6) * (long)n3 * (long)n3;
        long l2 = (long)((3 * nArray[n2 - 1] - 6 * nArray[n2] + 3 * nArray[n2 + 1]) / 6) * (long)n3 * (long)n3;
        long l3 = (long)((-2 * nArray[n2 - 1] - 3 * nArray[n2] + 6 * nArray[n2 + 1] - nArray[n2 + 2]) / 6) * (long)n3;
        n2 = (int)((long)nArray[n2] + (l / 5000000L * (long)n3 / 5000000L / 5000000L + l2 / 5000000L / 5000000L + l3 / 5000000L));
        if (n >= 0) {
            return n2;
        }
        return -n2;
    }

    /*
     * Enabled aggressive block sorting
     * Enabled unnecessary exception pruning
     * Enabled aggressive exception aggregation
     */
    public iv(int n, int n2) {
        n2 = iv.a(n2);
        if (n > 80000000) {
            n = 80000000;
        }
        if (n < -80000000) {
            n = -80000000;
        }
        this.a = n;
        this.b = n2;
        cn cn2 = g;
        this.e = (int)((long)cn2.a / (long)2 + (long)n2 * (long)cn2.a / 360000000L);
        cn2 = g;
        n2 = Math.abs(n) / 1000000 + 1;
        int n3 = Math.abs(n) % 1000000;
        if (c == null) {
            c = new int[84];
            try {
                iv.a(new ByteArrayInputStream(iv.a(425, "\u01a8\u0080\u009b\u00f6\u0097\u001bv\u0018\u001bv\u0018\u001bo*\u001baU\u001bL\u00d1\u001b1K\u001b\u000fO\u001a\u0099\u0099\u001a\u00c7=\u001a\u00fc\u00f1\u001aI\u0016\u001a\t\u0019\u0019\u00bc\u00a2\u0019y\u00d0\u0019*\u00a1\u0018\u00a8\u00c5\u0018\u00ff\u00e6\u0018%\u00b2\u0017\u00b8\u00d1\u0017f\u00f2\u0017\u0002\u00bf\u0016\u00e3\u00e4\u00164m\u0015\u00b5\u00f9\u0015_0\u0014\u008d\u00c7\u0014\u00faa\u0014\u0017o\u0013\u00d6!\u0013:\u00cb\u0012\u00b3^\u0012^U\u0011\u008f\u00b7\u0011\u00fc\u0099\u0011\u0017\u00a9\u0010\u00d3\u00bf\u0010B\u00bc\u000f\u00a5\u0002\u000fr\u00e9\u000f\f\u00e6\u000e\u00d7 \u000eE@\r\u009b\u0007\r\u00fb\u00f9\r&\u00b9\f\u00b5\u00ac\fp\u00ca\f\u0018q\u000b\u00bd\n\u000bm\u00f8\u000b\u001a\u009a\n\u00b5(\n{M\n.R\t\u009c4\t\u00e6\u008f\tR\u00fd\t\f\u009c\b\u00b6\u000e\b\u00f9\u0081\bF\u00d5\b\b\r\u0007\u00b4\u001e\u0007\u00f0\u00a8\u0007V-\u0007\u001e\u001b\u0006\u0098\u00e7\u0006\u00cd\u00e5\u0006\u007f\u001a\u0006M\u000f\u0006\u001cr\u0005\u00928\u0005\u00c0Y\u0005\u00ed\u00b1\u0005g\u00f1\u0005=\u00ee\u0005\u0014\u00b2\u0004\u0092;\u0004\u00b9\u00aa\u0004\u00de\u00f0\u0004}f\u0004ZN\u00048A\u0004\u0017:\u0003\u0088/\u0003\u00a7\u001a\u0003\u00c6\u008c\u0003\u00e3\u00ca\u0003\u00ffX\u0003d\u00a8\u0003J+\u00030L\u0003\u00177\u0002\u0081\u009b\u0002\u0098O\u0002\u00afr\u0002\u00c5F\u0002\u00db\u00b7\u0002\u00f0\u008e\u0002{\u00c2\u0002h(\u0002U+\u0002B\u00bc\u00020\u0093\u0002\u001f\u00df\u0002\u000e\u00a2\u0001\u0081\u00e3\u0001\u0091\u00a3\u0001\u00a0\u00e9\u0001\u00af\u00b4\u0001\u00bdr\u0001\u00cb\u00f5\u0001\u00d8\u0011\u0001\u00e5\u0001\u0001\u00f2X\u0001\u00fe\u0012\u0001u/\u0001i\u00d8\u0001^|\u0001S\u00d7\u0001I*\u0001>\u0080\u00015#\u0001+\u00e8\u0001\"T\u0001\u0019[\u0001\u0010\u00d5\u0001\b<\u0001\u0000\u0011\u0000\u0087(\u0000\u008f|\u0000\u0096\r\u0000\u009e\u00a7\u0000\u00a5\u00a1\u0000\u00ab\u0019\u0000\u00b2\u00f4\u0000\u00b80\u0000\u00be\b\u0000\u00c4\u0010\u0000\u00caG\u00fd\u0080\u008f\u00c2\u00f2\u000fBs\u000fBs\u000fC\u00dc\u000fF\u0006\u000fI\u00e6\u000fNa\u000fT^\u000f[\u00ec\u000fd\u0002\u000fm\u00cf\u000fx\u00e0\u000f\u00fb\u00ab\u000f\u00edT\u000f\u00de&\u000f\u00ceN\u000f\u00bd\u00ac\u000f\u00aa\u00c2\u000f\u0095\u0015\u000f\u0080\u009e\u0010\u0017-\u00100\u0001\u0010Jk\u0010ft\u0010\u00fb+\u0010\u00dc\u00e3\u0010\u00bb\u00a8\u0010\u0098\u0092\u0011\f\u0091\u00113\u0093\u0011\\\u0083\u0011\u00f74\u0011\u00ca\u00d6\u0011\u009av\u0012\u0017\u00cb\u0012L\u00fe\u0012\u00fc\u0082\u0012\u00c1F\u0012\u0084\u00fb\u0013;\u00a4\u0013\u007fw\u0013\u00b9\u00f9\u0014\u00118\u0014_\u00bb\u0014\u00cdd\u0015\tW\u0015d\u009a\u0015\u00baV\u0016*\u0080\u0016\u00e9:\u0017\u0007m\u0017\u007f\u0002\u0017\u0082u\u0018\u00fcH\u0019\u0011\u0014\u0019\u00d8x\u001aG.\u001a\u008e\u0003\u001b\u00da\u00a6\u001cf\u00cc\u001d4\u00cc\u001e\u0011\u001f\u001e\u0082o\u001f\u0084J!\f\u00e8\"3\u00f7#r\u00da$\u00b3\u009d&E\u00cb'\u009e*)\u00db\u0019+\u00ebF-\u00c7\u00da0\u0019\u00d32\u00be\u00be5\u00c2\u00ae9\u001e\u001c<\u0088iAd\u00dfF\u00f6RL\u00easS\u00b4O\\\u00f64gZ\f")), c);
            }
            catch (IOException iOException) {
                throw new RuntimeException("Can't read mercator.dat");
            }
        }
        int[] nArray = c;
        long l = (long)((-1 * nArray[n2 - 1] + 3 * nArray[n2] - 3 * nArray[n2 + 1] + nArray[n2 + 2]) / 6) * (long)n3 * (long)n3;
        long l2 = (long)((3 * nArray[n2 - 1] - 6 * nArray[n2] + 3 * nArray[n2 + 1]) / 6) * (long)n3 * (long)n3;
        long l3 = (long)((-2 * nArray[n2 - 1] - 3 * nArray[n2] + 6 * nArray[n2 + 1] - nArray[n2 + 2]) / 6) * (long)n3;
        n2 = (int)((long)nArray[n2] + (l / 1000000L * (long)n3 / 1000000L / 1000000L + l2 / 1000000L / 1000000L + l3 / 1000000L));
        if (n < 0) {
            n2 = -n2;
        }
        this.f = (int)((long)cn2.a / (long)2 - (long)((int)((long)n2 * (long)cn2.a * (long)10 / 360000000L) / 10));
    }
}

