package com.l7tech.gateway.common.security.rbac;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import java.lang.reflect.Method;
import java.util.logging.Logger;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.hibernate.annotations.Proxy;

@Entity
@Proxy(lazy = false)
@Table(name = "rbac_predicate_attribute")
public class AttributePredicate extends ScopePredicate implements ScopeEvaluator {
   private static final Logger logger;
   public static final String EQUALS;
   public static final String STARTS_WITH;
   private String attribute;
   private String value;
   private String mode;
   private transient volatile Method getter;
   static final long serialVersionUID = -6659585223302212176L;
   private static final String[] b;

   public AttributePredicate(Permission var1, String var2, String var3) {
      super(var1);
      this.value = var3.trim().intern();
      this.setAttribute(var2);
   }

   protected AttributePredicate() {
   }

   @Override
   public ScopePredicate createAnonymousClone() {
      Permission var1 = null;
      if (this.permission != null) {
         var1 = new Permission();
         var1.setEntityType(this.getPermission().getEntityType());
      }

      AttributePredicate var2 = new AttributePredicate(var1, this.attribute, this.value);
      var2.setGoid(this.getGoid());
      var2.setMode(this.mode);
      var2.getter = this.getter;
      return var2;
   }

   @Override
   protected void setPermission(Permission var1) {
      super.setPermission(var1);
      this.setupGetter();
   }

   protected void setAttribute(String var1) {
      this.attribute = var1;
      this.setupGetter();
   }

