// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.math.vector;

import com.hypixel.hytale.math.util.HashUtil;
import javax.annotation.Nullable;
import javax.annotation.Nonnull;
import com.hypixel.hytale.codec.builder.BuilderCodec;

public class Vector2l
{
    @Nonnull
    public static final BuilderCodec<Vector2l> CODEC;
    public static final Vector2l ZERO;
    public static final Vector2l UP;
    public static final Vector2l POS_Y;
    public static final Vector2l DOWN;
    public static final Vector2l NEG_Y;
    public static final Vector2l RIGHT;
    public static final Vector2l POS_X;
    public static final Vector2l LEFT;
    public static final Vector2l NEG_X;
    public static final Vector2l ALL_ONES;
    public static final Vector2l[] DIRECTIONS;
    public long x;
    public long y;
    private transient int hash;
    
    public Vector2l() {
        this(0L, 0L);
    }
    
    public Vector2l(@Nonnull final Vector2l v) {
        this(v.x, v.y);
    }
    
    public Vector2l(final long x, final long y) {
        this.x = x;
        this.y = y;
        this.hash = 0;
    }
    
    public long getX() {
        return this.x;
    }
    
    public void setX(final long x) {
        this.x = x;
        this.hash = 0;
    }
    
    public long getY() {
        return this.y;
    }
    
    public void setY(final long y) {
        this.y = y;
        this.hash = 0;
    }
    
    @Nonnull
    public Vector2l assign(@Nonnull final Vector2l v) {
        this.x = v.x;
        this.y = v.y;
        this.hash = v.hash;
        return this;
    }
    
