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

package com.hypixel.hytale.server.spawning.assets.spawns.config;

import com.hypixel.hytale.assetstore.AssetRegistry;
import com.hypixel.hytale.server.core.asset.type.blockset.config.BlockSet;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import com.hypixel.hytale.server.flock.config.FlockAsset;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.common.map.IWeightedElement;

public class RoleSpawnParameters implements IWeightedElement
{
    public static final BuilderCodec<RoleSpawnParameters> CODEC;
    public static final RoleSpawnParameters[] EMPTY_ARRAY;
    protected String id;
    protected double weight;
    protected String spawnBlockSet;
    protected int spawnBlockSetIndex;
    protected String spawnFluidTag;
    protected int spawnFluidTagIndex;
    protected String flockDefinitionId;
    protected int flockDefinitionIndex;
    
    public RoleSpawnParameters(final String id, final double weight, final String spawnBlockSet, final String flockDefinitionId) {
        this.spawnBlockSetIndex = Integer.MIN_VALUE;
        this.spawnFluidTagIndex = Integer.MIN_VALUE;
        this.flockDefinitionIndex = Integer.MIN_VALUE;
        this.id = id;
        this.weight = weight;
        this.spawnBlockSet = spawnBlockSet;
        this.flockDefinitionId = flockDefinitionId;
    }
    
    protected RoleSpawnParameters() {
        this.spawnBlockSetIndex = Integer.MIN_VALUE;
        this.spawnFluidTagIndex = Integer.MIN_VALUE;
        this.flockDefinitionIndex = Integer.MIN_VALUE;
    }
    
    public String getId() {
        return this.id;
    }
    
    @Override
    public double getWeight() {
        return this.weight;
    }
    
    public String getSpawnBlockSet() {
        return this.spawnBlockSet;
    }
    
    public int getSpawnBlockSetIndex() {
        return this.spawnBlockSetIndex;
    }
    
    public int getSpawnFluidTagIndex() {
        return this.spawnFluidTagIndex;
    }
    
    public String getFlockDefinitionId() {
        return this.flockDefinitionId;
    }
    
    public int getFlockDefinitionIndex() {
        if (this.flockDefinitionIndex == Integer.MIN_VALUE && this.flockDefinitionId != null) {
            final int index = FlockAsset.getAssetMap().getIndex(this.flockDefinitionId);
            if (index == Integer.MIN_VALUE) {
                throw new IllegalArgumentException("Unknown key! " + this.flockDefinitionId);
            }
            this.flockDefinitionIndex = index;
        }
        return this.flockDefinitionIndex;
    }
    
    @Nullable
    public FlockAsset getFlockDefinition() {
        final int index = this.getFlockDefinitionIndex();
        return (index != Integer.MIN_VALUE) ? FlockAsset.getAssetMap().getAsset(index) : null;
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "RoleSpawnParameters{id='" + this.id + "', weight=" + this.weight + ", spawnBlockSet=" + this.spawnBlockSet + ", flockDefinitionId=" + this.flockDefinitionId;
    }
    
