final class io.netty.handler.codec.mqtt.MqttCodecUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: io.netty.handler.codec.mqtt.MqttCodecUtil
  super_class: java.lang.Object
{
  private static final char[] TOPIC_WILDCARDS;
    descriptor: [C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int MIN_CLIENT_ID_LENGTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int MAX_CLIENT_ID_LENGTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 23

  private static volatile int[] $SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttMessageType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 23
            iconst_2
            newarray 5
            dup
            iconst_0
            bipush 35
            castore
            dup
            iconst_1
            bipush 43
            castore
            putstatic io.netty.handler.codec.mqtt.MqttCodecUtil.TOPIC_WILDCARDS:[C
         1: .line 25
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static boolean isValidPublishTopicName(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // java.lang.String topicName
         0: .line 29
            getstatic io.netty.handler.codec.mqtt.MqttCodecUtil.TOPIC_WILDCARDS:[C
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: java.lang.String top int int char[]
      StackMap stack:
         1: aload 4
            iload 2
            caload
            istore 1 /* c */
        start local 1 // char c
         2: .line 30
            aload 0 /* topicName */
            iload 1 /* c */
            invokevirtual java.lang.String.indexOf:(I)I
            iflt 4
         3: .line 31
            iconst_0
            ireturn
        end local 1 // char c
         4: .line 29
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 34
            iconst_1
            ireturn
        end local 0 // java.lang.String topicName
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0  topicName  Ljava/lang/String;
            2    4     1          c  C
    MethodParameters:
           Name  Flags
      topicName  

  static boolean isValidMessageId(int);
    descriptor: (I)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int messageId
         0: .line 38
            iload 0 /* messageId */
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // int messageId
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  messageId  I
    MethodParameters:
           Name  Flags
      messageId  

  static boolean isValidClientId(io.netty.handler.codec.mqtt.MqttVersion, java.lang.String);
    descriptor: (Lio/netty/handler/codec/mqtt/MqttVersion;Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.handler.codec.mqtt.MqttVersion mqttVersion
        start local 1 // java.lang.String clientId
         0: .line 42
            aload 0 /* mqttVersion */
            getstatic io.netty.handler.codec.mqtt.MqttVersion.MQTT_3_1:Lio/netty/handler/codec/mqtt/MqttVersion;
            if_acmpne 5
         1: .line 43
            aload 1 /* clientId */
            ifnull 4
            aload 1 /* clientId */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmplt 4
         2: .line 44
            aload 1 /* clientId */
            invokevirtual java.lang.String.length:()I
            bipush 23
         3: .line 43
            if_icmpgt 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
         5: .line 46
      StackMap locals:
      StackMap stack:
            aload 0 /* mqttVersion */
            getstatic io.netty.handler.codec.mqtt.MqttVersion.MQTT_3_1_1:Lio/netty/handler/codec/mqtt/MqttVersion;
            if_acmpne 8
         6: .line 49
            aload 1 /* clientId */
            ifnull 7
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
         8: .line 51
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* mqttVersion */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is unknown mqtt version"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String clientId
        end local 0 // io.netty.handler.codec.mqtt.MqttVersion mqttVersion
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0  mqttVersion  Lio/netty/handler/codec/mqtt/MqttVersion;
            0    9     1     clientId  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      mqttVersion  
      clientId     

  static io.netty.handler.codec.mqtt.MqttFixedHeader validateFixedHeader(io.netty.handler.codec.mqtt.MqttFixedHeader);
    descriptor: (Lio/netty/handler/codec/mqtt/MqttFixedHeader;)Lio/netty/handler/codec/mqtt/MqttFixedHeader;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // io.netty.handler.codec.mqtt.MqttFixedHeader mqttFixedHeader
         0: .line 55
            invokestatic io.netty.handler.codec.mqtt.MqttCodecUtil.$SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttMessageType:()[I
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.messageType:()Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iaload
            tableswitch { // 6 - 10
                    6: 1
                    7: 3
                    8: 1
                    9: 3
                   10: 1
              default: 3
          }
         1: .line 59
      StackMap locals:
      StackMap stack:
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.qosLevel:()Lio/netty/handler/codec/mqtt/MqttQoS;
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_LEAST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
            if_acmpeq 3
         2: .line 60
            new io.netty.handler.codec.DecoderException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.messageType:()Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.name:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " message must have QoS 1"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial io.netty.handler.codec.DecoderException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 63
      StackMap locals:
      StackMap stack:
            aload 0 /* mqttFixedHeader */
            areturn
        end local 0 // io.netty.handler.codec.mqtt.MqttFixedHeader mqttFixedHeader
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0  mqttFixedHeader  Lio/netty/handler/codec/mqtt/MqttFixedHeader;
    MethodParameters:
                 Name  Flags
      mqttFixedHeader  

  static io.netty.handler.codec.mqtt.MqttFixedHeader resetUnusedFields(io.netty.handler.codec.mqtt.MqttFixedHeader);
    descriptor: (Lio/netty/handler/codec/mqtt/MqttFixedHeader;)Lio/netty/handler/codec/mqtt/MqttFixedHeader;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // io.netty.handler.codec.mqtt.MqttFixedHeader mqttFixedHeader
         0: .line 68
            invokestatic io.netty.handler.codec.mqtt.MqttCodecUtil.$SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttMessageType:()[I
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.messageType:()Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iaload
            tableswitch { // 1 - 14
                    1: 1
                    2: 1
                    3: 21
                    4: 1
                    5: 1
                    6: 12
                    7: 1
                    8: 12
                    9: 1
                   10: 12
                   11: 1
                   12: 1
                   13: 1
                   14: 1
              default: 21
          }
         1: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.isDup:()Z
            ifne 4
         2: .line 80
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.qosLevel:()Lio/netty/handler/codec/mqtt/MqttQoS;
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_MOST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
            if_acmpne 4
         3: .line 81
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.isRetain:()Z
            ifeq 11
         4: .line 82
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.mqtt.MqttFixedHeader
            dup
         5: .line 83
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.messageType:()Lio/netty/handler/codec/mqtt/MqttMessageType;
         6: .line 84
            iconst_0
         7: .line 85
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_MOST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
         8: .line 86
            iconst_0
         9: .line 87
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.remainingLength:()I
        10: .line 82
            invokespecial io.netty.handler.codec.mqtt.MqttFixedHeader.<init>:(Lio/netty/handler/codec/mqtt/MqttMessageType;ZLio/netty/handler/codec/mqtt/MqttQoS;ZI)V
            areturn
        11: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* mqttFixedHeader */
            areturn
        12: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.isRetain:()Z
            ifeq 20
        13: .line 94
            new io.netty.handler.codec.mqtt.MqttFixedHeader
            dup
        14: .line 95
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.messageType:()Lio/netty/handler/codec/mqtt/MqttMessageType;
        15: .line 96
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.isDup:()Z
        16: .line 97
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.qosLevel:()Lio/netty/handler/codec/mqtt/MqttQoS;
        17: .line 98
            iconst_0
        18: .line 99
            aload 0 /* mqttFixedHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.remainingLength:()I
        19: .line 94
            invokespecial io.netty.handler.codec.mqtt.MqttFixedHeader.<init>:(Lio/netty/handler/codec/mqtt/MqttMessageType;ZLio/netty/handler/codec/mqtt/MqttQoS;ZI)V
            areturn
        20: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* mqttFixedHeader */
            areturn
        21: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* mqttFixedHeader */
            areturn
        end local 0 // io.netty.handler.codec.mqtt.MqttFixedHeader mqttFixedHeader
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0  mqttFixedHeader  Lio/netty/handler/codec/mqtt/MqttFixedHeader;
    MethodParameters:
                 Name  Flags
      mqttFixedHeader  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.handler.codec.mqtt.MqttCodecUtil this
         0: .line 107
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.netty.handler.codec.mqtt.MqttCodecUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/codec/mqtt/MqttCodecUtil;

  static int[] $SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttMessageType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 21
            getstatic io.netty.handler.codec.mqtt.MqttCodecUtil.$SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttMessageType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.netty.handler.codec.mqtt.MqttMessageType.values:()[Lio/netty/handler/codec/mqtt/MqttMessageType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.CONNACK:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.CONNECT:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.DISCONNECT:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 14
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PINGREQ:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 12
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PINGRESP:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 13
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBACK:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iconst_4
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBCOMP:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 7
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBLISH:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iconst_3
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBREC:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iconst_5
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBREL:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 6
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.SUBACK:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 9
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.SUBSCRIBE:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 8
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.UNSUBACK:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 11
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.UNSUBSCRIBE:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 10
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            dup
            putstatic io.netty.handler.codec.mqtt.MqttCodecUtil.$SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttMessageType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
}
SourceFile: "MqttCodecUtil.java"