   private void setupGetter() {
      // $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 0
      // 001: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.getter Ljava/lang/reflect/Method;
      // 004: ifnonnull 023
      // 007: aload 0
      // 008: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.attribute Ljava/lang/String;
      // 00b: ifnull 023
      // 00e: goto 015
      // 011: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 014: athrow
      // 015: aload 0
      // 016: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.permission Lcom/l7tech/gateway/common/security/rbac/Permission;
      // 019: ifnonnull 028
      // 01c: goto 023
      // 01f: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 022: athrow
      // 023: return
      // 024: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 027: athrow
      // 028: aload 0
      // 029: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.attribute Ljava/lang/String;
      // 02c: bipush 0
      // 02d: invokevirtual java/lang/String.charAt (I)C
      // 030: invokestatic java/lang/Character.toUpperCase (C)C
      // 033: aload 0
      // 034: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.attribute Ljava/lang/String;
      // 037: invokevirtual java/lang/String.length ()I
      // 03a: bipush 1
      // 03b: if_icmple 04d
      // 03e: aload 0
      // 03f: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.attribute Ljava/lang/String;
      // 042: bipush 1
      // 043: invokevirtual java/lang/String.substring (I)Ljava/lang/String;
      // 046: goto 04f
      // 049: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 04c: athrow
      // 04d: ldc ""
      // 04f: invokedynamic makeConcatWithConstants (CLjava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 054: astore 1
      // 055: aload 1
      // 056: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.b [Ljava/lang/String;
      // 059: astore 16
      // 05b: aload 16
      // 05d: bipush 3
      // 05e: aaload
      // 05f: swap
      // 060: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 065: astore 2
      // 066: aload 1
      // 067: aload 16
      // 069: bipush 0
      // 06a: aaload
      // 06b: swap
      // 06c: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 071: astore 3
      // 072: aload 0
      // 073: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.permission Lcom/l7tech/gateway/common/security/rbac/Permission;
      // 076: invokevirtual com/l7tech/gateway/common/security/rbac/Permission.getEntityType ()Lcom/l7tech/objectmodel/EntityType;
      // 079: astore 4
      // 07b: aload 4
      // 07d: ifnonnull 091
      // 080: new java/lang/IllegalStateException
      // 083: dup
      // 084: aload 16
      // 086: bipush 10
      // 088: aaload
      // 089: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 08c: athrow
      // 08d: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 090: athrow
      // 091: getstatic com/l7tech/objectmodel/EntityType.ANY Lcom/l7tech/objectmodel/EntityType;
      // 094: aload 4
      // 096: if_acmpne 0a0
      // 099: ldc com/l7tech/objectmodel/NamedEntity
      // 09b: astore 5
      // 09d: goto 0a7
      // 0a0: aload 4
      // 0a2: invokevirtual com/l7tech/objectmodel/EntityType.getEntityClass ()Ljava/lang/Class;
      // 0a5: astore 5
      // 0a7: aload 5
      // 0a9: ifnonnull 0b8
      // 0ac: new java/lang/IllegalArgumentException
      // 0af: dup
      // 0b0: invokespecial java/lang/IllegalArgumentException.<init> ()V
      // 0b3: athrow
      // 0b4: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0b7: athrow
      // 0b8: aload 5
      // 0ba: invokevirtual java/lang/Class.getMethods ()[Ljava/lang/reflect/Method;
      // 0bd: astore 6
      // 0bf: aload 6
      // 0c1: astore 7
      // 0c3: aload 7
      // 0c5: arraylength
      // 0c6: istore 8
      // 0c8: bipush 0
      // 0c9: istore 9
      // 0cb: iload 9
      // 0cd: iload 8
      // 0cf: if_icmpge 201
      // 0d2: aload 7
      // 0d4: iload 9
      // 0d6: aaload
      // 0d7: astore 10
      // 0d9: aload 10
      // 0db: invokevirtual java/lang/reflect/Method.getName ()Ljava/lang/String;
      // 0de: astore 11
      // 0e0: aload 11
      // 0e2: aload 2
      // 0e3: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0e6: ifne 0f9
      // 0e9: aload 11
      // 0eb: aload 3
      // 0ec: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0ef: ifeq 1fb
      // 0f2: goto 0f9
      // 0f5: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f8: athrow
      // 0f9: aload 10
      // 0fb: invokevirtual java/lang/reflect/Method.getParameterTypes ()[Ljava/lang/Class;
      // 0fe: astore 12
      // 100: aload 12
      // 102: arraylength
      // 103: ifeq 10d
      // 106: goto 1fb
      // 109: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 10c: athrow
      // 10d: aload 10
      // 10f: invokevirtual java/lang/reflect/Method.getReturnType ()Ljava/lang/Class;
      // 112: astore 13
      // 114: ldc java/lang/Number
      // 116: aload 13
      // 118: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 11b: ifne 1ad
      // 11e: aload 13
      // 120: getstatic java/lang/Long.TYPE Ljava/lang/Class;
      // 123: if_acmpeq 1ad
      // 126: goto 12d
      // 129: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 12c: athrow
      // 12d: aload 13
      // 12f: getstatic java/lang/Integer.TYPE Ljava/lang/Class;
      // 132: if_acmpeq 1ad
      // 135: goto 13c
      // 138: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 13b: athrow
      // 13c: aload 13
      // 13e: getstatic java/lang/Byte.TYPE Ljava/lang/Class;
      // 141: if_acmpeq 1ad
      // 144: goto 14b
      // 147: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 14a: athrow
      // 14b: aload 13
      // 14d: getstatic java/lang/Short.TYPE Ljava/lang/Class;
      // 150: if_acmpeq 1ad
      // 153: goto 15a
      // 156: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 159: athrow
      // 15a: ldc java/lang/CharSequence
      // 15c: aload 13
      // 15e: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 161: ifne 1ad
      // 164: goto 16b
      // 167: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 16a: athrow
      // 16b: aload 13
      // 16d: getstatic java/lang/Boolean.TYPE Ljava/lang/Class;
      // 170: if_acmpeq 1ad
      // 173: goto 17a
      // 176: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 179: athrow
      // 17a: ldc java/lang/Boolean
      // 17c: aload 13
      // 17e: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 181: ifne 1ad
      // 184: goto 18b
      // 187: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 18a: athrow
      // 18b: ldc java/lang/Enum
      // 18d: aload 13
      // 18f: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 192: ifne 1ad
      // 195: goto 19c
      // 198: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 19b: athrow
      // 19c: ldc com/l7tech/objectmodel/Goid
      // 19e: aload 13
      // 1a0: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
      // 1a3: ifeq 1d0
      // 1a6: goto 1ad
      // 1a9: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1ac: athrow
      // 1ad: aload 0
      // 1ae: dup
      // 1af: astore 14
      // 1b1: monitorenter
      // 1b2: aload 0
      // 1b3: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.getter Ljava/lang/reflect/Method;
      // 1b6: ifnonnull 1bf
      // 1b9: aload 0
      // 1ba: aload 10
      // 1bc: putfield com/l7tech/gateway/common/security/rbac/AttributePredicate.getter Ljava/lang/reflect/Method;
      // 1bf: aload 14
      // 1c1: monitorexit
      // 1c2: goto 1cd
      // 1c5: astore 15
      // 1c7: aload 14
      // 1c9: monitorexit
      // 1ca: aload 15
      // 1cc: athrow
      // 1cd: goto 201
      // 1d0: new java/lang/IllegalArgumentException
      // 1d3: dup
      // 1d4: aload 5
      // 1d6: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 1d9: aload 10
      // 1db: invokevirtual java/lang/reflect/Method.getName ()Ljava/lang/String;
      // 1de: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.b [Ljava/lang/String;
      // 1e1: astore 16
      // 1e3: aload 16
      // 1e5: bipush 9
      // 1e7: aaload
      // 1e8: dup_x2
      // 1e9: pop
      // 1ea: ldc "."
      // 1ec: swap
      // 1ed: aload 16
      // 1ef: bipush 12
      // 1f1: aaload
      // 1f2: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 1f7: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 1fa: athrow
      // 1fb: iinc 9 1
      // 1fe: goto 0cb
      // 201: aload 0
      // 202: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.getter Ljava/lang/reflect/Method;
      // 205: ifnonnull 230
      // 208: new java/lang/IllegalArgumentException
      // 20b: dup
      // 20c: aload 5
      // 20e: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 211: aload 0
      // 212: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.attribute Ljava/lang/String;
      // 215: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.b [Ljava/lang/String;
      // 218: bipush 2
      // 219: aaload
      // 21a: dup_x2
      // 21b: pop
      // 21c: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.b [Ljava/lang/String;
      // 21f: bipush 7
      // 221: aaload
      // 222: swap
      // 223: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 228: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 22b: athrow
      // 22c: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 22f: athrow
      // 230: return
      // try (177 -> 188): 189 java/lang/IllegalStateException
      // try (170 -> 181): 182 java/lang/IllegalStateException
      // try (164 -> 174): 175 java/lang/IllegalStateException
      // try (157 -> 167): 168 java/lang/IllegalStateException
      // try (151 -> 161): 162 java/lang/IllegalStateException
      // try (145 -> 154): 155 java/lang/IllegalStateException
      // try (139 -> 148): 149 java/lang/IllegalStateException
      // try (133 -> 142): 143 java/lang/IllegalStateException
      // try (129 -> 136): 137 java/lang/IllegalStateException
      // try (120 -> 124): 124 java/lang/IllegalStateException
      // try (106 -> 114): 115 java/lang/IllegalStateException
      // try (78 -> 84): 84 java/lang/IllegalStateException
      // try (58 -> 67): 67 java/lang/IllegalStateException
      // try (18 -> 33): 33 java/lang/IllegalStateException
      // try (9 -> 16): 16 java/lang/IllegalStateException
      // try (3 -> 12): 13 java/lang/IllegalStateException
      // try (0 -> 6): 7 java/lang/IllegalStateException
      // try (195 -> 203): 204 null
      // try (204 -> 207): 204 null
      // try (233 -> 254): 254 java/lang/IllegalStateException
   }

