abstract class io.netty.handler.ssl.SslHandler$SslEngineType extends java.lang.Enum<io.netty.handler.ssl.SslHandler$SslEngineType>
  minor version: 0
  major version: 59
  flags: flags: (0x4420) ACC_SUPER, ACC_ABSTRACT, ACC_ANNOTATION
  this_class: io.netty.handler.ssl.SslHandler$SslEngineType
  super_class: java.lang.Enum
{
  public static final io.netty.handler.ssl.SslHandler$SslEngineType TCNATIVE;
    descriptor: Lio/netty/handler/ssl/SslHandler$SslEngineType;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final io.netty.handler.ssl.SslHandler$SslEngineType CONSCRYPT;
    descriptor: Lio/netty/handler/ssl/SslHandler$SslEngineType;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final io.netty.handler.ssl.SslHandler$SslEngineType JDK;
    descriptor: Lio/netty/handler/ssl/SslHandler$SslEngineType;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  final boolean wantsDirectBuffer;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final io.netty.handler.codec.ByteToMessageDecoder$Cumulator cumulator;
    descriptor: Lio/netty/handler/codec/ByteToMessageDecoder$Cumulator;
    flags: (0x0010) ACC_FINAL

  private static final io.netty.handler.ssl.SslHandler$SslEngineType[] ENUM$VALUES;
    descriptor: [Lio/netty/handler/ssl/SslHandler$SslEngineType;
    flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 194
            new io.netty.handler.ssl.SslHandler$SslEngineType$1
            dup
            ldc "TCNATIVE"
            iconst_0
            iconst_1
            getstatic io.netty.handler.ssl.SslHandler.COMPOSITE_CUMULATOR:Lio/netty/handler/codec/ByteToMessageDecoder$Cumulator;
            invokespecial io.netty.handler.ssl.SslHandler$SslEngineType$1.<init>:(Ljava/lang/String;IZLio/netty/handler/codec/ByteToMessageDecoder$Cumulator;)V
            putstatic io.netty.handler.ssl.SslHandler$SslEngineType.TCNATIVE:Lio/netty/handler/ssl/SslHandler$SslEngineType;
         1: .line 245
            new io.netty.handler.ssl.SslHandler$SslEngineType$2
            dup
            ldc "CONSCRYPT"
            iconst_1
            iconst_1
            getstatic io.netty.handler.ssl.SslHandler.COMPOSITE_CUMULATOR:Lio/netty/handler/codec/ByteToMessageDecoder$Cumulator;
            invokespecial io.netty.handler.ssl.SslHandler$SslEngineType$2.<init>:(Ljava/lang/String;IZLio/netty/handler/codec/ByteToMessageDecoder$Cumulator;)V
            putstatic io.netty.handler.ssl.SslHandler$SslEngineType.CONSCRYPT:Lio/netty/handler/ssl/SslHandler$SslEngineType;
         2: .line 287
            new io.netty.handler.ssl.SslHandler$SslEngineType$3
            dup
            ldc "JDK"
            iconst_2
            iconst_0
            getstatic io.netty.handler.ssl.SslHandler.MERGE_CUMULATOR:Lio/netty/handler/codec/ByteToMessageDecoder$Cumulator;
            invokespecial io.netty.handler.ssl.SslHandler$SslEngineType$3.<init>:(Ljava/lang/String;IZLio/netty/handler/codec/ByteToMessageDecoder$Cumulator;)V
            putstatic io.netty.handler.ssl.SslHandler$SslEngineType.JDK:Lio/netty/handler/ssl/SslHandler$SslEngineType;
         3: .line 193
            iconst_3
            anewarray io.netty.handler.ssl.SslHandler$SslEngineType
            dup
            iconst_0
            getstatic io.netty.handler.ssl.SslHandler$SslEngineType.TCNATIVE:Lio/netty/handler/ssl/SslHandler$SslEngineType;
            aastore
            dup
            iconst_1
            getstatic io.netty.handler.ssl.SslHandler$SslEngineType.CONSCRYPT:Lio/netty/handler/ssl/SslHandler$SslEngineType;
            aastore
            dup
            iconst_2
            getstatic io.netty.handler.ssl.SslHandler$SslEngineType.JDK:Lio/netty/handler/ssl/SslHandler$SslEngineType;
            aastore
            putstatic io.netty.handler.ssl.SslHandler$SslEngineType.ENUM$VALUES:[Lio/netty/handler/ssl/SslHandler$SslEngineType;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static io.netty.handler.ssl.SslHandler$SslEngineType forEngine(javax.net.ssl.SSLEngine);
    descriptor: (Ljavax/net/ssl/SSLEngine;)Lio/netty/handler/ssl/SslHandler$SslEngineType;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.net.ssl.SSLEngine engine
         0: .line 332
            aload 0 /* engine */
            instanceof io.netty.handler.ssl.ReferenceCountedOpenSslEngine
            ifeq 1
            getstatic io.netty.handler.ssl.SslHandler$SslEngineType.TCNATIVE:Lio/netty/handler/ssl/SslHandler$SslEngineType;
            goto 3
         1: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* engine */
            instanceof io.netty.handler.ssl.ConscryptAlpnSslEngine
            ifeq 2
            getstatic io.netty.handler.ssl.SslHandler$SslEngineType.CONSCRYPT:Lio/netty/handler/ssl/SslHandler$SslEngineType;
            goto 3
      StackMap locals:
      StackMap stack:
         2: getstatic io.netty.handler.ssl.SslHandler$SslEngineType.JDK:Lio/netty/handler/ssl/SslHandler$SslEngineType;
         3: .line 332
      StackMap locals:
      StackMap stack: io.netty.handler.ssl.SslHandler$SslEngineType
            areturn
        end local 0 // javax.net.ssl.SSLEngine engine
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  engine  Ljavax/net/ssl/SSLEngine;
    MethodParameters:
        Name  Flags
      engine  

  private void <init>(java.lang.String, int, boolean, io.netty.handler.codec.ByteToMessageDecoder$Cumulator);
    descriptor: (Ljava/lang/String;IZLio/netty/handler/codec/ByteToMessageDecoder$Cumulator;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // io.netty.handler.ssl.SslHandler$SslEngineType this
        start local 3 // boolean wantsDirectBuffer
        start local 4 // io.netty.handler.codec.ByteToMessageDecoder$Cumulator cumulator
         0: .line 336
            aload 0 /* this */
            aload 1
            iload 2
            invokespecial java.lang.Enum.<init>:(Ljava/lang/String;I)V
         1: .line 337
            aload 0 /* this */
            iload 3 /* wantsDirectBuffer */
            putfield io.netty.handler.ssl.SslHandler$SslEngineType.wantsDirectBuffer:Z
         2: .line 338
            aload 0 /* this */
            aload 4 /* cumulator */
            putfield io.netty.handler.ssl.SslHandler$SslEngineType.cumulator:Lio/netty/handler/codec/ByteToMessageDecoder$Cumulator;
         3: .line 339
            return
        end local 4 // io.netty.handler.codec.ByteToMessageDecoder$Cumulator cumulator
        end local 3 // boolean wantsDirectBuffer
        end local 0 // io.netty.handler.ssl.SslHandler$SslEngineType this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lio/netty/handler/ssl/SslHandler$SslEngineType;
            0    4     3  wantsDirectBuffer  Z
            0    4     4          cumulator  Lio/netty/handler/codec/ByteToMessageDecoder$Cumulator;
    MethodParameters:
                   Name  Flags
      $enum$name         
      $enum$ordinal      
      wantsDirectBuffer  
      cumulator          

  int getPacketBufferSize(io.netty.handler.ssl.SslHandler);
    descriptor: (Lio/netty/handler/ssl/SslHandler;)I
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.netty.handler.ssl.SslHandler$SslEngineType this
        start local 1 // io.netty.handler.ssl.SslHandler handler
         0: .line 342
            aload 1 /* handler */
            getfield io.netty.handler.ssl.SslHandler.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getPacketBufferSize:()I
            ireturn
        end local 1 // io.netty.handler.ssl.SslHandler handler
        end local 0 // io.netty.handler.ssl.SslHandler$SslEngineType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/netty/handler/ssl/SslHandler$SslEngineType;
            0    1     1  handler  Lio/netty/handler/ssl/SslHandler;
    MethodParameters:
         Name  Flags
      handler  

  abstract javax.net.ssl.SSLEngineResult unwrap(io.netty.handler.ssl.SslHandler, io.netty.buffer.ByteBuf, int, int, io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/handler/ssl/SslHandler;Lio/netty/buffer/ByteBuf;IILio/netty/buffer/ByteBuf;)Ljavax/net/ssl/SSLEngineResult;
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
             Name  Flags
      handler      
      in           
      readerIndex  
      len          
      out          

  abstract int calculateWrapBufferCapacity(io.netty.handler.ssl.SslHandler, int, int);
    descriptor: (Lio/netty/handler/ssl/SslHandler;II)I
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
               Name  Flags
      handler        
      pendingBytes   
      numComponents  

  abstract int calculatePendingData(io.netty.handler.ssl.SslHandler, int);
    descriptor: (Lio/netty/handler/ssl/SslHandler;I)I
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      handler  
      guess    

  abstract boolean jdkCompatibilityMode(javax.net.ssl.SSLEngine);
    descriptor: (Ljavax/net/ssl/SSLEngine;)Z
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      engine  

  public static io.netty.handler.ssl.SslHandler$SslEngineType[] values();
    descriptor: ()[Lio/netty/handler/ssl/SslHandler$SslEngineType;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=0
         0: .line 1
            getstatic io.netty.handler.ssl.SslHandler$SslEngineType.ENUM$VALUES:[Lio/netty/handler/ssl/SslHandler$SslEngineType;
            dup
            astore 0
            iconst_0
            aload 0
            arraylength
            dup
            istore 1
            anewarray io.netty.handler.ssl.SslHandler$SslEngineType
            dup
            astore 2
            iconst_0
            iload 1
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            aload 2
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static io.netty.handler.ssl.SslHandler$SslEngineType valueOf(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/netty/handler/ssl/SslHandler$SslEngineType;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 1
            ldc Lio/netty/handler/ssl/SslHandler$SslEngineType;
            aload 0
            invokestatic java.lang.Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
            checkcast io.netty.handler.ssl.SslHandler$SslEngineType
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
      Name  Flags
      name  
}
Signature: Ljava/lang/Enum<Lio/netty/handler/ssl/SslHandler$SslEngineType;>;
SourceFile: "SslHandler.java"
NestHost: io.netty.handler.ssl.SslHandler
InnerClasses:
  public abstract Cumulator = io.netty.handler.codec.ByteToMessageDecoder$Cumulator of io.netty.handler.codec.ByteToMessageDecoder
  private abstract SslEngineType = io.netty.handler.ssl.SslHandler$SslEngineType of io.netty.handler.ssl.SslHandler
  io.netty.handler.ssl.SslHandler$SslEngineType$1
  io.netty.handler.ssl.SslHandler$SslEngineType$2
  io.netty.handler.ssl.SslHandler$SslEngineType$3