package com.l7tech.server.search.processors;

import com.l7tech.objectmodel.Entity;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.FindException;
import com.l7tech.search.Dependency.DependencyType;
import com.l7tech.search.Dependency.MethodReturnType;
import com.l7tech.server.EntityHeaderUtils;
import com.l7tech.server.search.PropertiesUtil;
import com.l7tech.server.search.exceptions.CannotReplaceDependenciesException;
import com.l7tech.server.search.exceptions.CannotRetrieveDependenciesException;
import com.l7tech.server.search.objects.Dependency;
import com.l7tech.server.search.objects.DependencySearchResults;
import com.l7tech.server.search.objects.DependentObject;
import com.l7tech.util.Either;
import com.l7tech.util.Functions;
import com.l7tech.util.Option;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class DependencyFinder {
   @NotNull
   private final HashSet<Dependency> a;
   @NotNull
   private final Map<String, Object> b;
   private int c;
   @NotNull
   private final DependencyProcessorStore d;
   private static final Logger e;
   private static final String[] f;

   public DependencyFinder(@NotNull Map<String, Object> var1, @NotNull DependencyProcessorStore var2) {
      if (var1 == null) {
         a(0);
      }

      if (var2 == null) {
         a(1);
      }

      super();
      this.b = var1;
      this.d = var2;
      this.a = new HashSet<>();
   }

   @NotNull
   public synchronized List<DependencySearchResults> process(@NotNull List<DependencyFinder.FindResults> var1) throws FindException, CannotRetrieveDependenciesException {
      try {
         if (var1 == null) {
            a(2);
         }
      } catch (FindException var9) {
         throw a(var9);
      }

      int var2 = this.a(f[3], Integer.class, -1);
      ArrayList var3 = new ArrayList(var1.size());

      for (DependencyFinder.FindResults var5 : var1) {
         if (var5.hasEntity()) {
            this.c = var2;
            Dependency var6 = this.a(var5);

            try {
               if (var6 != null) {
                  var3.add(new DependencySearchResults(var6.getDependent(), var6.getDependencies(), this.b));
                  continue;
               }
            } catch (FindException var8) {
               throw a(var8);
            }

            var3.add(null);
         }
      }

      try {
         if (var3 == null) {
            a(3);
         }

         return var3;
      } catch (FindException var7) {
         throw a(var7);
      }
   }

   public synchronized <O> void replaceDependencies(@NotNull O var1, @NotNull Map<EntityHeader, EntityHeader> var2, boolean var3) throws CannotReplaceDependenciesException {
      try {
         if (var1 == null) {
            a(4);
         }
      } catch (CannotReplaceDependenciesException var5) {
         throw a(var5);
      }

      try {
         if (var2 == null) {
            a(5);
         }
      } catch (CannotReplaceDependenciesException var6) {
         throw a(var6);
      }

      ab var4 = this.d.a(var1);
      var4.replaceDependencies(var1, var2, this, var3);
   }

   @Nullable
   Dependency a(@NotNull DependencyFinder.FindResults param1) throws FindException, CannotRetrieveDependenciesException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 1
      // 001: ifnonnull 010
      // 004: bipush 6
      // 006: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (I)V
      // 009: goto 010
      // 00c: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 00f: athrow
      // 010: aload 1
      // 011: invokevirtual com/l7tech/server/search/processors/DependencyFinder$FindResults.isSome ()Z
      // 014: ifne 01d
      // 017: aconst_null
      // 018: areturn
      // 019: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 01c: athrow
      // 01d: aload 1
      // 01e: invokevirtual com/l7tech/server/search/processors/DependencyFinder$FindResults.hasEntityHeader ()Z
      // 021: ifeq 034
      // 024: new com/l7tech/server/search/objects/BrokenDependency
      // 027: dup
      // 028: aload 1
      // 029: invokevirtual com/l7tech/server/search/processors/DependencyFinder$FindResults.getEntityHeader ()Lcom/l7tech/objectmodel/EntityHeader;
      // 02c: invokespecial com/l7tech/server/search/objects/BrokenDependency.<init> (Lcom/l7tech/objectmodel/EntityHeader;)V
      // 02f: areturn
      // 030: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 033: athrow
      // 034: aload 0
      // 035: aload 1
      // 036: invokevirtual com/l7tech/server/search/processors/DependencyFinder$FindResults.getEntity ()Ljava/lang/Object;
      // 039: invokevirtual com/l7tech/server/search/processors/DependencyFinder.e (Ljava/lang/Object;)Lcom/l7tech/server/search/objects/Dependency;
      // 03c: astore 2
      // 03d: aload 2
      // 03e: ifnull 047
      // 041: aload 2
      // 042: areturn
      // 043: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 046: athrow
      // 047: new com/l7tech/server/search/objects/Dependency
      // 04a: dup
      // 04b: aload 0
      // 04c: aload 1
      // 04d: invokevirtual com/l7tech/server/search/processors/DependencyFinder$FindResults.getEntity ()Ljava/lang/Object;
      // 050: invokevirtual com/l7tech/server/search/processors/DependencyFinder.createDependentObject (Ljava/lang/Object;)Lcom/l7tech/server/search/objects/DependentObject;
      // 053: invokespecial com/l7tech/server/search/objects/Dependency.<init> (Lcom/l7tech/server/search/objects/DependentObject;)V
      // 056: astore 3
      // 057: aload 0
      // 058: getstatic com/l7tech/server/search/processors/DependencyFinder.f [Ljava/lang/String;
      // 05b: astore 8
      // 05d: aload 8
      // 05f: bipush 40
      // 061: aaload
      // 062: ldc java/util/List
      // 064: invokestatic java/util/Collections.emptyList ()Ljava/util/List;
      // 067: invokevirtual com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
      // 06a: checkcast java/util/List
      // 06d: astore 4
      // 06f: aload 3
      // 070: invokevirtual com/l7tech/server/search/objects/Dependency.getDependent ()Lcom/l7tech/server/search/objects/DependentObject;
      // 073: instanceof com/l7tech/server/search/objects/DependentEntity
      // 076: ifeq 09d
      // 079: aload 4
      // 07b: aload 3
      // 07c: invokevirtual com/l7tech/server/search/objects/Dependency.getDependent ()Lcom/l7tech/server/search/objects/DependentObject;
      // 07f: checkcast com/l7tech/server/search/objects/DependentEntity
      // 082: invokevirtual com/l7tech/server/search/objects/DependentEntity.getEntityHeader ()Lcom/l7tech/objectmodel/EntityHeader;
      // 085: invokevirtual com/l7tech/objectmodel/EntityHeader.getStrId ()Ljava/lang/String;
      // 088: invokeinterface java/util/List.contains (Ljava/lang/Object;)Z 2
      // 08d: ifeq 09d
      // 090: goto 097
      // 093: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 096: athrow
      // 097: aconst_null
      // 098: areturn
      // 099: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 09c: athrow
      // 09d: aload 0
      // 09e: getstatic com/l7tech/server/search/processors/DependencyFinder.f [Ljava/lang/String;
      // 0a1: astore 8
      // 0a3: aload 8
      // 0a5: bipush 41
      // 0a7: aaload
      // 0a8: ldc java/util/List
      // 0aa: invokestatic java/util/Collections.emptyList ()Ljava/util/List;
      // 0ad: invokevirtual com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
      // 0b0: checkcast java/util/List
      // 0b3: astore 5
      // 0b5: bipush 1
      // 0b6: istore 6
      // 0b8: aload 8
      // 0ba: bipush 14
      // 0bc: aaload
      // 0bd: ldc java/lang/Boolean
      // 0bf: bipush 0
      // 0c0: invokestatic java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
      // 0c3: aload 0
      // 0c4: getfield com/l7tech/server/search/processors/DependencyFinder.b Ljava/util/Map;
      // 0c7: invokestatic com/l7tech/server/search/PropertiesUtil.getOption (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;
      // 0ca: checkcast java/lang/Boolean
      // 0cd: invokevirtual java/lang/Boolean.booleanValue ()Z
      // 0d0: istore 7
      // 0d2: iload 7
      // 0d4: ifeq 12f
      // 0d7: aload 3
      // 0d8: invokevirtual com/l7tech/server/search/objects/Dependency.getDependent ()Lcom/l7tech/server/search/objects/DependentObject;
      // 0db: invokevirtual com/l7tech/server/search/objects/DependentObject.getDependencyType ()Lcom/l7tech/search/Dependency$DependencyType;
      // 0de: invokevirtual com/l7tech/search/Dependency$DependencyType.toString ()Ljava/lang/String;
      // 0e1: aload 8
      // 0e3: bipush 5
      // 0e4: aaload
      // 0e5: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0e8: ifne 12f
      // 0eb: goto 0f2
      // 0ee: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0f1: athrow
      // 0f2: aload 3
      // 0f3: invokevirtual com/l7tech/server/search/objects/Dependency.getDependent ()Lcom/l7tech/server/search/objects/DependentObject;
      // 0f6: invokevirtual com/l7tech/server/search/objects/DependentObject.getDependencyType ()Lcom/l7tech/search/Dependency$DependencyType;
      // 0f9: invokevirtual com/l7tech/search/Dependency$DependencyType.toString ()Ljava/lang/String;
      // 0fc: getstatic com/l7tech/server/search/processors/DependencyFinder.f [Ljava/lang/String;
      // 0ff: bipush 19
      // 101: aaload
      // 102: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 105: ifne 12f
      // 108: goto 10f
      // 10b: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 10e: athrow
      // 10f: aload 3
      // 110: invokevirtual com/l7tech/server/search/objects/Dependency.getDependent ()Lcom/l7tech/server/search/objects/DependentObject;
      // 113: invokevirtual com/l7tech/server/search/objects/DependentObject.getDependencyType ()Lcom/l7tech/search/Dependency$DependencyType;
      // 116: invokevirtual com/l7tech/search/Dependency$DependencyType.toString ()Ljava/lang/String;
      // 119: getstatic com/l7tech/server/search/processors/DependencyFinder.f [Ljava/lang/String;
      // 11c: bipush 23
      // 11e: aaload
      // 11f: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 122: ifne 12f
      // 125: goto 12c
      // 128: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 12b: athrow
      // 12c: bipush 0
      // 12d: istore 6
      // 12f: iload 6
      // 131: ifeq 144
      // 134: aload 0
      // 135: getfield com/l7tech/server/search/processors/DependencyFinder.a Ljava/util/HashSet;
      // 138: aload 3
      // 139: invokevirtual java/util/HashSet.add (Ljava/lang/Object;)Z
      // 13c: pop
      // 13d: goto 146
      // 140: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 143: athrow
      // 144: aconst_null
      // 145: areturn
      // 146: aload 0
      // 147: getfield com/l7tech/server/search/processors/DependencyFinder.c I
      // 14a: ifeq 180
      // 14d: aload 5
      // 14f: aload 0
      // 150: aload 1
      // 151: invokevirtual com/l7tech/server/search/processors/DependencyFinder.b (Lcom/l7tech/server/search/processors/DependencyFinder$FindResults;)Lcom/l7tech/objectmodel/EntityHeader;
      // 154: invokeinterface java/util/List.contains (Ljava/lang/Object;)Z 2
      // 159: ifne 180
      // 15c: goto 163
      // 15f: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 162: athrow
      // 163: aload 0
      // 164: dup
      // 165: getfield com/l7tech/server/search/processors/DependencyFinder.c I
      // 168: bipush 1
      // 169: isub
      // 16a: putfield com/l7tech/server/search/processors/DependencyFinder.c I
      // 16d: aload 3
      // 16e: aload 0
      // 16f: aload 1
      // 170: invokevirtual com/l7tech/server/search/processors/DependencyFinder$FindResults.getEntity ()Ljava/lang/Object;
      // 173: invokevirtual com/l7tech/server/search/processors/DependencyFinder.c (Ljava/lang/Object;)Ljava/util/List;
      // 176: invokevirtual com/l7tech/server/search/objects/Dependency.setDependencies (Ljava/util/List;)V
      // 179: goto 180
      // 17c: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 17f: athrow
      // 180: aload 3
      // 181: areturn
      // try (0 -> 4): 5 com/l7tech/objectmodel/FindException
      // try (7 -> 12): 12 com/l7tech/objectmodel/FindException
      // try (14 -> 23): 23 com/l7tech/objectmodel/FindException
      // try (30 -> 34): 34 com/l7tech/objectmodel/FindException
      // try (55 -> 67): 68 com/l7tech/objectmodel/FindException
      // try (59 -> 72): 72 com/l7tech/objectmodel/FindException
      // try (99 -> 110): 111 com/l7tech/objectmodel/FindException
      // try (101 -> 122): 123 com/l7tech/objectmodel/FindException
      // try (113 -> 134): 135 com/l7tech/objectmodel/FindException
      // try (139 -> 147): 147 com/l7tech/objectmodel/FindException
      // try (151 -> 160): 161 com/l7tech/objectmodel/FindException
      // try (154 -> 175): 176 com/l7tech/objectmodel/FindException
   }

   @Nullable
   private EntityHeader b(@NotNull DependencyFinder.FindResults var1) {
      try {
         if (var1 == null) {
            a(7);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      try {
         if (var1.hasEntityHeader()) {
            return var1.getEntityHeader();
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      try {
         if (var1.getEntity() instanceof Entity) {
            return EntityHeaderUtils.fromEntity((Entity)var1.getEntity());
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      return null;
   }

   @NotNull
   List<Dependency> a(@Nullable Object param1) throws FindException, CannotRetrieveDependenciesException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 1
      // 01: ifnonnull 1f
      // 04: invokestatic java/util/Collections.emptyList ()Ljava/util/List;
      // 07: dup
      // 08: ifnonnull 1e
      // 0b: goto 12
      // 0e: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 11: athrow
      // 12: bipush 8
      // 14: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (I)V
      // 17: goto 1e
      // 1a: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1d: athrow
      // 1e: areturn
      // 1f: aload 0
      // 20: aload 1
      // 21: invokevirtual com/l7tech/server/search/processors/DependencyFinder.d (Ljava/lang/Object;)Z
      // 24: ifne 42
      // 27: invokestatic java/util/Collections.emptyList ()Ljava/util/List;
      // 2a: dup
      // 2b: ifnonnull 41
      // 2e: goto 35
      // 31: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 34: athrow
      // 35: bipush 9
      // 37: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (I)V
      // 3a: goto 41
      // 3d: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 40: athrow
      // 41: areturn
      // 42: aload 0
      // 43: getfield com/l7tech/server/search/processors/DependencyFinder.d Lcom/l7tech/server/search/processors/DependencyProcessorStore;
      // 46: aload 1
      // 47: invokevirtual com/l7tech/server/search/processors/DependencyProcessorStore.a (Ljava/lang/Object;)Lcom/l7tech/server/search/processors/ab;
      // 4a: astore 2
      // 4b: getstatic com/l7tech/server/search/processors/DependencyFinder.e Ljava/util/logging/Logger;
      // 4e: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 51: aload 0
      // 52: aload 1
      // 53: invokedynamic get (Lcom/l7tech/server/search/processors/DependencyFinder;Ljava/lang/Object;)Ljava/util/function/Supplier; bsm=java/lang/invoke/LambdaMetafactory.metafactory (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; args=[ ()Ljava/lang/Object;, com/l7tech/server/search/processors/DependencyFinder.lambda$getDependencies$0 (Ljava/lang/Object;)Ljava/lang/String;, ()Ljava/lang/String; ]
      // 58: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/util/function/Supplier;)V
      // 5b: aload 2
      // 5c: aload 1
      // 5d: aload 0
      // 5e: invokeinterface com/l7tech/server/search/processors/DependencyProcessor.findDependencies (Ljava/lang/Object;Lcom/l7tech/server/search/processors/DependencyFinder;)Ljava/util/List; 3
      // 63: dup
      // 64: ifnonnull 73
      // 67: bipush 10
      // 69: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (I)V
      // 6c: goto 73
      // 6f: invokestatic com/l7tech/server/search/processors/DependencyFinder.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 72: athrow
      // 73: areturn
      // try (0 -> 5): 6 com/l7tech/objectmodel/FindException
      // try (2 -> 10): 11 com/l7tech/objectmodel/FindException
      // try (14 -> 21): 22 com/l7tech/objectmodel/FindException
      // try (18 -> 26): 27 com/l7tech/objectmodel/FindException
      // try (35 -> 49): 50 com/l7tech/objectmodel/FindException
   }

   private String b(Object var1) {
      String var10000 = var1.toString();
      String[] var3 = f;
      String var2 = var3[0] + var10000;
      if (var1 instanceof Entity) {
         var2 = var2 + var3[4] + ((Entity)var1).getId();
      }

      return var2;
   }

   @NotNull
   List<Dependency> c(@Nullable Object var1) throws CannotRetrieveDependenciesException, FindException {
      List var2 = this.a(var1);
      if (var2.size() > 1) {
         Stream var3 = var2.stream();

         List var4;
         try {
            var4 = var3.distinct().collect(Collectors.toList());
         } catch (Throwable var9) {
            if (var3 != null) {
               try {
                  var3.close();
               } catch (Throwable var6) {
                  var9.addSuppressed(var6);
               }
            }

            throw var9;
         }

         try {
            if (var3 != null) {
               var3.close();
            }
         } catch (Throwable var10) {
            throw a(var10);
         }

         try {
            if (var4 == null) {
               a(11);
            }

            return var4;
         } catch (Throwable var7) {
            throw a(var7);
         }
      } else {
         try {
            if (var2 == null) {
               a(12);
            }

            return var2;
         } catch (Throwable var8) {
            throw a(var8);
         }
      }
   }

   private boolean d(Object var1) {
      List var2 = this.a(f[26], List.class, Collections.emptyList());

      try {
         if (var2.isEmpty()) {
            return true;
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      try {
         return var1 instanceof Entity ? var2.contains(EntityHeaderUtils.fromEntity((Entity)var1).getType()) : false;
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }
   }

   @NotNull
   <C, T extends Class<C>> C a(@NotNull String var1, @NotNull T var2, @NotNull C var3) {
      try {
         if (var1 == null) {
            a(13);
         }
      } catch (IllegalArgumentException var7) {
         throw a(var7);
      }

      try {
         if (var2 == null) {
            a(14);
         }
      } catch (IllegalArgumentException var5) {
         throw a(var5);
      }

      try {
         if (var3 == null) {
            a(15);
         }
      } catch (IllegalArgumentException var6) {
         throw a(var6);
      }

      try {
         Object var10000 = PropertiesUtil.getOption(var1, (T)var2, var3, this.b);
         if (var10000 == null) {
            a(16);
         }

         return (C)var10000;
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }
   }

   @NotNull
   public List<DependencyFinder.FindResults> retrieveObjects(@NotNull Object var1, @NotNull DependencyType var2, @NotNull MethodReturnType var3) throws FindException {
      try {
         if (var1 == null) {
            a(17);
         }
      } catch (FindException var8) {
         throw a(var8);
      }

      try {
         if (var2 == null) {
            a(18);
         }
      } catch (FindException var6) {
         throw a(var6);
      }

      try {
         if (var3 == null) {
            a(19);
         }
      } catch (FindException var7) {
         throw a(var7);
      }

      ab var4;
      if (MethodReturnType.ENTITY.equals(var3)) {
         var4 = this.d.a(var1);
      } else {
         var4 = this.d.a(var2);
      }

      try {
         List var10000 = var4.find(var1, var2, var3);
         if (var10000 == null) {
            a(20);
         }

         return var10000;
      } catch (FindException var5) {
         throw a(var5);
      }
   }

   @NotNull
   public DependentObject createDependentObject(@NotNull Object var1) {
      try {
         if (var1 == null) {
            a(21);
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      ab var2 = this.d.a(var1);

      try {
         DependentObject var10000 = var2.createDependentObject(var1);
         if (var10000 == null) {
            a(22);
         }

         return var10000;
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }
   }

   @Nullable
   private Dependency e(@NotNull Object var1) {
      try {
         if (var1 == null) {
            a(23);
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      DependentObject var2 = this.createDependentObject(var1);
      return (Dependency)Functions.grepFirst(this.a, new v(this, var2));
   }

   @NotNull
   public List<Dependency> getDependenciesFromObjects(@NotNull Object var1, @NotNull DependencyFinder var2, @NotNull List<DependencyFinder.FindResults> var3) throws FindException, CannotRetrieveDependenciesException {
      try {
         if (var1 == null) {
            a(24);
         }
      } catch (FindException var12) {
         throw a(var12);
      }

      try {
         if (var2 == null) {
            a(25);
         }
      } catch (FindException var10) {
         throw a(var10);
      }

      try {
         if (var3 == null) {
            a(26);
         }
      } catch (FindException var11) {
         throw a(var11);
      }

      ArrayList var4 = new ArrayList();

      for (DependencyFinder.FindResults var6 : var3) {
         if (!var1.equals(var6)) {
            Dependency var7 = var2.a(var6);

            try {
               if (var7 != null) {
                  var4.add(var7);
               }
            } catch (FindException var9) {
               throw a(var9);
            }
         }
      }

      try {
         if (var4 == null) {
            a(27);
         }

         return var4;
      } catch (FindException var8) {
         throw a(var8);
      }
   }

   @NotNull
   List<DependentObject> a(@NotNull Object var1, @NotNull DependencyType var2, @NotNull MethodReturnType var3) throws CannotRetrieveDependenciesException {
      try {
         if (var1 == null) {
            a(28);
         }
      } catch (CannotRetrieveDependenciesException var8) {
         throw a(var8);
      }

      try {
         if (var2 == null) {
            a(29);
         }
      } catch (CannotRetrieveDependenciesException var6) {
         throw a(var6);
      }

      try {
         if (var3 == null) {
            a(30);
         }
      } catch (CannotRetrieveDependenciesException var7) {
         throw a(var7);
      }

      ab var4;
      if (MethodReturnType.ENTITY.equals(var3)) {
         var4 = this.d.a(var1);
      } else {
         var4 = this.d.a(var2);
      }

      try {
         List var10000 = var4.createDependentObjects(var1, var2, var3);
         if (var10000 == null) {
            a(31);
         }

         return var10000;
      } catch (CannotRetrieveDependenciesException var5) {
         throw a(var5);
      }
   }

   static {
      String[] var5 = new String[46];
      int var3 = 0;
      String var2 = "\u0015i$<Q>:z.,\u0001r^\u000f(/6\u001e7p5g=\u0017\u0019{\\[x(+\rzU\u000fm;yK2C\\(&?L2CU-:y\u0001bC\u000f('6\u00187R\u001e(',\u0000{4\u0018g$v\u0000 D\u001ek!v\u001frB\rm;v\u001frQ\tk!v\u001ce_\u0018m:*\u0003eCTL,)\tyT\u001ef* *~^\u001fm;\u000b\bm(+\u000f\u007ft\u001ex=1\u0006[O&0\b*\u0007(M\u001b\u000f%Tu\r\bm(+\u000f\u007f\u007f\u000b| 6\u0002d\u000e\u001fm9<\u0002sU\u0015k0\r\u0015gU\u000f\tm=+\u0005rF\u001eG+3\ttD\b\u0015\u001cm=\f\u0002~A\u000em\r<\u001cr^\u001fm':\u0005rC\u001a\u001cm=\u001d\tgU\u0015l,7\u000f~U\bN;6\u0001XR\u0011m*-\u001f\b\u001ef=0\u0018~U\b\u0015\u0018z,8\u0018rt\u001ex,7\br^\u000fG+3\ttD\u000e\u000bz&:\tdC\u0014z\u001a-\u0003eU\u001e2f*5\u0019sU4f% ?rB\ra*<<x\\\u0012k0\u0016\u001ccY\u0014f\u000f\tm=+\u0005rF\u001eG+3\ttD\b\t\u0014x=0\u0003y{\u001eq\u000e\tm95\rtU\u0016m'-!v@\t\u001cm=\u0016\u001ccY\u0014f\u0006+G\u0005\u0010/N*;F&-\"b\\\u0017($<\u0018\u007f_\u001f(l*B2C[e<*\u00187^\u0014|i+\tcE\tfi7\u0019{\\\u0006\u001da'=\te\u0006Ga'0\u0018)\u0006=G\u0005\u001d)E\t\u001fm9<\u0002sU\u0015|\u000b\bm(+\u000f\u007ff\u001ad<<\u0010\bm(+\u000f\u007fu\u0015| -\u0015CI\u000bm\u0004\u000fq9<\u000f\bm(+\u000f\u007ff\u001ad<<8n@\u001e\t\u001cm=\u0016\u001ccY\u0014f4\u0018g$v\u0000 D\u001ek!v\u001frB\rm;v\u001frQ\tk!v\u001ce_\u0018m:*\u0003eCTL,)\tyT\u001ef* *~^\u001fm;\u001a\u001cm=\u001d\tgU\u0015l,7\u000f~U\bN;6\u0001XR\u0011m*-\u001f\t\u001cm=\u0011\tvT\u001ez\u0010\u001fm9<\u0002sU\u0015|\u0006;\u0006rS\u000f{\f\u001fm/8\u0019{D-i%,\t\u000f\u001cm=\u001d\tgU\u0015l,7\u000f~U\b\u0007\u000bz&:\tdC\u0007\u000bz&:\tdC\u001d\u001cm=\u001f\u0003b^\u001fL,)\tyT\u001ef*0\tdv\u0014z\u0006;\u0006rS\u000f\u0006\u0014j#<\u000fc\u00062o'6\u001er\u00122o'6\u001ert\u001ex,7\br^\u0018a,*\u0013\tm95\rtU?m9<\u0002sU\u0015k <\u001f\u0015\u0018z,8\u0018rt\u001ex,7\br^\u000fG+3\ttD";
      int var4 = "\u0015i$<Q>:z.,\u0001r^\u000f(/6\u001e7p5g=\u0017\u0019{\\[x(+\rzU\u000fm;yK2C\\(&?L2CU-:y\u0001bC\u000f('6\u00187R\u001e(',\u0000{4\u0018g$v\u0000 D\u001ek!v\u001frB\rm;v\u001frQ\tk!v\u001ce_\u0018m:*\u0003eCTL,)\tyT\u001ef* *~^\u001fm;\u000b\bm(+\u000f\u007ft\u001ex=1\u0006[O&0\b*\u0007(M\u001b\u000f%Tu\r\bm(+\u000f\u007f\u007f\u000b| 6\u0002d\u000e\u001fm9<\u0002sU\u0015k0\r\u0015gU\u000f\tm=+\u0005rF\u001eG+3\ttD\b\u0015\u001cm=\f\u0002~A\u000em\r<\u001cr^\u001fm':\u0005rC\u001a\u001cm=\u001d\tgU\u0015l,7\u000f~U\bN;6\u0001XR\u0011m*-\u001f\b\u001ef=0\u0018~U\b\u0015\u0018z,8\u0018rt\u001ex,7\br^\u000fG+3\ttD\u000e\u000bz&:\tdC\u0014z\u001a-\u0003eU\u001e2f*5\u0019sU4f% ?rB\ra*<<x\\\u0012k0\u0016\u001ccY\u0014f\u000f\tm=+\u0005rF\u001eG+3\ttD\b\t\u0014x=0\u0003y{\u001eq\u000e\tm95\rtU\u0016m'-!v@\t\u001cm=\u0016\u001ccY\u0014f\u0006+G\u0005\u0010/N*;F&-\"b\\\u0017($<\u0018\u007f_\u001f(l*B2C[e<*\u00187^\u0014|i+\tcE\tfi7\u0019{\\\u0006\u001da'=\te\u0006Ga'0\u0018)\u0006=G\u0005\u001d)E\t\u001fm9<\u0002sU\u0015|\u000b\bm(+\u000f\u007ff\u001ad<<\u0010\bm(+\u000f\u007fu\u0015| -\u0015CI\u000bm\u0004\u000fq9<\u000f\bm(+\u000f\u007ff\u001ad<<8n@\u001e\t\u001cm=\u0016\u001ccY\u0014f4\u0018g$v\u0000 D\u001ek!v\u001frB\rm;v\u001frQ\tk!v\u001ce_\u0018m:*\u0003eCTL,)\tyT\u001ef* *~^\u001fm;\u001a\u001cm=\u001d\tgU\u0015l,7\u000f~U\bN;6\u0001XR\u0011m*-\u001f\t\u001cm=\u0011\tvT\u001ez\u0010\u001fm9<\u0002sU\u0015|\u0006;\u0006rS\u000f{\f\u001fm/8\u0019{D-i%,\t\u000f\u001cm=\u001d\tgU\u0015l,7\u000f~U\b\u0007\u000bz&:\tdC\u0007\u000bz&:\tdC\u001d\u001cm=\u001f\u0003b^\u001fL,)\tyT\u001ef*0\tdv\u0014z\u0006;\u0006rS\u000f\u0006\u0014j#<\u000fc\u00062o'6\u001er\u00122o'6\u001ert\u001ex,7\br^\u0018a,*\u0013\tm95\rtU?m9<\u0002sU\u0015k <\u001f\u0015\u0018z,8\u0018rt\u001ex,7\br^\u000fG+3\ttD"
         .length();
      char var1 = 5;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 15;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     f = var5;
                     e = Logger.getLogger(DependencyFinder.class.getName());
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "F7gGS=\u000fO6vmU4+u jjX*JU=3e_#\u000e\u00016vsS#\u000eD<pjS>JG=a#B%\u000f\u0001=qiS.\u001e\t";
                  var4 = "F7gGS=\u000fO6vmU4+u jjX*JU=3e_#\u000e\u00016vsS#\u000eD<pjS>JG=a#B%\u000f\u0001=qiS.\u001e\t".length();
                  var1 = '\r';
                  var7 = -1;
            }

            var10000 = 85;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static Throwable a(Throwable var0) {
      return var0;
   }

   private static char[] a(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 63);
      }

      return var10000;
   }

   private static String a(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 116;
            case 1 -> 7;
            case 2 -> 70;
            case 3 -> 86;
            case 4 -> 99;
            case 5 -> 24;
            default -> 63;
         });
      }

      return new String(var10001).intern();
   }

   public static class FindResults<O> extends Option<Either<O, EntityHeader>> {
      static final long serialVersionUID = 1086576149989172693L;

      public static <O> DependencyFinder.FindResults create(O var0, EntityHeader var1) {
         if (var0 != null) {
            return new DependencyFinder.FindResults(Either.left(var0));
         } else {
            return var1 != null ? new DependencyFinder.FindResults(Either.right(var1)) : new DependencyFinder.FindResults(null);
         }
      }

      FindResults(Either<O, EntityHeader> var1) {
         super(var1);
      }

      public boolean isSome() {
         return super.isSome();
      }

      public boolean hasEntity() {
         return this.isSome() && ((Either)this.some()).isLeft();
      }

      public O getEntity() {
         return (O)(this.isSome() ? ((Either)this.some()).left() : null);
      }

      public boolean hasEntityHeader() {
         return this.isSome() && ((Either)this.some()).isRight();
      }

      public EntityHeader getEntityHeader() {
         return this.isSome() ? (EntityHeader)((Either)this.some()).right() : null;
      }
   }
}