   @NotNull
   @Size(min = 1, max = 255)
   @Column(name = "attribute", nullable = false, length = 255)
   public String getAttribute() {
      return this.attribute;
   }

   @Size(max = 255)
   @Column(name = "value", length = 255)
   public String getValue() {
      return this.value;
   }

   protected void setValue(String var1) {
      this.value = var1;
   }

   @Size(max = 255)
   @Column(name = "mode", length = 255)
   public String getMode() {
      return this.mode;
   }

   public void setMode(String var1) {
      this.mode = var1;
   }

   @Override
   public boolean matches(com.l7tech.objectmodel.Entity param1) {
      // $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 0
      // 001: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.attribute Ljava/lang/String;
      // 004: ifnonnull 031
      // 007: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.logger Ljava/util/logging/Logger;
      // 00a: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 00d: aload 1
      // 00e: invokeinterface com/l7tech/objectmodel/Entity.getClass ()Ljava/lang/Class; 1
      // 013: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 016: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.b [Ljava/lang/String;
      // 019: bipush 11
      // 01b: aaload
      // 01c: swap
      // 01d: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.b [Ljava/lang/String;
      // 020: bipush 16
      // 022: aaload
      // 023: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 028: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 02b: bipush 0
      // 02c: ireturn
      // 02d: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 030: athrow
      // 031: aload 0
      // 032: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.permission Lcom/l7tech/gateway/common/security/rbac/Permission;
      // 035: ifnonnull 06a
      // 038: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.logger Ljava/util/logging/Logger;
      // 03b: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 03e: aload 1
      // 03f: invokeinterface com/l7tech/objectmodel/Entity.getClass ()Ljava/lang/Class; 1
      // 044: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 047: aload 0
      // 048: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.attribute Ljava/lang/String;
      // 04b: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.b [Ljava/lang/String;
      // 04e: bipush 18
      // 050: aaload
      // 051: dup_x2
      // 052: pop
      // 053: ldc "."
      // 055: swap
      // 056: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.b [Ljava/lang/String;
      // 059: bipush 19
      // 05b: aaload
      // 05c: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 061: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 064: bipush 0
      // 065: ireturn
      // 066: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 069: athrow
      // 06a: aload 0
      // 06b: invokevirtual com/l7tech/gateway/common/security/rbac/AttributePredicate.setupGetter ()V
      // 06e: aload 0
      // 06f: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.getter Ljava/lang/reflect/Method;
      // 072: aload 1
      // 073: bipush 0
      // 074: anewarray 320
      // 077: invokevirtual java/lang/reflect/Method.invoke (Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
      // 07a: astore 2
      // 07b: goto 0b2
      // 07e: astore 3
      // 07f: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.logger Ljava/util/logging/Logger;
      // 082: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 085: aload 1
      // 086: invokeinterface com/l7tech/objectmodel/Entity.getClass ()Ljava/lang/Class; 1
      // 08b: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 08e: aload 0
      // 08f: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.getter Ljava/lang/reflect/Method;
      // 092: invokevirtual java/lang/reflect/Method.getName ()Ljava/lang/String;
      // 095: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.b [Ljava/lang/String;
      // 098: astore 7
      // 09a: aload 7
      // 09c: bipush 8
      // 09e: aaload
      // 09f: dup_x2
      // 0a0: pop
      // 0a1: ldc "."
      // 0a3: swap
      // 0a4: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 0a9: aload 3
      // 0aa: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0ad: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 0b0: bipush 0
      // 0b1: ireturn
      // 0b2: aload 2
      // 0b3: ifnonnull 0ce
      // 0b6: aload 0
      // 0b7: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.value Ljava/lang/String;
      // 0ba: ifnonnull 0cc
      // 0bd: goto 0c4
      // 0c0: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c3: athrow
      // 0c4: bipush 1
      // 0c5: goto 0cd
      // 0c8: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0cb: athrow
      // 0cc: bipush 0
      // 0cd: ireturn
      // 0ce: aload 0
      // 0cf: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.mode Ljava/lang/String;
      // 0d2: ifnull 0eb
      // 0d5: aload 0
      // 0d6: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.mode Ljava/lang/String;
      // 0d9: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.b [Ljava/lang/String;
      // 0dc: bipush 4
      // 0dd: aaload
      // 0de: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0e1: ifeq 0fe
      // 0e4: goto 0eb
      // 0e7: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ea: athrow
      // 0eb: aload 2
      // 0ec: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 0ef: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 0f2: aload 0
      // 0f3: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.value Ljava/lang/String;
      // 0f6: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0f9: ireturn
      // 0fa: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0fd: athrow
      // 0fe: aload 0
      // 0ff: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.mode Ljava/lang/String;
      // 102: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.b [Ljava/lang/String;
      // 105: bipush 14
      // 107: aaload
      // 108: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 10b: ifeq 121
      // 10e: aload 2
      // 10f: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 112: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 115: aload 0
      // 116: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.value Ljava/lang/String;
      // 119: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 11c: ireturn
      // 11d: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 120: athrow
      // 121: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.logger Ljava/util/logging/Logger;
      // 124: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 127: aload 0
      // 128: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.mode Ljava/lang/String;
      // 12b: aload 1
      // 12c: invokeinterface com/l7tech/objectmodel/Entity.getClass ()Ljava/lang/Class; 1
      // 131: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 134: aload 0
      // 135: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.getter Ljava/lang/reflect/Method;
      // 138: invokevirtual java/lang/reflect/Method.getName ()Ljava/lang/String;
      // 13b: astore 4
      // 13d: astore 5
      // 13f: astore 6
      // 141: getstatic com/l7tech/gateway/common/security/rbac/AttributePredicate.b [Ljava/lang/String;
      // 144: astore 7
      // 146: aload 7
      // 148: bipush 1
      // 149: aaload
      // 14a: aload 6
      // 14c: aload 7
      // 14e: bipush 5
      // 14f: aaload
      // 150: aload 5
      // 152: ldc "."
      // 154: aload 4
      // 156: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001\u0001" ]
      // 15b: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 15e: bipush 0
      // 15f: ireturn
      // try (21 -> 45): 45 java/lang/IllegalAccessException
      // try (0 -> 19): 19 java/lang/IllegalAccessException
      // try (49 -> 56): 57 java/lang/IllegalAccessException
      // try (49 -> 56): 57 java/lang/reflect/InvocationTargetException
      // try (49 -> 56): 57 java/lang/IllegalArgumentException
      // try (81 -> 86): 87 java/lang/IllegalAccessException
      // try (83 -> 91): 91 java/lang/IllegalAccessException
      // try (95 -> 105): 106 java/lang/IllegalAccessException
      // try (98 -> 115): 115 java/lang/IllegalAccessException
      // try (117 -> 131): 131 java/lang/IllegalAccessException
   }