    static {
        // 
        // This method could not be decompiled.
        // 
        // Original Bytecode:
        // 
        //     2: invokedynamic   BootstrapMethod #2, 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: ldc             "A set of parameters that configure spawning for a single NPC type."
        //    12: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.documentation:(Ljava/lang/String;)Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //    15: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //    18: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //    21: dup            
        //    22: ldc             "Id"
        //    24: getstatic       com/hypixel/hytale/codec/Codec.STRING:Lcom/hypixel/hytale/codec/codecs/simple/StringCodec;
        //    27: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //    30: invokedynamic   BootstrapMethod #3, accept:()Ljava/util/function/BiConsumer;
        //    35: invokedynamic   BootstrapMethod #4, apply:()Ljava/util/function/Function;
        //    40: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.append:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    43: ldc             "The Role ID of the NPC to spawn."
        //    45: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.documentation:(Ljava/lang/String;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    48: invokestatic    com/hypixel/hytale/codec/validation/Validators.nonNull:()Lcom/hypixel/hytale/codec/validation/Validator;
        //    51: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.addValidator:(Lcom/hypixel/hytale/codec/validation/Validator;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    54: getstatic       com/hypixel/hytale/server/npc/validators/NPCRoleValidator.INSTANCE:Lcom/hypixel/hytale/server/npc/validators/NPCRoleValidator;
        //    57: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.addValidator:(Lcom/hypixel/hytale/codec/validation/Validator;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    60: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //    63: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //    66: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //    69: dup            
        //    70: ldc             "Weight"
        //    72: getstatic       com/hypixel/hytale/codec/Codec.DOUBLE:Lcom/hypixel/hytale/codec/codecs/simple/DoubleCodec;
        //    75: iconst_1       
        //    76: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;Z)V
        //    79: invokedynamic   BootstrapMethod #5, accept:()Ljava/util/function/BiConsumer;
        //    84: invokedynamic   BootstrapMethod #6, apply:()Ljava/util/function/Function;
        //    89: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.append:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    92: ldc             "The relative weight of this NPC (chance of being spawned is this value relative to the sum of all weights)."
        //    94: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.documentation:(Ljava/lang/String;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    97: invokestatic    com/hypixel/hytale/codec/validation/Validators.nonNull:()Lcom/hypixel/hytale/codec/validation/Validator;
        //   100: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.addValidator:(Lcom/hypixel/hytale/codec/validation/Validator;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   103: dconst_0       
        //   104: invokestatic    java/lang/Double.valueOf:(D)Ljava/lang/Double;
        //   107: invokestatic    com/hypixel/hytale/codec/validation/Validators.greaterThan:(Ljava/lang/Comparable;)Lcom/hypixel/hytale/codec/validation/Validator;
        //   110: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.addValidator:(Lcom/hypixel/hytale/codec/validation/Validator;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   113: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   116: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //   119: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //   122: dup            
        //   123: ldc             "SpawnBlockSet"
        //   125: getstatic       com/hypixel/hytale/codec/Codec.STRING:Lcom/hypixel/hytale/codec/codecs/simple/StringCodec;
        //   128: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //   131: invokedynamic   BootstrapMethod #7, accept:()Ljava/util/function/BiConsumer;
        //   136: invokedynamic   BootstrapMethod #8, apply:()Ljava/util/function/Function;
        //   141: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.append:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   144: getstatic       com/hypixel/hytale/server/core/asset/type/blockset/config/BlockSet.VALIDATOR_CACHE:Lcom/hypixel/hytale/codec/validation/ValidatorCache;
        //   147: invokevirtual   com/hypixel/hytale/codec/validation/ValidatorCache.getValidator:()Lcom/hypixel/hytale/codec/validation/Validator;
        //   150: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.addValidator:(Lcom/hypixel/hytale/codec/validation/Validator;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   153: ldc             "An optional BlockSet reference that defines which blocks this NPC can spawn on."
        //   155: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.documentation:(Ljava/lang/String;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   158: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   161: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //   164: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //   167: dup            
        //   168: ldc             "SpawnFluidTag"
        //   170: getstatic       com/hypixel/hytale/codec/Codec.STRING:Lcom/hypixel/hytale/codec/codecs/simple/StringCodec;
        //   173: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //   176: invokedynamic   BootstrapMethod #9, accept:()Ljava/util/function/BiConsumer;
        //   181: invokedynamic   BootstrapMethod #10, apply:()Ljava/util/function/Function;
        //   186: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.append:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   189: ldc             "An optional tag reference that defines which fluids this NPC can spawn on."
        //   191: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.documentation:(Ljava/lang/String;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   194: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   197: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //   200: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //   203: dup            
        //   204: ldc             "Flock"
        //   206: getstatic       com/hypixel/hytale/server/flock/config/FlockAsset.CHILD_ASSET_CODEC:Lcom/hypixel/hytale/codec/Codec;
        //   209: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //   212: invokedynamic   BootstrapMethod #11, accept:()Ljava/util/function/BiConsumer;
        //   217: invokedynamic   BootstrapMethod #12, apply:()Ljava/util/function/Function;
        //   222: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.append:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   225: ldc             "The optional flock definition to spawn around this NPC."
        //   227: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.documentation:(Ljava/lang/String;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   230: getstatic       com/hypixel/hytale/server/flock/config/FlockAsset.VALIDATOR_CACHE:Lcom/hypixel/hytale/codec/validation/ValidatorCache;
        //   233: invokevirtual   com/hypixel/hytale/codec/validation/ValidatorCache.getValidator:()Lcom/hypixel/hytale/codec/validation/Validator;
        //   236: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.addValidator:(Lcom/hypixel/hytale/codec/validation/Validator;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   239: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   242: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //   245: invokedynamic   BootstrapMethod #13, accept:()Ljava/util/function/Consumer;
        //   250: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.afterDecode:(Ljava/util/function/Consumer;)Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   253: checkcast       Lcom/hypixel/hytale/codec/builder/BuilderCodec$Builder;
        //   256: invokevirtual   com/hypixel/hytale/codec/builder/BuilderCodec$Builder.build:()Lcom/hypixel/hytale/codec/builder/BuilderCodec;
        //   259: putstatic       com/hypixel/hytale/server/spawning/assets/spawns/config/RoleSpawnParameters.CODEC:Lcom/hypixel/hytale/codec/builder/BuilderCodec;
        //   262: iconst_0       
        //   263: anewarray       Lcom/hypixel/hytale/server/spawning/assets/spawns/config/RoleSpawnParameters;
        //   266: putstatic       com/hypixel/hytale/server/spawning/assets/spawns/config/RoleSpawnParameters.EMPTY_ARRAY:[Lcom/hypixel/hytale/server/spawning/assets/spawns/config/RoleSpawnParameters;
        //   269: 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: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: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.inferTypesForVariables(TypeAnalysis.java:593)
        //     at com.strobel.decompiler.ast.TypeAnalysis.runInference(TypeAnalysis.java:405)
        //     at com.strobel.decompiler.ast.TypeAnalysis.run(TypeAnalysis.java:95)
        //     at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:109)
        //     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.");
    }
}
