public final class com.google.crypto.tink.Registry
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.crypto.tink.Registry
  super_class: java.lang.Object
{
  private static final java.util.logging.Logger logger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.concurrent.ConcurrentMap<java.lang.String, com.google.crypto.tink.Registry$KeyManagerContainer> keyManagerMap;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Lcom/google/crypto/tink/Registry$KeyManagerContainer;>;

  private static final java.util.concurrent.ConcurrentMap<java.lang.String, com.google.crypto.tink.Registry$KeyDeriverContainer> keyDeriverMap;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Lcom/google/crypto/tink/Registry$KeyDeriverContainer;>;

  private static final java.util.concurrent.ConcurrentMap<java.lang.String, java.lang.Boolean> newKeyAllowedMap;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Ljava/lang/Boolean;>;

  private static final java.util.concurrent.ConcurrentMap<java.lang.String, com.google.crypto.tink.Catalogue<?>> catalogueMap;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Lcom/google/crypto/tink/Catalogue<*>;>;

  private static final java.util.concurrent.ConcurrentMap<java.lang.Class<?>, com.google.crypto.tink.PrimitiveWrapper<?>> primitiveWrapperMap;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/Class<*>;Lcom/google/crypto/tink/PrimitiveWrapper<*>;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 76
            ldc Lcom/google/crypto/tink/Registry;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic com.google.crypto.tink.Registry.logger:Ljava/util/logging/Logger;
         1: .line 79
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
         2: .line 78
            putstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
         3: .line 82
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
         4: .line 81
            putstatic com.google.crypto.tink.Registry.keyDeriverMap:Ljava/util/concurrent/ConcurrentMap;
         5: .line 85
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
         6: .line 84
            putstatic com.google.crypto.tink.Registry.newKeyAllowedMap:Ljava/util/concurrent/ConcurrentMap;
         7: .line 88
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
         8: .line 87
            putstatic com.google.crypto.tink.Registry.catalogueMap:Ljava/util/concurrent/ConcurrentMap;
         9: .line 91
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
        10: .line 90
            putstatic com.google.crypto.tink.Registry.primitiveWrapperMap:Ljava/util/concurrent/ConcurrentMap;
        11: .line 91
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static <P> com.google.crypto.tink.Registry$KeyManagerContainer createContainerFor(com.google.crypto.tink.KeyManager<P>);
    descriptor: (Lcom/google/crypto/tink/KeyManager;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.google.crypto.tink.KeyManager keyManager
         0: .line 135
            aload 0 /* keyManager */
            astore 1 /* localKeyManager */
        start local 1 // com.google.crypto.tink.KeyManager localKeyManager
         1: .line 136
            new com.google.crypto.tink.Registry$1
            dup
            aload 1 /* localKeyManager */
            invokespecial com.google.crypto.tink.Registry$1.<init>:(Lcom/google/crypto/tink/KeyManager;)V
            areturn
        end local 1 // com.google.crypto.tink.KeyManager localKeyManager
        end local 0 // com.google.crypto.tink.KeyManager keyManager
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0       keyManager  Lcom/google/crypto/tink/KeyManager<TP;>;
            1    2     1  localKeyManager  Lcom/google/crypto/tink/KeyManager<TP;>;
    Signature: <P:Ljava/lang/Object;>(Lcom/google/crypto/tink/KeyManager<TP;>;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
    MethodParameters:
            Name  Flags
      keyManager  

  private static <KeyProtoT extends com.google.protobuf.MessageLite> com.google.crypto.tink.Registry$KeyManagerContainer createContainerFor(com.google.crypto.tink.KeyTypeManager<KeyProtoT>);
    descriptor: (Lcom/google/crypto/tink/KeyTypeManager;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.google.crypto.tink.KeyTypeManager keyManager
         0: .line 179
            aload 0 /* keyManager */
            astore 1 /* localKeyManager */
        start local 1 // com.google.crypto.tink.KeyTypeManager localKeyManager
         1: .line 180
            new com.google.crypto.tink.Registry$2
            dup
            aload 1 /* localKeyManager */
            invokespecial com.google.crypto.tink.Registry$2.<init>:(Lcom/google/crypto/tink/KeyTypeManager;)V
            areturn
        end local 1 // com.google.crypto.tink.KeyTypeManager localKeyManager
        end local 0 // com.google.crypto.tink.KeyTypeManager keyManager
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0       keyManager  Lcom/google/crypto/tink/KeyTypeManager<TKeyProtoT;>;
            1    2     1  localKeyManager  Lcom/google/crypto/tink/KeyTypeManager<TKeyProtoT;>;
    Signature: <KeyProtoT::Lcom/google/protobuf/MessageLite;>(Lcom/google/crypto/tink/KeyTypeManager<TKeyProtoT;>;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
    MethodParameters:
            Name  Flags
      keyManager  

  private static <KeyProtoT extends com.google.protobuf.MessageLite, PublicKeyProtoT extends com.google.protobuf.MessageLite> com.google.crypto.tink.Registry$KeyManagerContainer createPrivateKeyContainerFor(com.google.crypto.tink.PrivateKeyTypeManager<KeyProtoT, PublicKeyProtoT>, com.google.crypto.tink.KeyTypeManager<PublicKeyProtoT>);
    descriptor: (Lcom/google/crypto/tink/PrivateKeyTypeManager;Lcom/google/crypto/tink/KeyTypeManager;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.google.crypto.tink.PrivateKeyTypeManager privateKeyTypeManager
        start local 1 // com.google.crypto.tink.KeyTypeManager publicKeyTypeManager
         0: .line 227
            aload 0 /* privateKeyTypeManager */
         1: .line 226
            astore 2 /* localPrivateKeyManager */
        start local 2 // com.google.crypto.tink.PrivateKeyTypeManager localPrivateKeyManager
         2: .line 228
            aload 1 /* publicKeyTypeManager */
            astore 3 /* localPublicKeyManager */
        start local 3 // com.google.crypto.tink.KeyTypeManager localPublicKeyManager
         3: .line 229
            new com.google.crypto.tink.Registry$3
            dup
            aload 2 /* localPrivateKeyManager */
            aload 3 /* localPublicKeyManager */
            invokespecial com.google.crypto.tink.Registry$3.<init>:(Lcom/google/crypto/tink/PrivateKeyTypeManager;Lcom/google/crypto/tink/KeyTypeManager;)V
            areturn
        end local 3 // com.google.crypto.tink.KeyTypeManager localPublicKeyManager
        end local 2 // com.google.crypto.tink.PrivateKeyTypeManager localPrivateKeyManager
        end local 1 // com.google.crypto.tink.KeyTypeManager publicKeyTypeManager
        end local 0 // com.google.crypto.tink.PrivateKeyTypeManager privateKeyTypeManager
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    4     0   privateKeyTypeManager  Lcom/google/crypto/tink/PrivateKeyTypeManager<TKeyProtoT;TPublicKeyProtoT;>;
            0    4     1    publicKeyTypeManager  Lcom/google/crypto/tink/KeyTypeManager<TPublicKeyProtoT;>;
            2    4     2  localPrivateKeyManager  Lcom/google/crypto/tink/PrivateKeyTypeManager<TKeyProtoT;TPublicKeyProtoT;>;
            3    4     3   localPublicKeyManager  Lcom/google/crypto/tink/KeyTypeManager<TPublicKeyProtoT;>;
    Signature: <KeyProtoT::Lcom/google/protobuf/MessageLite;PublicKeyProtoT::Lcom/google/protobuf/MessageLite;>(Lcom/google/crypto/tink/PrivateKeyTypeManager<TKeyProtoT;TPublicKeyProtoT;>;Lcom/google/crypto/tink/KeyTypeManager<TPublicKeyProtoT;>;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
    MethodParameters:
                       Name  Flags
      privateKeyTypeManager  final
      publicKeyTypeManager   final

  private static <KeyProtoT extends com.google.protobuf.MessageLite> com.google.crypto.tink.Registry$KeyDeriverContainer createDeriverFor(com.google.crypto.tink.KeyTypeManager<KeyProtoT>);
    descriptor: (Lcom/google/crypto/tink/KeyTypeManager;)Lcom/google/crypto/tink/Registry$KeyDeriverContainer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.crypto.tink.KeyTypeManager keyManager
         0: .line 281
            new com.google.crypto.tink.Registry$4
            dup
            invokespecial com.google.crypto.tink.Registry$4.<init>:()V
            areturn
        end local 0 // com.google.crypto.tink.KeyTypeManager keyManager
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  keyManager  Lcom/google/crypto/tink/KeyTypeManager<TKeyProtoT;>;
    Signature: <KeyProtoT::Lcom/google/protobuf/MessageLite;>(Lcom/google/crypto/tink/KeyTypeManager<TKeyProtoT;>;)Lcom/google/crypto/tink/Registry$KeyDeriverContainer;
    MethodParameters:
            Name  Flags
      keyManager  final

  private static synchronized com.google.crypto.tink.Registry$KeyManagerContainer getKeyManagerContainerOrThrow(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String typeUrl
         0: .line 316
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* typeUrl */
            invokeinterface java.util.concurrent.ConcurrentMap.containsKey:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 317
            new java.security.GeneralSecurityException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No key manager found for key type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* typeUrl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 319
      StackMap locals:
      StackMap stack:
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* typeUrl */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.crypto.tink.Registry$KeyManagerContainer
            areturn
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  typeUrl  Ljava/lang/String;
    Exceptions:
      throws java.security.GeneralSecurityException
    MethodParameters:
         Name  Flags
      typeUrl  

  static synchronized void reset();
    descriptor: ()V
    flags: (0x0028) ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=0, args_size=0
         0: .line 331
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.clear:()V
         1: .line 332
            getstatic com.google.crypto.tink.Registry.keyDeriverMap:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.clear:()V
         2: .line 333
            getstatic com.google.crypto.tink.Registry.newKeyAllowedMap:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.clear:()V
         3: .line 334
            getstatic com.google.crypto.tink.Registry.catalogueMap:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.clear:()V
         4: .line 335
            getstatic com.google.crypto.tink.Registry.primitiveWrapperMap:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.clear:()V
         5: .line 336
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static synchronized void addCatalogue(java.lang.String, com.google.crypto.tink.Catalogue<?>);
    descriptor: (Ljava/lang/String;Lcom/google/crypto/tink/Catalogue;)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String catalogueName
        start local 1 // com.google.crypto.tink.Catalogue catalogue
         0: .line 352
            aload 0 /* catalogueName */
            ifnonnull 2
         1: .line 353
            new java.lang.IllegalArgumentException
            dup
            ldc "catalogueName must be non-null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 355
      StackMap locals:
      StackMap stack:
            aload 1 /* catalogue */
            ifnonnull 4
         3: .line 356
            new java.lang.IllegalArgumentException
            dup
            ldc "catalogue must be non-null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 358
      StackMap locals:
      StackMap stack:
            getstatic com.google.crypto.tink.Registry.catalogueMap:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokeinterface java.util.concurrent.ConcurrentMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 13
         5: .line 359
            getstatic com.google.crypto.tink.Registry.catalogueMap:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.crypto.tink.Catalogue
            astore 2 /* existing */
        start local 2 // com.google.crypto.tink.Catalogue existing
         6: .line 360
            aload 1 /* catalogue */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* existing */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 13
         7: .line 361
            getstatic com.google.crypto.tink.Registry.logger:Ljava/util/logging/Logger;
         8: .line 362
            new java.lang.StringBuilder
            dup
            ldc "Attempted overwrite of a catalogueName catalogue for name "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* catalogueName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 361
            invokevirtual java.util.logging.Logger.warning:(Ljava/lang/String;)V
        10: .line 363
            new java.security.GeneralSecurityException
            dup
        11: .line 364
            new java.lang.StringBuilder
            dup
            ldc "catalogue for name "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* catalogueName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " has been already registered"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 363
            invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // com.google.crypto.tink.Catalogue existing
        13: .line 367
      StackMap locals:
      StackMap stack:
            getstatic com.google.crypto.tink.Registry.catalogueMap:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            aload 1 /* catalogue */
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 368
            return
        end local 1 // com.google.crypto.tink.Catalogue catalogue
        end local 0 // java.lang.String catalogueName
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0  catalogueName  Ljava/lang/String;
            0   15     1      catalogue  Lcom/google/crypto/tink/Catalogue<*>;
            6   13     2       existing  Lcom/google/crypto/tink/Catalogue<*>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: (Ljava/lang/String;Lcom/google/crypto/tink/Catalogue<*>;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      catalogueName  
      catalogue      

  public static com.google.crypto.tink.Catalogue<?> getCatalogue(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/google/crypto/tink/Catalogue;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.String catalogueName
         0: .line 379
            aload 0 /* catalogueName */
            ifnonnull 2
         1: .line 380
            new java.lang.IllegalArgumentException
            dup
            ldc "catalogueName must be non-null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 382
      StackMap locals:
      StackMap stack:
            getstatic com.google.crypto.tink.Registry.catalogueMap:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.crypto.tink.Catalogue
            astore 1 /* catalogue */
        start local 1 // com.google.crypto.tink.Catalogue catalogue
         3: .line 383
            aload 1 /* catalogue */
            ifnonnull 27
         4: .line 384
            ldc "no catalogue found for %s. "
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* catalogueName */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* error */
        start local 2 // java.lang.String error
         5: .line 385
            aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "tinkaead"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 386
            new java.lang.StringBuilder
            dup
            aload 2 /* error */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Maybe call AeadConfig.register()."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* error */
         7: .line 388
      StackMap locals: com.google.crypto.tink.Catalogue java.lang.String
      StackMap stack:
            aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "tinkdeterministicaead"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
         8: .line 389
            new java.lang.StringBuilder
            dup
            aload 2 /* error */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Maybe call DeterministicAeadConfig.register()."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* error */
         9: .line 390
            goto 26
      StackMap locals:
      StackMap stack:
        10: aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "tinkstreamingaead"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 13
        11: .line 391
            new java.lang.StringBuilder
            dup
            aload 2 /* error */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Maybe call StreamingAeadConfig.register()."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* error */
        12: .line 392
            goto 26
      StackMap locals:
      StackMap stack:
        13: aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "tinkhybriddecrypt"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 15
        14: .line 393
            aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "tinkhybridencrypt"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 17
        15: .line 394
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* error */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Maybe call HybridConfig.register()."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* error */
        16: .line 395
            goto 26
      StackMap locals:
      StackMap stack:
        17: aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "tinkmac"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 20
        18: .line 396
            new java.lang.StringBuilder
            dup
            aload 2 /* error */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Maybe call MacConfig.register()."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* error */
        19: .line 397
            goto 26
      StackMap locals:
      StackMap stack:
        20: aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "tinkpublickeysign"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 22
        21: .line 398
            aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "tinkpublickeyverify"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 24
        22: .line 399
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* error */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Maybe call SignatureConfig.register()."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* error */
        23: .line 400
            goto 26
      StackMap locals:
      StackMap stack:
        24: aload 0 /* catalogueName */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "tink"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 26
        25: .line 401
            new java.lang.StringBuilder
            dup
            aload 2 /* error */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Maybe call TinkConfig.register()."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* error */
        26: .line 403
      StackMap locals:
      StackMap stack:
            new java.security.GeneralSecurityException
            dup
            aload 2 /* error */
            invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String error
        27: .line 405
      StackMap locals:
      StackMap stack:
            aload 1 /* catalogue */
            areturn
        end local 1 // com.google.crypto.tink.Catalogue catalogue
        end local 0 // java.lang.String catalogueName
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   28     0  catalogueName  Ljava/lang/String;
            3   28     1      catalogue  Lcom/google/crypto/tink/Catalogue<*>;
            5   27     2          error  Ljava/lang/String;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: (Ljava/lang/String;)Lcom/google/crypto/tink/Catalogue<*>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      catalogueName  

  private static <T> T checkNotNull();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object reference
         0: .line 412
            aload 0 /* reference */
            ifnonnull 2
         1: .line 413
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 415
      StackMap locals:
      StackMap stack:
            aload 0 /* reference */
            areturn
        end local 0 // java.lang.Object reference
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  reference  TT;
    Signature: <T:Ljava/lang/Object;>(TT;)TT;
    MethodParameters:
           Name  Flags
      reference  

  public static synchronized <P> void registerKeyManager(com.google.crypto.tink.KeyManager<P>);
    descriptor: (Lcom/google/crypto/tink/KeyManager;)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.crypto.tink.KeyManager manager
         0: .line 432
            aload 0 /* manager */
            iconst_1
            invokestatic com.google.crypto.tink.Registry.registerKeyManager:(Lcom/google/crypto/tink/KeyManager;Z)V
         1: .line 433
            return
        end local 0 // com.google.crypto.tink.KeyManager manager
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  manager  Lcom/google/crypto/tink/KeyManager<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Lcom/google/crypto/tink/KeyManager<TP;>;)V
    MethodParameters:
         Name  Flags
      manager  final

  private static synchronized void ensureKeyManagerInsertable(java.lang.String, java.lang.Class<?>, );
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Z)V
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // java.lang.String typeUrl
        start local 1 // java.lang.Class implementingClass
        start local 2 // boolean newKeyAllowed
         0: .line 444
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* typeUrl */
            invokeinterface java.util.concurrent.ConcurrentMap.containsKey:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 445
            return
         2: .line 447
      StackMap locals:
      StackMap stack:
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* typeUrl */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.crypto.tink.Registry$KeyManagerContainer
            astore 3 /* container */
        start local 3 // com.google.crypto.tink.Registry$KeyManagerContainer container
         3: .line 448
            aload 3 /* container */
            invokeinterface com.google.crypto.tink.Registry$KeyManagerContainer.getImplementingClass:()Ljava/lang/Class;
            aload 1 /* implementingClass */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 10
         4: .line 449
            getstatic com.google.crypto.tink.Registry.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Attempted overwrite of a registered key manager for key type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* typeUrl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.warning:(Ljava/lang/String;)V
         5: .line 450
            new java.security.GeneralSecurityException
            dup
         6: .line 452
            ldc "typeUrl (%s) is already registered with %s, cannot be re-registered with %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         7: .line 453
            aload 0 /* typeUrl */
            aastore
            dup
            iconst_1
            aload 3 /* container */
            invokeinterface com.google.crypto.tink.Registry$KeyManagerContainer.getImplementingClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 1 /* implementingClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         8: .line 451
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         9: .line 450
            invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 455
      StackMap locals: com.google.crypto.tink.Registry$KeyManagerContainer
      StackMap stack:
            iload 2 /* newKeyAllowed */
            ifeq 12
            getstatic com.google.crypto.tink.Registry.newKeyAllowedMap:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* typeUrl */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 12
        11: .line 456
            new java.security.GeneralSecurityException
            dup
            new java.lang.StringBuilder
            dup
            ldc "New keys are already disallowed for key type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* typeUrl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 458
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.google.crypto.tink.Registry$KeyManagerContainer container
        end local 2 // boolean newKeyAllowed
        end local 1 // java.lang.Class implementingClass
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   13     0            typeUrl  Ljava/lang/String;
            0   13     1  implementingClass  Ljava/lang/Class<*>;
            0   13     2      newKeyAllowed  Z
            3   13     3          container  Lcom/google/crypto/tink/Registry$KeyManagerContainer;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;Z)V
    MethodParameters:
                   Name  Flags
      typeUrl            
      implementingClass  
      newKeyAllowed      

  public static synchronized <P> void registerKeyManager(com.google.crypto.tink.KeyManager<P>, );
    descriptor: (Lcom/google/crypto/tink/KeyManager;Z)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.google.crypto.tink.KeyManager manager
        start local 1 // boolean newKeyAllowed
         0: .line 474
            aload 0 /* manager */
            ifnonnull 2
         1: .line 475
            new java.lang.IllegalArgumentException
            dup
            ldc "key manager must be non-null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* manager */
            invokeinterface com.google.crypto.tink.KeyManager.getKeyType:()Ljava/lang/String;
            astore 2 /* typeUrl */
        start local 2 // java.lang.String typeUrl
         3: .line 478
            aload 2 /* typeUrl */
            aload 0 /* manager */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            iload 1 /* newKeyAllowed */
            invokestatic com.google.crypto.tink.Registry.ensureKeyManagerInsertable:(Ljava/lang/String;Ljava/lang/Class;Z)V
         4: .line 479
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 2 /* typeUrl */
            aload 0 /* manager */
            invokestatic com.google.crypto.tink.Registry.createContainerFor:(Lcom/google/crypto/tink/KeyManager;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
            invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 480
            getstatic com.google.crypto.tink.Registry.newKeyAllowedMap:Ljava/util/concurrent/ConcurrentMap;
            aload 2 /* typeUrl */
            iload 1 /* newKeyAllowed */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 481
            return
        end local 2 // java.lang.String typeUrl
        end local 1 // boolean newKeyAllowed
        end local 0 // com.google.crypto.tink.KeyManager manager
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0        manager  Lcom/google/crypto/tink/KeyManager<TP;>;
            0    7     1  newKeyAllowed  Z
            3    7     2        typeUrl  Ljava/lang/String;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Lcom/google/crypto/tink/KeyManager<TP;>;Z)V
    MethodParameters:
               Name  Flags
      manager        final
      newKeyAllowed  

  public static synchronized <KeyProtoT extends com.google.protobuf.MessageLite> void registerKeyManager(com.google.crypto.tink.KeyTypeManager<KeyProtoT>, );
    descriptor: (Lcom/google/crypto/tink/KeyTypeManager;Z)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.google.crypto.tink.KeyTypeManager manager
        start local 1 // boolean newKeyAllowed
         0: .line 486
            aload 0 /* manager */
            ifnonnull 2
         1: .line 487
            new java.lang.IllegalArgumentException
            dup
            ldc "key manager must be non-null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* manager */
            invokevirtual com.google.crypto.tink.KeyTypeManager.getKeyType:()Ljava/lang/String;
            astore 2 /* typeUrl */
        start local 2 // java.lang.String typeUrl
         3: .line 490
            aload 2 /* typeUrl */
            aload 0 /* manager */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            iload 1 /* newKeyAllowed */
            invokestatic com.google.crypto.tink.Registry.ensureKeyManagerInsertable:(Ljava/lang/String;Ljava/lang/Class;Z)V
         4: .line 491
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 2 /* typeUrl */
            invokeinterface java.util.concurrent.ConcurrentMap.containsKey:(Ljava/lang/Object;)Z
            ifne 7
         5: .line 492
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 2 /* typeUrl */
            aload 0 /* manager */
            invokestatic com.google.crypto.tink.Registry.createContainerFor:(Lcom/google/crypto/tink/KeyTypeManager;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 493
            getstatic com.google.crypto.tink.Registry.keyDeriverMap:Ljava/util/concurrent/ConcurrentMap;
            aload 2 /* typeUrl */
            aload 0 /* manager */
            invokestatic com.google.crypto.tink.Registry.createDeriverFor:(Lcom/google/crypto/tink/KeyTypeManager;)Lcom/google/crypto/tink/Registry$KeyDeriverContainer;
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 495
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic com.google.crypto.tink.Registry.newKeyAllowedMap:Ljava/util/concurrent/ConcurrentMap;
            aload 2 /* typeUrl */
            iload 1 /* newKeyAllowed */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 496
            return
        end local 2 // java.lang.String typeUrl
        end local 1 // boolean newKeyAllowed
        end local 0 // com.google.crypto.tink.KeyTypeManager manager
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0        manager  Lcom/google/crypto/tink/KeyTypeManager<TKeyProtoT;>;
            0    9     1  newKeyAllowed  Z
            3    9     2        typeUrl  Ljava/lang/String;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <KeyProtoT::Lcom/google/protobuf/MessageLite;>(Lcom/google/crypto/tink/KeyTypeManager<TKeyProtoT;>;Z)V
    MethodParameters:
               Name  Flags
      manager        final
      newKeyAllowed  

  public static synchronized <KeyProtoT extends com.google.protobuf.MessageLite, PublicKeyProtoT extends com.google.protobuf.MessageLite> void registerAsymmetricKeyManagers(com.google.crypto.tink.PrivateKeyTypeManager<KeyProtoT, PublicKeyProtoT>, com.google.crypto.tink.KeyTypeManager<PublicKeyProtoT>, );
    descriptor: (Lcom/google/crypto/tink/PrivateKeyTypeManager;Lcom/google/crypto/tink/KeyTypeManager;Z)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // com.google.crypto.tink.PrivateKeyTypeManager privateKeyTypeManager
        start local 1 // com.google.crypto.tink.KeyTypeManager publicKeyTypeManager
        start local 2 // boolean newKeyAllowed
         0: .line 516
            aload 0 /* privateKeyTypeManager */
            ifnull 1
            aload 1 /* publicKeyTypeManager */
            ifnonnull 2
         1: .line 517
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "given key managers must be non-null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 519
      StackMap locals:
      StackMap stack:
            aload 0 /* privateKeyTypeManager */
            invokevirtual com.google.crypto.tink.PrivateKeyTypeManager.getKeyType:()Ljava/lang/String;
            astore 3 /* privateTypeUrl */
        start local 3 // java.lang.String privateTypeUrl
         3: .line 520
            aload 1 /* publicKeyTypeManager */
            invokevirtual com.google.crypto.tink.KeyTypeManager.getKeyType:()Ljava/lang/String;
            astore 4 /* publicTypeUrl */
        start local 4 // java.lang.String publicTypeUrl
         4: .line 521
            aload 3 /* privateTypeUrl */
            aload 0 /* privateKeyTypeManager */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            iload 2 /* newKeyAllowed */
            invokestatic com.google.crypto.tink.Registry.ensureKeyManagerInsertable:(Ljava/lang/String;Ljava/lang/Class;Z)V
         5: .line 522
            aload 4 /* publicTypeUrl */
            aload 1 /* publicKeyTypeManager */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            iconst_0
            invokestatic com.google.crypto.tink.Registry.ensureKeyManagerInsertable:(Ljava/lang/String;Ljava/lang/Class;Z)V
         6: .line 523
            aload 3 /* privateTypeUrl */
            aload 4 /* publicTypeUrl */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 524
            new java.security.GeneralSecurityException
            dup
            ldc "Private and public key type must be different."
            invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 527
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 3 /* privateTypeUrl */
            invokeinterface java.util.concurrent.ConcurrentMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 27
         9: .line 529
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 3 /* privateTypeUrl */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.crypto.tink.Registry$KeyManagerContainer
            invokeinterface com.google.crypto.tink.Registry$KeyManagerContainer.publicKeyManagerClassOrNull:()Ljava/lang/Class;
        10: .line 528
            astore 5 /* existingPublicKeyManagerClass */
        start local 5 // java.lang.Class existingPublicKeyManagerClass
        11: .line 530
            aload 5 /* existingPublicKeyManagerClass */
            ifnull 27
        12: .line 531
            aload 5 /* existingPublicKeyManagerClass */
            aload 1 /* publicKeyTypeManager */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 27
        13: .line 532
            getstatic com.google.crypto.tink.Registry.logger:Ljava/util/logging/Logger;
        14: .line 533
            new java.lang.StringBuilder
            dup
            ldc "Attempted overwrite of a registered key manager for key type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 534
            aload 3 /* privateTypeUrl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 535
            ldc " with inconsistent public key type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 536
            aload 4 /* publicTypeUrl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 533
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 532
            invokevirtual java.util.logging.Logger.warning:(Ljava/lang/String;)V
        20: .line 537
            new java.security.GeneralSecurityException
            dup
        21: .line 539
            ldc "public key manager corresponding to %s is already registered with %s, cannot be re-registered with %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        22: .line 541
            aload 0 /* privateKeyTypeManager */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        23: .line 542
            aload 5 /* existingPublicKeyManagerClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
        24: .line 543
            aload 1 /* publicKeyTypeManager */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        25: .line 538
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        26: .line 537
            invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.Class existingPublicKeyManagerClass
        27: .line 548
      StackMap locals:
      StackMap stack:
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 3 /* privateTypeUrl */
            invokeinterface java.util.concurrent.ConcurrentMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 29
        28: .line 549
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 3 /* privateTypeUrl */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.crypto.tink.Registry$KeyManagerContainer
            invokeinterface com.google.crypto.tink.Registry$KeyManagerContainer.publicKeyManagerClassOrNull:()Ljava/lang/Class;
            ifnonnull 34
        29: .line 550
      StackMap locals:
      StackMap stack:
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
        30: .line 551
            aload 3 /* privateTypeUrl */
        31: .line 552
            aload 0 /* privateKeyTypeManager */
            aload 1 /* publicKeyTypeManager */
            invokestatic com.google.crypto.tink.Registry.createPrivateKeyContainerFor:(Lcom/google/crypto/tink/PrivateKeyTypeManager;Lcom/google/crypto/tink/KeyTypeManager;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
        32: .line 550
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        33: .line 553
            getstatic com.google.crypto.tink.Registry.keyDeriverMap:Ljava/util/concurrent/ConcurrentMap;
            aload 3 /* privateTypeUrl */
            aload 0 /* privateKeyTypeManager */
            invokestatic com.google.crypto.tink.Registry.createDeriverFor:(Lcom/google/crypto/tink/KeyTypeManager;)Lcom/google/crypto/tink/Registry$KeyDeriverContainer;
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        34: .line 555
      StackMap locals:
      StackMap stack:
            getstatic com.google.crypto.tink.Registry.newKeyAllowedMap:Ljava/util/concurrent/ConcurrentMap;
            aload 3 /* privateTypeUrl */
            iload 2 /* newKeyAllowed */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        35: .line 556
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 4 /* publicTypeUrl */
            invokeinterface java.util.concurrent.ConcurrentMap.containsKey:(Ljava/lang/Object;)Z
            ifne 37
        36: .line 557
            getstatic com.google.crypto.tink.Registry.keyManagerMap:Ljava/util/concurrent/ConcurrentMap;
            aload 4 /* publicTypeUrl */
            aload 1 /* publicKeyTypeManager */
            invokestatic com.google.crypto.tink.Registry.createContainerFor:(Lcom/google/crypto/tink/KeyTypeManager;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        37: .line 561
      StackMap locals:
      StackMap stack:
            getstatic com.google.crypto.tink.Registry.newKeyAllowedMap:Ljava/util/concurrent/ConcurrentMap;
            aload 4 /* publicTypeUrl */
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        38: .line 562
            return
        end local 4 // java.lang.String publicTypeUrl
        end local 3 // java.lang.String privateTypeUrl
        end local 2 // boolean newKeyAllowed
        end local 1 // com.google.crypto.tink.KeyTypeManager publicKeyTypeManager
        end local 0 // com.google.crypto.tink.PrivateKeyTypeManager privateKeyTypeManager
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   39     0          privateKeyTypeManager  Lcom/google/crypto/tink/PrivateKeyTypeManager<TKeyProtoT;TPublicKeyProtoT;>;
            0   39     1           publicKeyTypeManager  Lcom/google/crypto/tink/KeyTypeManager<TPublicKeyProtoT;>;
            0   39     2                  newKeyAllowed  Z
            3   39     3                 privateTypeUrl  Ljava/lang/String;
            4   39     4                  publicTypeUrl  Ljava/lang/String;
           11   27     5  existingPublicKeyManagerClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <KeyProtoT::Lcom/google/protobuf/MessageLite;PublicKeyProtoT::Lcom/google/protobuf/MessageLite;>(Lcom/google/crypto/tink/PrivateKeyTypeManager<TKeyProtoT;TPublicKeyProtoT;>;Lcom/google/crypto/tink/KeyTypeManager<TPublicKeyProtoT;>;Z)V
    MethodParameters:
                       Name  Flags
      privateKeyTypeManager  final
      publicKeyTypeManager   final
      newKeyAllowed          

  public static synchronized <P> void registerKeyManager(java.lang.String, com.google.crypto.tink.KeyManager<P>);
    descriptor: (Ljava/lang/String;Lcom/google/crypto/tink/KeyManager;)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String typeUrl
        start local 1 // com.google.crypto.tink.KeyManager manager
         0: .line 578
            aload 0 /* typeUrl */
            aload 1 /* manager */
            iconst_1
            invokestatic com.google.crypto.tink.Registry.registerKeyManager:(Ljava/lang/String;Lcom/google/crypto/tink/KeyManager;Z)V
         1: .line 579
            return
        end local 1 // com.google.crypto.tink.KeyManager manager
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  typeUrl  Ljava/lang/String;
            0    2     1  manager  Lcom/google/crypto/tink/KeyManager<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;Lcom/google/crypto/tink/KeyManager<TP;>;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      typeUrl  
      manager  final

  public static synchronized <P> void registerKeyManager(java.lang.String, com.google.crypto.tink.KeyManager<P>, );
    descriptor: (Ljava/lang/String;Lcom/google/crypto/tink/KeyManager;Z)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.String typeUrl
        start local 1 // com.google.crypto.tink.KeyManager manager
        start local 2 // boolean newKeyAllowed
         0: .line 597
            aload 1 /* manager */
            ifnonnull 2
         1: .line 598
            new java.lang.IllegalArgumentException
            dup
            ldc "key manager must be non-null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 600
      StackMap locals:
      StackMap stack:
            aload 0 /* typeUrl */
            aload 1 /* manager */
            invokeinterface com.google.crypto.tink.KeyManager.getKeyType:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
         3: .line 601
            new java.security.GeneralSecurityException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Manager does not support key type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 602
            aload 0 /* typeUrl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 601
            invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 604
      StackMap locals:
      StackMap stack:
            aload 1 /* manager */
            iload 2 /* newKeyAllowed */
            invokestatic com.google.crypto.tink.Registry.registerKeyManager:(Lcom/google/crypto/tink/KeyManager;Z)V
         7: .line 605
            return
        end local 2 // boolean newKeyAllowed
        end local 1 // com.google.crypto.tink.KeyManager manager
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0        typeUrl  Ljava/lang/String;
            0    8     1        manager  Lcom/google/crypto/tink/KeyManager<TP;>;
            0    8     2  newKeyAllowed  Z
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;Lcom/google/crypto/tink/KeyManager<TP;>;Z)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      typeUrl        
      manager        final
      newKeyAllowed  

  public static synchronized <P> void registerPrimitiveWrapper(com.google.crypto.tink.PrimitiveWrapper<P>);
    descriptor: (Lcom/google/crypto/tink/PrimitiveWrapper;)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // com.google.crypto.tink.PrimitiveWrapper wrapper
         0: .line 621
            aload 0 /* wrapper */
            ifnonnull 2
         1: .line 622
            new java.lang.IllegalArgumentException
            dup
            ldc "wrapper must be non-null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 624
      StackMap locals:
      StackMap stack:
            aload 0 /* wrapper */
            invokeinterface com.google.crypto.tink.PrimitiveWrapper.getPrimitiveClass:()Ljava/lang/Class;
            astore 1 /* classObject */
        start local 1 // java.lang.Class classObject
         3: .line 625
            getstatic com.google.crypto.tink.Registry.primitiveWrapperMap:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* classObject */
            invokeinterface java.util.concurrent.ConcurrentMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 15
         4: .line 628
            getstatic com.google.crypto.tink.Registry.primitiveWrapperMap:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* classObject */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.crypto.tink.PrimitiveWrapper
         5: .line 627
            astore 2 /* existingWrapper */
        start local 2 // com.google.crypto.tink.PrimitiveWrapper existingWrapper
         6: .line 629
            aload 0 /* wrapper */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* existingWrapper */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 15
         7: .line 630
            getstatic com.google.crypto.tink.Registry.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Attempted overwrite of a registered SetWrapper for type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* classObject */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.warning:(Ljava/lang/String;)V
         8: .line 631
            new java.security.GeneralSecurityException
            dup
         9: .line 633
            ldc "SetWrapper for primitive (%s) is already registered to be %s, cannot be re-registered with %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 635
            aload 1 /* classObject */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        11: .line 636
            aload 2 /* existingWrapper */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
        12: .line 637
            aload 0 /* wrapper */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        13: .line 632
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        14: .line 631
            invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // com.google.crypto.tink.PrimitiveWrapper existingWrapper
        15: .line 640
      StackMap locals: java.lang.Class
      StackMap stack:
            getstatic com.google.crypto.tink.Registry.primitiveWrapperMap:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* classObject */
            aload 0 /* wrapper */
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 641
            return
        end local 1 // java.lang.Class classObject
        end local 0 // com.google.crypto.tink.PrimitiveWrapper wrapper
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0          wrapper  Lcom/google/crypto/tink/PrimitiveWrapper<TP;>;
            3   17     1      classObject  Ljava/lang/Class<TP;>;
            6   15     2  existingWrapper  Lcom/google/crypto/tink/PrimitiveWrapper<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Lcom/google/crypto/tink/PrimitiveWrapper<TP;>;)V
    MethodParameters:
         Name  Flags
      wrapper  final

  public static <P> com.google.crypto.tink.KeyManager<P> getKeyManager(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/google/crypto/tink/KeyManager;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String typeUrl
         0: .line 650
            aload 0 /* typeUrl */
            aconst_null
            invokestatic com.google.crypto.tink.Registry.getKeyManagerInternal:(Ljava/lang/String;Ljava/lang/Class;)Lcom/google/crypto/tink/KeyManager;
            areturn
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  typeUrl  Ljava/lang/String;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;)Lcom/google/crypto/tink/KeyManager<TP;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      typeUrl  

  public static com.google.crypto.tink.KeyManager<?> getUntypedKeyManager(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/google/crypto/tink/KeyManager;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.lang.String typeUrl
         0: .line 656
            aload 0 /* typeUrl */
            invokestatic com.google.crypto.tink.Registry.getKeyManagerContainerOrThrow:(Ljava/lang/String;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
            astore 1 /* container */
        start local 1 // com.google.crypto.tink.Registry$KeyManagerContainer container
         1: .line 657
            aload 1 /* container */
            invokeinterface com.google.crypto.tink.Registry$KeyManagerContainer.getUntypedKeyManager:()Lcom/google/crypto/tink/KeyManager;
            areturn
        end local 1 // com.google.crypto.tink.Registry$KeyManagerContainer container
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0    typeUrl  Ljava/lang/String;
            1    2     1  container  Lcom/google/crypto/tink/Registry$KeyManagerContainer;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: (Ljava/lang/String;)Lcom/google/crypto/tink/KeyManager<*>;
    MethodParameters:
         Name  Flags
      typeUrl  

  public static <P> com.google.crypto.tink.KeyManager<P> getKeyManager(java.lang.String, java.lang.Class<P>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Lcom/google/crypto/tink/KeyManager;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String typeUrl
        start local 1 // java.lang.Class primitiveClass
         0: .line 663
            aload 0 /* typeUrl */
            aload 1 /* primitiveClass */
            invokestatic com.google.crypto.tink.Registry.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            invokestatic com.google.crypto.tink.Registry.getKeyManagerInternal:(Ljava/lang/String;Ljava/lang/Class;)Lcom/google/crypto/tink/KeyManager;
            areturn
        end local 1 // java.lang.Class primitiveClass
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0         typeUrl  Ljava/lang/String;
            0    1     1  primitiveClass  Ljava/lang/Class<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TP;>;)Lcom/google/crypto/tink/KeyManager<TP;>;
    MethodParameters:
                Name  Flags
      typeUrl         
      primitiveClass  

  private static java.lang.String toCommaSeparatedString(java.util.Set<java.lang.Class<?>>);
    descriptor: (Ljava/util/Set;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // java.util.Set setOfClasses
         0: .line 667
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* b */
        start local 1 // java.lang.StringBuilder b
         1: .line 668
            iconst_1
            istore 2 /* first */
        start local 2 // boolean first
         2: .line 669
            aload 0 /* setOfClasses */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: java.util.Set java.lang.StringBuilder int top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 3 /* clazz */
        start local 3 // java.lang.Class clazz
         4: .line 670
            iload 2 /* first */
            ifne 6
         5: .line 671
            aload 1 /* b */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 673
      StackMap locals: java.util.Set java.lang.StringBuilder int java.lang.Class java.util.Iterator
      StackMap stack:
            aload 1 /* b */
            aload 3 /* clazz */
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 674
            iconst_0
            istore 2 /* first */
        end local 3 // java.lang.Class clazz
         8: .line 669
      StackMap locals: java.util.Set java.lang.StringBuilder int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 676
            aload 1 /* b */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // boolean first
        end local 1 // java.lang.StringBuilder b
        end local 0 // java.util.Set setOfClasses
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0  setOfClasses  Ljava/util/Set<Ljava/lang/Class<*>;>;
            1   10     1             b  Ljava/lang/StringBuilder;
            2   10     2         first  Z
            4    8     3         clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/util/Set<Ljava/lang/Class<*>;>;)Ljava/lang/String;
    MethodParameters:
              Name  Flags
      setOfClasses  

  private static <P> com.google.crypto.tink.KeyManager<P> getKeyManagerInternal(java.lang.String, java.lang.Class<P>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Lcom/google/crypto/tink/KeyManager;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.lang.String typeUrl
        start local 1 // java.lang.Class primitiveClass
         0: .line 681
            aload 0 /* typeUrl */
            invokestatic com.google.crypto.tink.Registry.getKeyManagerContainerOrThrow:(Ljava/lang/String;)Lcom/google/crypto/tink/Registry$KeyManagerContainer;
            astore 2 /* container */
        start local 2 // com.google.crypto.tink.Registry$KeyManagerContainer container
         1: .line 682
            aload 1 /* primitiveClass */
            ifnonnull 4
         2: .line 684
            aload 2 /* container */
            invokeinterface com.google.crypto.tink.Registry$KeyManagerContainer.getUntypedKeyManager:()Lcom/google/crypto/tink/KeyManager;
            astore 3 /* result */
        start local 3 // com.google.crypto.tink.KeyManager result
         3: .line 685
            aload 3 /* result */
            areturn
        end local 3 // com.google.crypto.tink.KeyManager result
         4: .line 687
      StackMap locals: com.google.crypto.tink.Registry$KeyManagerContainer
      StackMap stack:
            aload 2 /* container */
            invokeinterface com.google.crypto.tink.Registry$KeyManagerContainer.supportedPrimitives:()Ljava/util/Set;
            aload 1 /* primitiveClass */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 688
            aload 2 /* container */
            aload 1 /* primitiveClass */
            invokeinterface com.google.crypto.tink.Registry$KeyManagerContainer.getKeyManager:(Ljava/lang/Class;)Lcom/google/crypto/tink/KeyManager;
            areturn
         6: .line 690
      StackMap locals:
      StackMap stack:
            new java.security.GeneralSecurityException
            dup
         7: .line 691
            new java.lang.StringBuilder
            dup
            ldc "Primitive type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 692
            aload 1 /* primitiveClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 693
            ldc " not supported by key manager of type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 694
            aload 2 /* container */
            invokeinterface com.google.crypto.tink.Registry$KeyManagerContainer.getImplementingClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        11: .line 695
            ldc ", supported primitives: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 696
            aload 2 /* container */
            invokeinterface com.google.crypto.tink.Registry$KeyManagerContainer.supportedPrimitives:()Ljava/util/Set;
            invokestatic com.google.crypto.tink.Registry.toCommaSeparatedString:(Ljava/util/Set;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 691
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 690
            invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // com.google.crypto.tink.Registry$KeyManagerContainer container
        end local 1 // java.lang.Class primitiveClass
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0         typeUrl  Ljava/lang/String;
            0   15     1  primitiveClass  Ljava/lang/Class<TP;>;
            1   15     2       container  Lcom/google/crypto/tink/Registry$KeyManagerContainer;
            3    4     3          result  Lcom/google/crypto/tink/KeyManager<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TP;>;)Lcom/google/crypto/tink/KeyManager<TP;>;
    MethodParameters:
                Name  Flags
      typeUrl         
      primitiveClass  

  public static synchronized KeyData newKeyData(com.google.crypto.tink.KeyTemplate);
    descriptor: (Lcom/google/crypto/tink/KeyTemplate;)LKeyData;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
         0: .line 709
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tKeyData cannot be resolved to a type\n\tThe method newKeyData(ByteString) from the type KeyManager<capture#50-of ?> refers to the missing type KeyData\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.security.GeneralSecurityException
    MethodParameters:
             Name  Flags
      keyTemplate  

  public static synchronized com.google.protobuf.MessageLite newKey(com.google.crypto.tink.KeyTemplate);
    descriptor: (Lcom/google/crypto/tink/KeyTemplate;)Lcom/google/protobuf/MessageLite;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
         0: .line 732
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tThe method newKey(ByteString) in the type KeyManager<capture#52-of ?> is not applicable for the arguments (byte[])\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.security.GeneralSecurityException
    MethodParameters:
             Name  Flags
      keyTemplate  

  public static synchronized com.google.protobuf.MessageLite newKey(java.lang.String, com.google.protobuf.MessageLite);
    descriptor: (Ljava/lang/String;Lcom/google/protobuf/MessageLite;)Lcom/google/protobuf/MessageLite;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String typeUrl
        start local 1 // com.google.protobuf.MessageLite format
         0: .line 749
            aload 0 /* typeUrl */
            invokestatic com.google.crypto.tink.Registry.getKeyManager:(Ljava/lang/String;)Lcom/google/crypto/tink/KeyManager;
            astore 2 /* manager */
        start local 2 // com.google.crypto.tink.KeyManager manager
         1: .line 750
            getstatic com.google.crypto.tink.Registry.newKeyAllowedMap:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* typeUrl */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 3
         2: .line 751
            aload 2 /* manager */
            aload 1 /* format */
            invokeinterface com.google.crypto.tink.KeyManager.newKey:(Lcom/google/protobuf/MessageLite;)Lcom/google/protobuf/MessageLite;
            areturn
         3: .line 753
      StackMap locals: com.google.crypto.tink.KeyManager
      StackMap stack:
            new java.security.GeneralSecurityException
            dup
            new java.lang.StringBuilder
            dup
            ldc "newKey-operation not permitted for key type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* typeUrl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // com.google.crypto.tink.KeyManager manager
        end local 1 // com.google.protobuf.MessageLite format
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  typeUrl  Ljava/lang/String;
            0    4     1   format  Lcom/google/protobuf/MessageLite;
            1    4     2  manager  Lcom/google/crypto/tink/KeyManager<*>;
    Exceptions:
      throws java.security.GeneralSecurityException
    MethodParameters:
         Name  Flags
      typeUrl  
      format   

  static synchronized KeyData deriveKey(com.google.crypto.tink.KeyTemplate, java.io.InputStream);
    descriptor: (Lcom/google/crypto/tink/KeyTemplate;Ljava/io/InputStream;)LKeyData;
    flags: (0x0028) ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
         0: .line 767
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tKeyData cannot be resolved to a type\n\tThe method deriveKey(ByteString, InputStream) from the type Registry.KeyDeriverContainer refers to the missing type KeyData\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.security.GeneralSecurityException
    MethodParameters:
              Name  Flags
      keyTemplate   
      randomStream  

  public static KeyData getPublicKeyData(java.lang.String, com.google.protobuf.ByteString);
    descriptor: (Ljava/lang/String;Lcom/google/protobuf/ByteString;)LKeyData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
         0: .line 787
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tKeyData cannot be resolved to a type\n\tThe method getPublicKeyData(ByteString) from the type PrivateKeyManager refers to the missing type KeyData\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.security.GeneralSecurityException
    MethodParameters:
                      Name  Flags
      typeUrl               
      serializedPrivateKey  

  public static <P> P getPrimitive(java.lang.String, com.google.protobuf.MessageLite);
    descriptor: (Ljava/lang/String;Lcom/google/protobuf/MessageLite;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String typeUrl
        start local 1 // com.google.protobuf.MessageLite key
         0: .line 810
            aload 0 /* typeUrl */
            aload 1 /* key */
            aconst_null
            invokestatic com.google.crypto.tink.Registry.getPrimitiveInternal:(Ljava/lang/String;Lcom/google/protobuf/MessageLite;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 1 // com.google.protobuf.MessageLite key
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  typeUrl  Ljava/lang/String;
            0    1     1      key  Lcom/google/protobuf/MessageLite;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;Lcom/google/protobuf/MessageLite;)TP;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      typeUrl  
      key      

  public static <P> P getPrimitive(java.lang.String, com.google.protobuf.MessageLite, java.lang.Class<P>);
    descriptor: (Ljava/lang/String;Lcom/google/protobuf/MessageLite;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String typeUrl
        start local 1 // com.google.protobuf.MessageLite key
        start local 2 // java.lang.Class primitiveClass
         0: .line 823
            aload 0 /* typeUrl */
            aload 1 /* key */
            aload 2 /* primitiveClass */
            invokestatic com.google.crypto.tink.Registry.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            invokestatic com.google.crypto.tink.Registry.getPrimitiveInternal:(Ljava/lang/String;Lcom/google/protobuf/MessageLite;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class primitiveClass
        end local 1 // com.google.protobuf.MessageLite key
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0         typeUrl  Ljava/lang/String;
            0    1     1             key  Lcom/google/protobuf/MessageLite;
            0    1     2  primitiveClass  Ljava/lang/Class<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;Lcom/google/protobuf/MessageLite;Ljava/lang/Class<TP;>;)TP;
    MethodParameters:
                Name  Flags
      typeUrl         
      key             
      primitiveClass  

  private static <P> P getPrimitiveInternal(java.lang.String, com.google.protobuf.MessageLite, java.lang.Class<P>);
    descriptor: (Ljava/lang/String;Lcom/google/protobuf/MessageLite;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.String typeUrl
        start local 1 // com.google.protobuf.MessageLite key
        start local 2 // java.lang.Class primitiveClass
         0: .line 828
            aload 0 /* typeUrl */
            aload 2 /* primitiveClass */
            invokestatic com.google.crypto.tink.Registry.getKeyManagerInternal:(Ljava/lang/String;Ljava/lang/Class;)Lcom/google/crypto/tink/KeyManager;
            astore 3 /* manager */
        start local 3 // com.google.crypto.tink.KeyManager manager
         1: .line 829
            aload 3 /* manager */
            aload 1 /* key */
            invokeinterface com.google.crypto.tink.KeyManager.getPrimitive:(Lcom/google/protobuf/MessageLite;)Ljava/lang/Object;
            areturn
        end local 3 // com.google.crypto.tink.KeyManager manager
        end local 2 // java.lang.Class primitiveClass
        end local 1 // com.google.protobuf.MessageLite key
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0         typeUrl  Ljava/lang/String;
            0    2     1             key  Lcom/google/protobuf/MessageLite;
            0    2     2  primitiveClass  Ljava/lang/Class<TP;>;
            1    2     3         manager  Lcom/google/crypto/tink/KeyManager<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;Lcom/google/protobuf/MessageLite;Ljava/lang/Class<TP;>;)TP;
    MethodParameters:
                Name  Flags
      typeUrl         
      key             
      primitiveClass  

  public static <P> P getPrimitive(java.lang.String, com.google.protobuf.ByteString);
    descriptor: (Ljava/lang/String;Lcom/google/protobuf/ByteString;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String typeUrl
        start local 1 // com.google.protobuf.ByteString serializedKey
         0: .line 845
            aload 0 /* typeUrl */
            aload 1 /* serializedKey */
            aconst_null
            invokestatic com.google.crypto.tink.Registry.getPrimitiveInternal:(Ljava/lang/String;Lcom/google/protobuf/ByteString;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 1 // com.google.protobuf.ByteString serializedKey
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0        typeUrl  Ljava/lang/String;
            0    1     1  serializedKey  Lcom/google/protobuf/ByteString;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;Lcom/google/protobuf/ByteString;)TP;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      typeUrl        
      serializedKey  

  public static <P> P getPrimitive(java.lang.String, com.google.protobuf.ByteString, java.lang.Class<P>);
    descriptor: (Ljava/lang/String;Lcom/google/protobuf/ByteString;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String typeUrl
        start local 1 // com.google.protobuf.ByteString serializedKey
        start local 2 // java.lang.Class primitiveClass
         0: .line 859
            aload 0 /* typeUrl */
            aload 1 /* serializedKey */
            aload 2 /* primitiveClass */
            invokestatic com.google.crypto.tink.Registry.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            invokestatic com.google.crypto.tink.Registry.getPrimitiveInternal:(Ljava/lang/String;Lcom/google/protobuf/ByteString;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class primitiveClass
        end local 1 // com.google.protobuf.ByteString serializedKey
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0         typeUrl  Ljava/lang/String;
            0    1     1   serializedKey  Lcom/google/protobuf/ByteString;
            0    1     2  primitiveClass  Ljava/lang/Class<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;Lcom/google/protobuf/ByteString;Ljava/lang/Class<TP;>;)TP;
    MethodParameters:
                Name  Flags
      typeUrl         
      serializedKey   
      primitiveClass  

  private static <P> P getPrimitiveInternal(java.lang.String, com.google.protobuf.ByteString, java.lang.Class<P>);
    descriptor: (Ljava/lang/String;Lcom/google/protobuf/ByteString;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.String typeUrl
        start local 1 // com.google.protobuf.ByteString serializedKey
        start local 2 // java.lang.Class primitiveClass
         0: .line 865
            aload 0 /* typeUrl */
            aload 2 /* primitiveClass */
            invokestatic com.google.crypto.tink.Registry.getKeyManagerInternal:(Ljava/lang/String;Ljava/lang/Class;)Lcom/google/crypto/tink/KeyManager;
            astore 3 /* manager */
        start local 3 // com.google.crypto.tink.KeyManager manager
         1: .line 866
            aload 3 /* manager */
            aload 1 /* serializedKey */
            invokeinterface com.google.crypto.tink.KeyManager.getPrimitive:(Lcom/google/protobuf/ByteString;)Ljava/lang/Object;
            areturn
        end local 3 // com.google.crypto.tink.KeyManager manager
        end local 2 // java.lang.Class primitiveClass
        end local 1 // com.google.protobuf.ByteString serializedKey
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0         typeUrl  Ljava/lang/String;
            0    2     1   serializedKey  Lcom/google/protobuf/ByteString;
            0    2     2  primitiveClass  Ljava/lang/Class<TP;>;
            1    2     3         manager  Lcom/google/crypto/tink/KeyManager<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;Lcom/google/protobuf/ByteString;Ljava/lang/Class<TP;>;)TP;
    MethodParameters:
                Name  Flags
      typeUrl         
      serializedKey   
      primitiveClass  

  public static <P> P getPrimitive(java.lang.String, );
    descriptor: (Ljava/lang/String;[B)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String typeUrl
        start local 1 // byte[] serializedKey
         0: .line 882
            aload 0 /* typeUrl */
            aload 1 /* serializedKey */
            invokestatic com.google.protobuf.ByteString.copyFrom:([B)Lcom/google/protobuf/ByteString;
            invokestatic com.google.crypto.tink.Registry.getPrimitive:(Ljava/lang/String;Lcom/google/protobuf/ByteString;)Ljava/lang/Object;
            areturn
        end local 1 // byte[] serializedKey
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0        typeUrl  Ljava/lang/String;
            0    1     1  serializedKey  [B
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;[B)TP;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      typeUrl        
      serializedKey  

  public static <P> P getPrimitive(java.lang.String, byte[], java.lang.Class<P>);
    descriptor: (Ljava/lang/String;[BLjava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String typeUrl
        start local 1 // byte[] serializedKey
        start local 2 // java.lang.Class primitiveClass
         0: .line 894
            aload 0 /* typeUrl */
            aload 1 /* serializedKey */
            invokestatic com.google.protobuf.ByteString.copyFrom:([B)Lcom/google/protobuf/ByteString;
            aload 2 /* primitiveClass */
            invokestatic com.google.crypto.tink.Registry.getPrimitive:(Ljava/lang/String;Lcom/google/protobuf/ByteString;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class primitiveClass
        end local 1 // byte[] serializedKey
        end local 0 // java.lang.String typeUrl
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0         typeUrl  Ljava/lang/String;
            0    1     1   serializedKey  [B
            0    1     2  primitiveClass  Ljava/lang/Class<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Ljava/lang/String;[BLjava/lang/Class<TP;>;)TP;
    MethodParameters:
                Name  Flags
      typeUrl         
      serializedKey   
      primitiveClass  

  public static <P> P getPrimitive(KeyData);
    descriptor: (LKeyData;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 908
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tKeyData cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(LKeyData;)TP;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      keyData  

  public static <P> P getPrimitive(KeyData, java.lang.Class<P>);
    descriptor: (LKeyData;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
         0: .line 920
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tKeyData cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(LKeyData;Ljava/lang/Class<TP;>;)TP;
    MethodParameters:
                Name  Flags
      keyData         
      primitiveClass  

  public static <P> com.google.crypto.tink.PrimitiveSet<P> getPrimitives(com.google.crypto.tink.KeysetHandle);
    descriptor: (Lcom/google/crypto/tink/KeysetHandle;)Lcom/google/crypto/tink/PrimitiveSet;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.crypto.tink.KeysetHandle keysetHandle
         0: .line 939
            aload 0 /* keysetHandle */
            aconst_null
            invokestatic com.google.crypto.tink.Registry.getPrimitives:(Lcom/google/crypto/tink/KeysetHandle;Lcom/google/crypto/tink/KeyManager;)Lcom/google/crypto/tink/PrimitiveSet;
            areturn
        end local 0 // com.google.crypto.tink.KeysetHandle keysetHandle
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  keysetHandle  Lcom/google/crypto/tink/KeysetHandle;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Lcom/google/crypto/tink/KeysetHandle;)Lcom/google/crypto/tink/PrimitiveSet<TP;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
              Name  Flags
      keysetHandle  

  public static <P> com.google.crypto.tink.PrimitiveSet<P> getPrimitives(com.google.crypto.tink.KeysetHandle, java.lang.Class<P>);
    descriptor: (Lcom/google/crypto/tink/KeysetHandle;Ljava/lang/Class;)Lcom/google/crypto/tink/PrimitiveSet;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.crypto.tink.KeysetHandle keysetHandle
        start local 1 // java.lang.Class primitiveClass
         0: .line 954
            aload 0 /* keysetHandle */
            aconst_null
            aload 1 /* primitiveClass */
            invokestatic com.google.crypto.tink.Registry.getPrimitives:(Lcom/google/crypto/tink/KeysetHandle;Lcom/google/crypto/tink/KeyManager;Ljava/lang/Class;)Lcom/google/crypto/tink/PrimitiveSet;
            areturn
        end local 1 // java.lang.Class primitiveClass
        end local 0 // com.google.crypto.tink.KeysetHandle keysetHandle
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0    keysetHandle  Lcom/google/crypto/tink/KeysetHandle;
            0    1     1  primitiveClass  Ljava/lang/Class<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Lcom/google/crypto/tink/KeysetHandle;Ljava/lang/Class<TP;>;)Lcom/google/crypto/tink/PrimitiveSet<TP;>;
    MethodParameters:
                Name  Flags
      keysetHandle    
      primitiveClass  

  public static <P> com.google.crypto.tink.PrimitiveSet<P> getPrimitives(com.google.crypto.tink.KeysetHandle, com.google.crypto.tink.KeyManager<P>);
    descriptor: (Lcom/google/crypto/tink/KeysetHandle;Lcom/google/crypto/tink/KeyManager;)Lcom/google/crypto/tink/PrimitiveSet;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.crypto.tink.KeysetHandle keysetHandle
        start local 1 // com.google.crypto.tink.KeyManager customManager
         0: .line 977
            aload 0 /* keysetHandle */
            aload 1 /* customManager */
            aconst_null
            invokestatic com.google.crypto.tink.Registry.getPrimitivesInternal:(Lcom/google/crypto/tink/KeysetHandle;Lcom/google/crypto/tink/KeyManager;Ljava/lang/Class;)Lcom/google/crypto/tink/PrimitiveSet;
            areturn
        end local 1 // com.google.crypto.tink.KeyManager customManager
        end local 0 // com.google.crypto.tink.KeysetHandle keysetHandle
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0   keysetHandle  Lcom/google/crypto/tink/KeysetHandle;
            0    1     1  customManager  Lcom/google/crypto/tink/KeyManager<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Lcom/google/crypto/tink/KeysetHandle;Lcom/google/crypto/tink/KeyManager<TP;>;)Lcom/google/crypto/tink/PrimitiveSet<TP;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      keysetHandle   
      customManager  final

  public static <P> com.google.crypto.tink.PrimitiveSet<P> getPrimitives(com.google.crypto.tink.KeysetHandle, com.google.crypto.tink.KeyManager<P>, java.lang.Class<P>);
    descriptor: (Lcom/google/crypto/tink/KeysetHandle;Lcom/google/crypto/tink/KeyManager;Ljava/lang/Class;)Lcom/google/crypto/tink/PrimitiveSet;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.crypto.tink.KeysetHandle keysetHandle
        start local 1 // com.google.crypto.tink.KeyManager customManager
        start local 2 // java.lang.Class primitiveClass
         0: .line 998
            aload 0 /* keysetHandle */
            aload 1 /* customManager */
            aload 2 /* primitiveClass */
            invokestatic com.google.crypto.tink.Registry.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            invokestatic com.google.crypto.tink.Registry.getPrimitivesInternal:(Lcom/google/crypto/tink/KeysetHandle;Lcom/google/crypto/tink/KeyManager;Ljava/lang/Class;)Lcom/google/crypto/tink/PrimitiveSet;
            areturn
        end local 2 // java.lang.Class primitiveClass
        end local 1 // com.google.crypto.tink.KeyManager customManager
        end local 0 // com.google.crypto.tink.KeysetHandle keysetHandle
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0    keysetHandle  Lcom/google/crypto/tink/KeysetHandle;
            0    1     1   customManager  Lcom/google/crypto/tink/KeyManager<TP;>;
            0    1     2  primitiveClass  Ljava/lang/Class<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Lcom/google/crypto/tink/KeysetHandle;Lcom/google/crypto/tink/KeyManager<TP;>;Ljava/lang/Class<TP;>;)Lcom/google/crypto/tink/PrimitiveSet<TP;>;
    MethodParameters:
                Name  Flags
      keysetHandle    
      customManager   final
      primitiveClass  

  private static <P> com.google.crypto.tink.PrimitiveSet<P> getPrimitivesInternal(com.google.crypto.tink.KeysetHandle, com.google.crypto.tink.KeyManager<P>, java.lang.Class<P>);
    descriptor: (Lcom/google/crypto/tink/KeysetHandle;Lcom/google/crypto/tink/KeyManager;Ljava/lang/Class;)Lcom/google/crypto/tink/PrimitiveSet;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1004
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe method getKeyset() from the type KeysetHandle refers to the missing type Keyset\n\tKeyset cannot be resolved to a type\n\tThe method getKeyset() from the type KeysetHandle refers to the missing type Keyset\n\tKeyStatusType cannot be resolved to a variable\n\tThe method getKeyset() from the type KeysetHandle refers to the missing type Keyset\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Lcom/google/crypto/tink/KeysetHandle;Lcom/google/crypto/tink/KeyManager<TP;>;Ljava/lang/Class<TP;>;)Lcom/google/crypto/tink/PrimitiveSet<TP;>;
    MethodParameters:
                Name  Flags
      keysetHandle    
      customManager   final
      primitiveClass  

  public static <P> P wrap(com.google.crypto.tink.PrimitiveSet<P>);
    descriptor: (Lcom/google/crypto/tink/PrimitiveSet;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.google.crypto.tink.PrimitiveSet primitiveSet
         0: .line 1033
            getstatic com.google.crypto.tink.Registry.primitiveWrapperMap:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* primitiveSet */
            invokevirtual com.google.crypto.tink.PrimitiveSet.getPrimitiveClass:()Ljava/lang/Class;
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.crypto.tink.PrimitiveWrapper
         1: .line 1032
            astore 1 /* wrapper */
        start local 1 // com.google.crypto.tink.PrimitiveWrapper wrapper
         2: .line 1034
            aload 1 /* wrapper */
            ifnonnull 6
         3: .line 1035
            new java.security.GeneralSecurityException
            dup
         4: .line 1036
            new java.lang.StringBuilder
            dup
            ldc "No wrapper found for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* primitiveSet */
            invokevirtual com.google.crypto.tink.PrimitiveSet.getPrimitiveClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 1035
            invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1038
      StackMap locals: com.google.crypto.tink.PrimitiveWrapper
      StackMap stack:
            aload 1 /* wrapper */
            aload 0 /* primitiveSet */
            invokeinterface com.google.crypto.tink.PrimitiveWrapper.wrap:(Lcom/google/crypto/tink/PrimitiveSet;)Ljava/lang/Object;
            areturn
        end local 1 // com.google.crypto.tink.PrimitiveWrapper wrapper
        end local 0 // com.google.crypto.tink.PrimitiveSet primitiveSet
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0  primitiveSet  Lcom/google/crypto/tink/PrimitiveSet<TP;>;
            2    7     1       wrapper  Lcom/google/crypto/tink/PrimitiveWrapper<TP;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: <P:Ljava/lang/Object;>(Lcom/google/crypto/tink/PrimitiveSet<TP;>;)TP;
    MethodParameters:
              Name  Flags
      primitiveSet  

  static com.google.protobuf.MessageLite parseKeyData(KeyData);
    descriptor: (LKeyData;)Lcom/google/protobuf/MessageLite;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 1046
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tKeyData cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.security.GeneralSecurityException, com.google.protobuf.InvalidProtocolBufferException
    MethodParameters:
         Name  Flags
      keyData  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.crypto.tink.Registry this
         0: .line 1052
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.google.crypto.tink.Registry this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/crypto/tink/Registry;
}
SourceFile: "Registry.java"
NestMembers:
  com.google.crypto.tink.Registry$1  com.google.crypto.tink.Registry$2  com.google.crypto.tink.Registry$3  com.google.crypto.tink.Registry$4  com.google.crypto.tink.Registry$KeyDeriverContainer  com.google.crypto.tink.Registry$KeyManagerContainer
InnerClasses:
  com.google.crypto.tink.Registry$1
  com.google.crypto.tink.Registry$2
  com.google.crypto.tink.Registry$3
  com.google.crypto.tink.Registry$4
  private abstract KeyDeriverContainer = com.google.crypto.tink.Registry$KeyDeriverContainer of com.google.crypto.tink.Registry
  private abstract KeyManagerContainer = com.google.crypto.tink.Registry$KeyManagerContainer of com.google.crypto.tink.Registry