   @Override
   public String toString() {
      StringBuilder var1 = new StringBuilder();

      try {
         if (this.permission != null) {
            var1.append(this.permission.getEntityType().getPluralName());
         }
      } catch (IllegalStateException var4) {
         throw a(var4);
      }

      String var10000;
      label25: {
         try {
            if (b[13].equals(this.mode)) {
               var10000 = b[6];
               break label25;
            }
         } catch (IllegalStateException var5) {
            throw a(var5);
         }

         String[] var3 = b;
         var10000 = var3[17];
      }

      String var2 = var10000;
      var1.append(b[15]).append(this.attribute).append(var2).append(this.value);
      return var1.toString();
   }

   @Override
   public boolean equals(Object param1) {
      // $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 0
      // 01: aload 1
      // 02: if_acmpne 0b
      // 05: bipush 1
      // 06: ireturn
      // 07: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0a: athrow
      // 0b: aload 1
      // 0c: ifnull 21
      // 0f: aload 0
      // 10: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 13: aload 1
      // 14: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 17: if_acmpeq 27
      // 1a: goto 21
      // 1d: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 20: athrow
      // 21: bipush 0
      // 22: ireturn
      // 23: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 26: athrow
      // 27: aload 0
      // 28: aload 1
      // 29: invokespecial com/l7tech/gateway/common/security/rbac/ScopePredicate.equals (Ljava/lang/Object;)Z
      // 2c: ifne 35
      // 2f: bipush 0
      // 30: ireturn
      // 31: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 34: athrow
      // 35: aload 1
      // 36: checkcast com/l7tech/gateway/common/security/rbac/AttributePredicate
      // 39: astore 2
      // 3a: aload 0
      // 3b: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.attribute Ljava/lang/String;
      // 3e: ifnull 5d
      // 41: aload 0
      // 42: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.attribute Ljava/lang/String;
      // 45: aload 2
      // 46: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.attribute Ljava/lang/String;
      // 49: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 4c: ifne 6a
      // 4f: goto 56
      // 52: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 55: athrow
      // 56: goto 64
      // 59: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5c: athrow
      // 5d: aload 2
      // 5e: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.attribute Ljava/lang/String;
      // 61: ifnull 6a
      // 64: bipush 0
      // 65: ireturn
      // 66: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 69: athrow
      // 6a: aload 0
      // 6b: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.getter Ljava/lang/reflect/Method;
      // 6e: ifnull 8d
      // 71: aload 0
      // 72: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.getter Ljava/lang/reflect/Method;
      // 75: aload 2
      // 76: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.getter Ljava/lang/reflect/Method;
      // 79: invokevirtual java/lang/reflect/Method.equals (Ljava/lang/Object;)Z
      // 7c: ifne 9a
      // 7f: goto 86
      // 82: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 85: athrow
      // 86: goto 94
      // 89: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8c: athrow
      // 8d: aload 2
      // 8e: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.getter Ljava/lang/reflect/Method;
      // 91: ifnull 9a
      // 94: bipush 0
      // 95: ireturn
      // 96: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 99: athrow
      // 9a: aload 0
      // 9b: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.value Ljava/lang/String;
      // 9e: ifnull bd
      // a1: aload 0
      // a2: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.value Ljava/lang/String;
      // a5: aload 2
      // a6: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.value Ljava/lang/String;
      // a9: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // ac: ifne ca
      // af: goto b6
      // b2: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // b5: athrow
      // b6: goto c4
      // b9: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // bc: athrow
      // bd: aload 2
      // be: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.value Ljava/lang/String;
      // c1: ifnull ca
      // c4: bipush 0
      // c5: ireturn
      // c6: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // c9: athrow
      // ca: aload 0
      // cb: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.mode Ljava/lang/String;
      // ce: ifnull ed
      // d1: aload 0
      // d2: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.mode Ljava/lang/String;
      // d5: aload 2
      // d6: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.mode Ljava/lang/String;
      // d9: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // dc: ifne fa
      // df: goto e6
      // e2: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // e5: athrow
      // e6: goto f4
      // e9: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // ec: athrow
      // ed: aload 2
      // ee: getfield com/l7tech/gateway/common/security/rbac/AttributePredicate.mode Ljava/lang/String;
      // f1: ifnull fa
      // f4: bipush 0
      // f5: ireturn
      // f6: invokestatic com/l7tech/gateway/common/security/rbac/AttributePredicate.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // f9: athrow
      // fa: bipush 1
      // fb: ireturn
      // try (0 -> 5): 5 java/lang/IllegalStateException
      // try (7 -> 14): 15 java/lang/IllegalStateException
      // try (9 -> 19): 19 java/lang/IllegalStateException
      // try (21 -> 27): 27 java/lang/IllegalStateException
      // try (32 -> 41): 42 java/lang/IllegalStateException
      // try (35 -> 45): 45 java/lang/IllegalStateException
      // try (47 -> 52): 52 java/lang/IllegalStateException
      // try (54 -> 63): 64 java/lang/IllegalStateException
      // try (57 -> 67): 67 java/lang/IllegalStateException
      // try (69 -> 74): 74 java/lang/IllegalStateException
      // try (76 -> 85): 86 java/lang/IllegalStateException
      // try (79 -> 89): 89 java/lang/IllegalStateException
      // try (91 -> 96): 96 java/lang/IllegalStateException
      // try (98 -> 107): 108 java/lang/IllegalStateException
      // try (101 -> 111): 111 java/lang/IllegalStateException
      // try (113 -> 118): 118 java/lang/IllegalStateException
   }