    @Nonnull
    public Vector2l assign(final long v) {
        this.x = v;
        this.y = v;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2l assign(@Nonnull final long[] v) {
        this.x = v[0];
        this.y = v[1];
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2l assign(final long x, final long y) {
        this.x = x;
        this.y = y;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2l add(@Nonnull final Vector2l v) {
        this.x += v.x;
        this.y += v.y;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2l add(final long x, final long y) {
        this.x += x;
        this.y += y;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2l addScaled(@Nonnull final Vector2l v, final long s) {
        this.x += v.x * s;
        this.y += v.y * s;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2l subtract(@Nonnull final Vector2l v) {
        this.x -= v.x;
        this.y -= v.y;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2l subtract(final long x, final long y) {
        this.x -= x;
        this.y -= y;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2l negate() {
        this.x = -this.x;
        this.y = -this.y;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2l scale(final long s) {
        this.x *= s;
        this.y *= s;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2l scale(final double s) {
        this.x *= (long)s;
        this.y *= (long)s;
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2l scale(@Nonnull final Vector2l p) {
        this.x *= p.x;
        this.y *= p.y;
        this.hash = 0;
        return this;
    }
    
    public long dot(@Nonnull final Vector2l other) {
        return this.x * other.x + this.y * other.y;
    }
    
    public double distanceTo(@Nonnull final Vector2l v) {
        return Math.sqrt((double)this.distanceSquaredTo(v));
    }
    
    public double distanceTo(final long x, final long y) {
        return Math.sqrt((double)this.distanceSquaredTo(x, y));
    }
    
    public long distanceSquaredTo(@Nonnull final Vector2l v) {
        final long x0 = v.x - this.x;
        final long y0 = v.y - this.y;
        return x0 * x0 + y0 * y0;
    }
    
    public long distanceSquaredTo(final long x, final long y) {
        final long dx = x - this.x;
        final long dy = y - this.y;
        return dx * dx + dy * dy;
    }
    
    @Nonnull
    public Vector2l normalize() {
        return this.setLength(1L);
    }
    
    public double length() {
        return Math.sqrt((double)this.squaredLength());
    }
    
    public long squaredLength() {
        return this.x * this.x + this.y * this.y;
    }
    
    @Nonnull
    public Vector2l setLength(final long newLen) {
        return this.scale(newLen / this.length());
    }
    
    @Nonnull
    public Vector2l clampLength(final long maxLength) {
        final double length = this.length();
        if (maxLength > length) {
            return this;
        }
        return this.scale(maxLength / length);
    }
    
    @Nonnull
    public Vector2l dropHash() {
        this.hash = 0;
        return this;
    }
    
    @Nonnull
    public Vector2l clone() {
        return new Vector2l(this.x, this.y);
    }
    
    @Override
    public boolean equals(@Nullable final Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || this.getClass() != o.getClass()) {
            return false;
        }
        final Vector2l vector2l = (Vector2l)o;
        return vector2l.x == this.x && vector2l.y == this.y;
    }
    
    @Override
    public int hashCode() {
        if (this.hash == 0) {
            this.hash = (int)HashUtil.hash(this.x, this.y);
        }
        return this.hash;
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "Vector2l{x=" + this.x + ", y=" + this.y;
    }
    
    @Nonnull
    public static Vector2l max(@Nonnull final Vector2l a, @Nonnull final Vector2l b) {
        return new Vector2l(Math.max(a.x, b.x), Math.max(a.y, b.y));
    }
    
    @Nonnull
    public static Vector2l min(@Nonnull final Vector2l a, @Nonnull final Vector2l b) {
        return new Vector2l(Math.min(a.x, b.x), Math.min(a.y, b.y));
    }
    
    static {
        // 
        // This method could not be decompiled.
        // 
        // Original Bytecode:
        // 
        //     2: invokedynamic   BootstrapMethod #1, get:()Ljava/util/function/Supplier;
        //     7: invokestatic    com/hypixel/hytale/codec/builder/BuilderCodec.builder:(Ljava/lang/Class;Ljava/util/function/Supplier;)Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //    10: getstatic       com/hypixel/hytale/codec/schema/metadata/ui/UIDisplayMode.COMPACT:Lcom/hypixel/hytale/codec/schema/metadata/ui/UIDisplayMode;
        //    13: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.metadata:(Lcom/hypixel/hytale/codec/schema/metadata/Metadata;)Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //    16: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //    19: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //    22: dup            
        //    23: ldc             "X"
        //    25: getstatic       com/hypixel/hytale/codec/Codec.LONG:Lcom/hypixel/hytale/codec/codecs/simple/LongCodec;
        //    28: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //    31: invokedynamic   BootstrapMethod #2, accept:()Ljava/util/function/BiConsumer;
        //    36: invokedynamic   BootstrapMethod #3, apply:()Ljava/util/function/Function;
        //    41: invokedynamic   BootstrapMethod #4, accept:()Ljava/util/function/BiConsumer;
        //    46: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.appendInherited:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;Ljava/util/function/BiConsumer;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    49: invokestatic    com/hypixel/hytale/codec/validation/Validators.nonNull:()Lcom/hypixel/hytale/codec/validation/Validator;
        //    52: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.addValidator:(Lcom/hypixel/hytale/codec/validation/Validator;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    55: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //    58: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //    61: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //    64: dup            
        //    65: ldc             "Y"
        //    67: getstatic       com/hypixel/hytale/codec/Codec.LONG:Lcom/hypixel/hytale/codec/codecs/simple/LongCodec;
        //    70: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //    73: invokedynamic   BootstrapMethod #5, accept:()Ljava/util/function/BiConsumer;
        //    78: invokedynamic   BootstrapMethod #6, apply:()Ljava/util/function/Function;
        //    83: invokedynamic   BootstrapMethod #7, accept:()Ljava/util/function/BiConsumer;
        //    88: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.appendInherited:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;Ljava/util/function/BiConsumer;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    91: invokestatic    com/hypixel/hytale/codec/validation/Validators.nonNull:()Lcom/hypixel/hytale/codec/validation/Validator;
        //    94: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.addValidator:(Lcom/hypixel/hytale/codec/validation/Validator;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    97: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   100: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //   103: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.build:()Lcom/hypixel/hytale/codec/builder/BuilderCodec;
        //   106: putstatic       com/hypixel/hytale/math/vector/Vector2l.CODEC:Lcom/hypixel/hytale/codec/builder/BuilderCodec;
        //   109: new             Lcom/hypixel/hytale/math/vector/Vector2l;
        //   112: dup            
        //   113: lconst_0       
        //   114: lconst_0       
        //   115: invokespecial   com/hypixel/hytale/math/vector/Vector2l.<init>:(JJ)V
        //   118: putstatic       com/hypixel/hytale/math/vector/Vector2l.ZERO:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   121: new             Lcom/hypixel/hytale/math/vector/Vector2l;
        //   124: dup            
        //   125: lconst_0       
        //   126: lconst_1       
        //   127: invokespecial   com/hypixel/hytale/math/vector/Vector2l.<init>:(JJ)V
        //   130: putstatic       com/hypixel/hytale/math/vector/Vector2l.UP:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   133: getstatic       com/hypixel/hytale/math/vector/Vector2l.UP:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   136: putstatic       com/hypixel/hytale/math/vector/Vector2l.POS_Y:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   139: new             Lcom/hypixel/hytale/math/vector/Vector2l;
        //   142: dup            
        //   143: lconst_0       
        //   144: ldc2_w          -1
        //   147: invokespecial   com/hypixel/hytale/math/vector/Vector2l.<init>:(JJ)V
        //   150: putstatic       com/hypixel/hytale/math/vector/Vector2l.DOWN:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   153: getstatic       com/hypixel/hytale/math/vector/Vector2l.DOWN:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   156: putstatic       com/hypixel/hytale/math/vector/Vector2l.NEG_Y:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   159: new             Lcom/hypixel/hytale/math/vector/Vector2l;
        //   162: dup            
        //   163: lconst_1       
        //   164: lconst_0       
        //   165: invokespecial   com/hypixel/hytale/math/vector/Vector2l.<init>:(JJ)V
        //   168: putstatic       com/hypixel/hytale/math/vector/Vector2l.RIGHT:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   171: getstatic       com/hypixel/hytale/math/vector/Vector2l.RIGHT:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   174: putstatic       com/hypixel/hytale/math/vector/Vector2l.POS_X:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   177: new             Lcom/hypixel/hytale/math/vector/Vector2l;
        //   180: dup            
        //   181: ldc2_w          -1
        //   184: lconst_0       
        //   185: invokespecial   com/hypixel/hytale/math/vector/Vector2l.<init>:(JJ)V
        //   188: putstatic       com/hypixel/hytale/math/vector/Vector2l.LEFT:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   191: getstatic       com/hypixel/hytale/math/vector/Vector2l.LEFT:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   194: putstatic       com/hypixel/hytale/math/vector/Vector2l.NEG_X:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   197: new             Lcom/hypixel/hytale/math/vector/Vector2l;
        //   200: dup            
        //   201: lconst_1       
        //   202: lconst_1       
        //   203: invokespecial   com/hypixel/hytale/math/vector/Vector2l.<init>:(JJ)V
        //   206: putstatic       com/hypixel/hytale/math/vector/Vector2l.ALL_ONES:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   209: iconst_4       
        //   210: anewarray       Lcom/hypixel/hytale/math/vector/Vector2l;
        //   213: dup            
        //   214: iconst_0       
        //   215: getstatic       com/hypixel/hytale/math/vector/Vector2l.UP:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   218: aastore        
        //   219: dup            
        //   220: iconst_1       
        //   221: getstatic       com/hypixel/hytale/math/vector/Vector2l.DOWN:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   224: aastore        
        //   225: dup            
        //   226: iconst_2       
        //   227: getstatic       com/hypixel/hytale/math/vector/Vector2l.LEFT:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   230: aastore        
        //   231: dup            
        //   232: iconst_3       
        //   233: getstatic       com/hypixel/hytale/math/vector/Vector2l.RIGHT:Lcom/hypixel/hytale/math/vector/Vector2l;
        //   236: aastore        
        //   237: putstatic       com/hypixel/hytale/math/vector/Vector2l.DIRECTIONS:[Lcom/hypixel/hytale/math/vector/Vector2l;
        //   240: return         
        // 
        // The error that occurred was:
        // 
        // java.lang.UnsupportedOperationException: The requested operation is not supported.
        //     at com.strobel.util.ContractUtils.unsupported(ContractUtils.java:27)
        //     at com.strobel.assembler.metadata.TypeReference.getRawType(TypeReference.java:284)
        //     at com.strobel.assembler.metadata.TypeReference.getRawType(TypeReference.java:279)
        //     at com.strobel.assembler.metadata.TypeReference.makeGenericType(TypeReference.java:154)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitParameterizedType(TypeSubstitutionVisitor.java:225)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitParameterizedType(TypeSubstitutionVisitor.java:25)
        //     at com.strobel.assembler.metadata.ParameterizedType.accept(ParameterizedType.java:103)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visit(TypeSubstitutionVisitor.java:40)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitParameterizedType(TypeSubstitutionVisitor.java:211)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitParameterizedType(TypeSubstitutionVisitor.java:25)
        //     at com.strobel.assembler.metadata.ParameterizedType.accept(ParameterizedType.java:103)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visit(TypeSubstitutionVisitor.java:40)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitMethod(TypeSubstitutionVisitor.java:314)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2611)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1510)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1510)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1083)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.runInference(TypeAnalysis.java:684)
        //     at com.strobel.decompiler.ast.TypeAnalysis.runInference(TypeAnalysis.java:667)
        //     at com.strobel.decompiler.ast.TypeAnalysis.runInference(TypeAnalysis.java:373)
        //     at com.strobel.decompiler.ast.TypeAnalysis.run(TypeAnalysis.java:95)
        //     at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:344)
        //     at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:42)
        //     at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:206)
        //     at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:93)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethodBody(AstBuilder.java:868)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:761)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:638)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:605)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:195)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:162)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.addType(AstBuilder.java:137)
        //     at com.strobel.decompiler.languages.java.JavaLanguage.buildAst(JavaLanguage.java:71)
        //     at com.strobel.decompiler.languages.java.JavaLanguage.decompileType(JavaLanguage.java:59)
        //     at com.strobel.decompiler.DecompilerDriver.decompileType(DecompilerDriver.java:333)
        //     at com.strobel.decompiler.DecompilerDriver.decompileJar(DecompilerDriver.java:254)
        //     at com.strobel.decompiler.DecompilerDriver.main(DecompilerDriver.java:129)
        // 
        throw new IllegalStateException("An error occurred while decompiling this method.");
    }
}