   @Override
   public int hashCode() {
      int var1 = super.hashCode();

      int var10000;
      int var10001;
      label59: {
         try {
            var10000 = 31 * var1;
            if (this.attribute != null) {
               var10001 = this.attribute.hashCode();
               break label59;
            }
         } catch (IllegalStateException var5) {
            throw a(var5);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label51: {
         try {
            var10000 = 31 * var1;
            if (this.value != null) {
               var10001 = this.value.hashCode();
               break label51;
            }
         } catch (IllegalStateException var4) {
            throw a(var4);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label43: {
         try {
            var10000 = 31 * var1;
            if (this.getter != null) {
               var10001 = this.getter.hashCode();
               break label43;
            }
         } catch (IllegalStateException var3) {
            throw a(var3);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      try {
         var10000 = 31 * var1;
         if (this.mode != null) {
            return var10000 + this.mode.hashCode();
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }

      return var10000 + 0;
   }

   static {
      String[] var5 = new String[21];
      int var3 = 0;
      String var2 = "*#7\u0016>D{\u0002P\u0005-9L{\u0005\u001f0\u0001\u0011u>\u0011M\u0007'9U\u007f\u0015ZB\"$Bl\b]\u001775\u0016}\u000eR\u0012\"\"_m\u000eQB.?R{A\u001d\u0006\u0000<Wm\u0012\u001f\u0003$5B\u0002&!\u0006apPq\u0013\u001f\u000fc#B\u007f\u0013K\u000b-7\u0016i\bK\nc\u001dc8WmAQ\rc7Sj\u0015Z\u0010c6YlA^\u00167\"_|\u0014K\u0007c\u0010\u0000?Cr\u0005QE7p_p\u0017P\t&p\u000f\u00115Bk\u0013QB7)F{AP\u0004cB\u00001X9\u0015\u001f\u000751Zk\u0000K\u0007c1X> K\u001619Tk\u0015Z215Rw\u0002^\u0016&pAw\u0015W\r6$\u0016\u007fAL\u0012&3_x\b\\B\u0006>Bw\u0015F6: S-\u0000?Cr\u0005QE7pUv\u0004\\\tc\u0002t_\"\u001f\u00037$Dw\u0003J\u0016&pFl\u0004[\u000b 1B{AY\r1p\u0016;c=Cm\u0015\u001f\u0000&puv\u0000M1&!C{\u000f\\\u0007opSp\u0014RNc\u001cYp\u0006\u0013B/?XyM\u001f ,?Z{\u0000QB,\"\u0016|\u000eP\u000e&1X\u00020'\u00020'\u0006c'_j\t\u001f\u0010yp\u0016p\u0014S\u000ec1Bj\b]\u001775\u0003cm\u0016-\u0000?Cr\u0005QE7pUv\u0004\\\tc\u0002t_\"\u001f\u00037$Dw\u0003J\u0016&pFl\u0004[\u000b 1B{AY\r1p\u0016";
      int var4 = "*#7\u0016>D{\u0002P\u0005-9L{\u0005\u001f0\u0001\u0011u>\u0011M\u0007'9U\u007f\u0015ZB\"$Bl\b]\u001775\u0016}\u000eR\u0012\"\"_m\u000eQB.?R{A\u001d\u0006\u0000<Wm\u0012\u001f\u0003$5B\u0002&!\u0006apPq\u0013\u001f\u000fc#B\u007f\u0013K\u000b-7\u0016i\bK\nc\u001dc8WmAQ\rc7Sj\u0015Z\u0010c6YlA^\u00167\"_|\u0014K\u0007c\u0010\u0000?Cr\u0005QE7p_p\u0017P\t&p\u000f\u00115Bk\u0013QB7)F{AP\u0004cB\u00001X9\u0015\u001f\u000751Zk\u0000K\u0007c1X> K\u001619Tk\u0015Z215Rw\u0002^\u0016&pAw\u0015W\r6$\u0016\u007fAL\u0012&3_x\b\\B\u0006>Bw\u0015F6: S-\u0000?Cr\u0005QE7pUv\u0004\\\tc\u0002t_\"\u001f\u00037$Dw\u0003J\u0016&pFl\u0004[\u000b 1B{AY\r1p\u0016;c=Cm\u0015\u001f\u0000&puv\u0000M1&!C{\u000f\\\u0007opSp\u0014RNc\u001cYp\u0006\u0013B/?XyM\u001f ,?Z{\u0000QB,\"\u0016|\u000eP\u000e&1X\u00020'\u00020'\u0006c'_j\t\u001f\u0010yp\u0016p\u0014S\u000ec1Bj\b]\u001775\u0003cm\u0016-\u0000?Cr\u0005QE7pUv\u0004\\\tc\u0002t_\"\u001f\u00037$Dw\u0003J\u0016&pFl\u0004[\u000b 1B{AY\r1p\u0016"
         .length();
      char var1 = 2;
      int var7 = -1;

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

         while (true) {
            String var8 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     b = var5;
                     String[] var9 = b;
                     EQUALS = b[20];
                     STARTS_WITH = var9[14];
                     logger = Logger.getLogger(AttributePredicate.class.getName());
                     return;
                  }

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

                  var2 = "qx\u001ex\u001c[\u0006k([d\u0004^\u001981Qx\u0002.)";
                  var4 = "qx\u001ex\u001c[\u0006k([d\u0004^\u001981Qx\u0002.)".length();
                  var1 = 18;
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String b(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 -> 113;
            case 1 -> 98;
            case 2 -> 4;
            case 3 -> 44;
            case 4 -> 83;
            case 5 -> 13;
            default -> 80;
         });
      }

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