public class org.jruby.ext.socket.SocketUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ext.socket.SocketUtils
  super_class: java.lang.Object
{
  private static final java.util.regex.Pattern STRING_IPV4_ADDRESS_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

  private static final java.lang.String BROADCAST;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "<broadcast>"

  private static final byte[] INADDR_BROADCAST;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String ANY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "<any>"

  private static final byte[] INADDR_ANY;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 513
            ldc "((.*)\\/)?([\\.0-9]+)(:([0-9]+))?"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.jruby.ext.socket.SocketUtils.STRING_IPV4_ADDRESS_PATTERN:Ljava/util/regex/Pattern;
         1: .line 519
            iconst_4
            newarray 8
            dup
            iconst_0
            iconst_m1
            bastore
            dup
            iconst_1
            iconst_m1
            bastore
            dup
            iconst_2
            iconst_m1
            bastore
            dup
            iconst_3
            iconst_m1
            bastore
            putstatic org.jruby.ext.socket.SocketUtils.INADDR_BROADCAST:[B
         2: .line 521
            iconst_4
            newarray 8
            putstatic org.jruby.ext.socket.SocketUtils.INADDR_ANY:[B
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.socket.SocketUtils this
         0: .line 78
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.ext.socket.SocketUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/socket/SocketUtils;

  public static org.jruby.runtime.builtin.IRubyObject gethostname(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.jruby.runtime.ThreadContext context
         0: .line 80
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 83
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic java.net.InetAddress.getLocalHost:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostName:()Ljava/lang/String;
            invokestatic org.jruby.RubyString.newInternalFromJavaExternal:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
         2: areturn
         3: .line 85
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.Ruby
      StackMap stack: java.net.UnknownHostException
            pop
         4: .line 88
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_4
            newarray 8
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostName:()Ljava/lang/String;
            invokestatic org.jruby.RubyString.newInternalFromJavaExternal:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
         5: areturn
         6: .line 90
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
            pop
         7: .line 91
            aload 1 /* runtime */
            ldc "gethostname: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  context  Lorg/jruby/runtime/ThreadContext;
            1    8     1  runtime  Lorg/jruby/Ruby;
      Exception table:
        from    to  target  type
           1     2       3  Class java.net.UnknownHostException
           4     5       6  Class java.net.UnknownHostException
    MethodParameters:
         Name  Flags
      context  

  public static org.jruby.runtime.builtin.IRubyObject gethostbyaddr(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 98
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 101
            aload 2 /* runtime */
            aload 2 /* runtime */
            aload 1 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
            invokestatic org.jruby.util.io.Sockaddr.addressFromString:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getCanonicalHostName:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            astore 3 /* ret0 */
        start local 3 // org.jruby.runtime.builtin.IRubyObject ret0
         2: .line 102
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.newArray:()Lorg/jruby/RubyArray;
            astore 4 /* ret1 */
        start local 4 // org.jruby.runtime.builtin.IRubyObject ret1
         3: .line 103
            aload 2 /* runtime */
            iconst_2
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            astore 5 /* ret2 */
        start local 5 // org.jruby.runtime.builtin.IRubyObject ret2
         4: .line 104
            aload 1 /* args */
            iconst_0
            aaload
            astore 6 /* ret3 */
        start local 6 // org.jruby.runtime.builtin.IRubyObject ret3
         5: .line 106
            aload 2 /* runtime */
            aload 3 /* ret0 */
            aload 4 /* ret1 */
            aload 5 /* ret2 */
            aload 6 /* ret3 */
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 6 // org.jruby.runtime.builtin.IRubyObject ret3
        end local 5 // org.jruby.runtime.builtin.IRubyObject ret2
        end local 4 // org.jruby.runtime.builtin.IRubyObject ret1
        end local 3 // org.jruby.runtime.builtin.IRubyObject ret0
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  context  Lorg/jruby/runtime/ThreadContext;
            0    6     1     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    6     2  runtime  Lorg/jruby/Ruby;
            2    6     3     ret0  Lorg/jruby/runtime/builtin/IRubyObject;
            3    6     4     ret1  Lorg/jruby/runtime/builtin/IRubyObject;
            4    6     5     ret2  Lorg/jruby/runtime/builtin/IRubyObject;
            5    6     6     ret3  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      args     

  public static org.jruby.runtime.builtin.IRubyObject getservbyname(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 110
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 111
            aload 1 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         2: .line 112
            aload 1 /* args */
            arraylength
            iconst_1
            if_icmpne 3
            ldc "tcp"
            goto 4
      StackMap locals: org.jruby.Ruby java.lang.String
      StackMap stack:
         3: aload 1 /* args */
            iconst_1
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         4: astore 4 /* proto */
        start local 4 // java.lang.String proto
         5: .line 113
            aload 3 /* name */
            aload 4 /* proto */
            invokestatic jnr.netdb.Service.getServiceByName:(Ljava/lang/String;Ljava/lang/String;)Ljnr/netdb/Service;
            astore 5 /* service */
        start local 5 // jnr.netdb.Service service
         6: .line 116
            aload 5 /* service */
            ifnull 9
         7: .line 117
            aload 5 /* service */
            invokevirtual jnr.netdb.Service.getPort:()I
            istore 6 /* port */
        start local 6 // int port
         8: .line 119
            goto 13
        end local 6 // int port
         9: .line 123
      StackMap locals: java.lang.String jnr.netdb.Service
      StackMap stack:
            aload 3 /* name */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 6 /* port */
        start local 6 // int port
        10: .line 125
            goto 13
        end local 6 // int port
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
        11: pop
        12: .line 126
            aload 2 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "no such service "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* proto */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        start local 6 // int port
        13: .line 132
      StackMap locals: int
      StackMap stack:
            aload 2 /* runtime */
            iload 6 /* port */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 6 // int port
        end local 5 // jnr.netdb.Service service
        end local 4 // java.lang.String proto
        end local 3 // java.lang.String name
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0  context  Lorg/jruby/runtime/ThreadContext;
            0   14     1     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   14     2  runtime  Lorg/jruby/Ruby;
            2   14     3     name  Ljava/lang/String;
            5   14     4    proto  Ljava/lang/String;
            6   14     5  service  Ljnr/netdb/Service;
            8    9     6     port  I
           10   11     6     port  I
           13   14     6     port  I
      Exception table:
        from    to  target  type
           9    10      11  Class java.lang.NumberFormatException
    MethodParameters:
         Name  Flags
      context  
      args     

  public static org.jruby.runtime.builtin.IRubyObject pack_sockaddr_in(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject port
        start local 2 // org.jruby.runtime.builtin.IRubyObject host
         0: .line 137
            aload 0 /* context */
            aload 1 /* port */
            aload 2 /* host */
            invokestatic org.jruby.util.io.Sockaddr.pack_sockaddr_in:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject host
        end local 1 // org.jruby.runtime.builtin.IRubyObject port
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     port  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     host  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      port     
      host     

  public static org.jruby.RubyArray unpack_sockaddr_in(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject addr
         0: .line 142
            aload 0 /* context */
            aload 1 /* addr */
            invokestatic org.jruby.util.io.Sockaddr.unpack_sockaddr_in:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject addr
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     addr  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      addr     

  public static org.jruby.runtime.builtin.IRubyObject pack_sockaddr_un(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject filename
         0: .line 147
            aload 1 /* filename */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.asJavaString:()Ljava/lang/String;
            astore 2 /* path */
        start local 2 // java.lang.String path
         1: .line 148
            aload 0 /* context */
            aload 2 /* path */
            invokestatic org.jruby.util.io.Sockaddr.pack_sockaddr_un:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // java.lang.String path
        end local 1 // org.jruby.runtime.builtin.IRubyObject filename
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   context  Lorg/jruby/runtime/ThreadContext;
            0    2     1  filename  Lorg/jruby/runtime/builtin/IRubyObject;
            1    2     2      path  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      context   
      filename  

  public static org.jruby.runtime.builtin.IRubyObject gethostbyname(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject hostname
         0: .line 152
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 155
            aload 1 /* hostname */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            invokestatic org.jruby.ext.socket.SocketUtils.getRubyInetAddresses:(Lorg/jruby/util/ByteList;)[Ljava/net/InetAddress;
            iconst_0
            aaload
            astore 3 /* addr */
        start local 3 // java.net.InetAddress addr
         2: .line 158
            aload 2 /* runtime */
            aload 3 /* addr */
            invokevirtual java.net.InetAddress.getCanonicalHostName:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            astore 4 /* ret0 */
        start local 4 // org.jruby.runtime.builtin.IRubyObject ret0
         3: .line 159
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.newArray:()Lorg/jruby/RubyArray;
            astore 5 /* ret1 */
        start local 5 // org.jruby.runtime.builtin.IRubyObject ret1
         4: .line 160
            aload 2 /* runtime */
            iconst_2
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            astore 6 /* ret2 */
        start local 6 // org.jruby.runtime.builtin.IRubyObject ret2
         5: .line 161
            aload 2 /* runtime */
            new org.jruby.util.ByteList
            dup
            aload 3 /* addr */
            invokevirtual java.net.InetAddress.getAddress:()[B
            invokespecial org.jruby.util.ByteList.<init>:([B)V
            invokevirtual org.jruby.Ruby.newString:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 7 /* ret3 */
        start local 7 // org.jruby.runtime.builtin.IRubyObject ret3
         6: .line 162
            aload 2 /* runtime */
            aload 4 /* ret0 */
            aload 5 /* ret1 */
            aload 6 /* ret2 */
            aload 7 /* ret3 */
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
         7: areturn
        end local 7 // org.jruby.runtime.builtin.IRubyObject ret3
        end local 6 // org.jruby.runtime.builtin.IRubyObject ret2
        end local 5 // org.jruby.runtime.builtin.IRubyObject ret1
        end local 4 // org.jruby.runtime.builtin.IRubyObject ret0
        end local 3 // java.net.InetAddress addr
         8: .line 164
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby
      StackMap stack: java.net.UnknownHostException
            pop
         9: .line 165
            aload 2 /* runtime */
            ldc "gethostbyname: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject hostname
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0   context  Lorg/jruby/runtime/ThreadContext;
            0   10     1  hostname  Lorg/jruby/runtime/builtin/IRubyObject;
            1   10     2   runtime  Lorg/jruby/Ruby;
            2    8     3      addr  Ljava/net/InetAddress;
            3    8     4      ret0  Lorg/jruby/runtime/builtin/IRubyObject;
            4    8     5      ret1  Lorg/jruby/runtime/builtin/IRubyObject;
            5    8     6      ret2  Lorg/jruby/runtime/builtin/IRubyObject;
            6    8     7      ret3  Lorg/jruby/runtime/builtin/IRubyObject;
      Exception table:
        from    to  target  type
           1     7       8  Class java.net.UnknownHostException
    MethodParameters:
          Name  Flags
      context   
      hostname  

  public static org.jruby.runtime.builtin.IRubyObject getaddrinfo(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 176
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 177
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* l */
        start local 3 // java.util.List l
         2: .line 179
            aload 0 /* context */
            aload 1 /* args */
            new org.jruby.ext.socket.SocketUtils$1
            dup
            aload 2 /* runtime */
            aload 0 /* context */
            aload 3 /* l */
            invokespecial org.jruby.ext.socket.SocketUtils$1.<init>:(Lorg/jruby/Ruby;Lorg/jruby/runtime/ThreadContext;Ljava/util/List;)V
            invokestatic org.jruby.ext.socket.SocketUtils.buildAddrinfoList:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/socket/SocketUtils$AddrinfoCallback;)V
         3: .line 224
            aload 2 /* runtime */
            aload 3 /* l */
            invokevirtual org.jruby.Ruby.newArray:(Ljava/util/List;)Lorg/jruby/RubyArray;
            areturn
        end local 3 // java.util.List l
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Lorg/jruby/runtime/ThreadContext;
            0    4     1     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     2  runtime  Lorg/jruby/Ruby;
            2    4     3        l  Ljava/util/List<Lorg/jruby/runtime/builtin/IRubyObject;>;
    MethodParameters:
         Name  Flags
      context  final
      args     

  public static java.util.List<org.jruby.ext.socket.Addrinfo> getaddrinfoList(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 228
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 229
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* l */
        start local 3 // java.util.List l
         2: .line 231
            aload 0 /* context */
            aload 1 /* args */
            new org.jruby.ext.socket.SocketUtils$2
            dup
            aload 3 /* l */
            aload 2 /* runtime */
            invokespecial org.jruby.ext.socket.SocketUtils$2.<init>:(Ljava/util/List;Lorg/jruby/Ruby;)V
            invokestatic org.jruby.ext.socket.SocketUtils.buildAddrinfoList:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/socket/SocketUtils$AddrinfoCallback;)V
         3: .line 263
            aload 3 /* l */
            areturn
        end local 3 // java.util.List l
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Lorg/jruby/runtime/ThreadContext;
            0    4     1     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     2  runtime  Lorg/jruby/Ruby;
            2    4     3        l  Ljava/util/List<Lorg/jruby/ext/socket/Addrinfo;>;
    Signature: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/util/List<Lorg/jruby/ext/socket/Addrinfo;>;
    MethodParameters:
         Name  Flags
      context  
      args     

  public static void buildAddrinfoList(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], org.jruby.ext.socket.SocketUtils$AddrinfoCallback);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/socket/SocketUtils$AddrinfoCallback;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=19, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // org.jruby.ext.socket.SocketUtils$AddrinfoCallback callback
         0: .line 275
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 276
            aload 1 /* args */
            iconst_0
            aaload
            astore 4 /* host */
        start local 4 // org.jruby.runtime.builtin.IRubyObject host
         2: .line 277
            aload 1 /* args */
            iconst_1
            aaload
            astore 5 /* port */
        start local 5 // org.jruby.runtime.builtin.IRubyObject port
         3: .line 278
            aload 4 /* host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 4
            aload 4 /* host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.isEmpty:()Z
            ifne 4
            iconst_0
            goto 5
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 6 /* emptyHost */
        start local 6 // boolean emptyHost
         6: .line 280
            aload 1 /* args */
            arraylength
            iconst_2
            if_icmple 7
            aload 1 /* args */
            iconst_2
            aaload
            goto 8
      StackMap locals: int
      StackMap stack:
         7: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         8: astore 7 /* family */
        start local 7 // org.jruby.runtime.builtin.IRubyObject family
         9: .line 281
            aload 1 /* args */
            arraylength
            iconst_3
            if_icmple 10
            aload 1 /* args */
            iconst_3
            aaload
            goto 11
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        10: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
        11: astore 8 /* socktype */
        start local 8 // org.jruby.runtime.builtin.IRubyObject socktype
        12: .line 282
            aload 1 /* args */
            arraylength
            iconst_4
            if_icmple 13
            aload 1 /* args */
            iconst_4
            aaload
            pop
            goto 14
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        13: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        14: .line 283
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            arraylength
            iconst_5
            if_icmple 15
            aload 1 /* args */
            iconst_5
            aaload
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
        16: astore 9 /* flags */
        start local 9 // org.jruby.runtime.builtin.IRubyObject flags
        17: .line 284
            aload 1 /* args */
            arraylength
            bipush 6
            if_icmple 18
            aload 1 /* args */
            bipush 6
            aaload
            goto 19
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        18: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
        19: astore 10 /* reverseArg */
        start local 10 // org.jruby.runtime.builtin.IRubyObject reverseArg
        20: .line 288
            aload 0 /* context */
            aload 10 /* reverseArg */
            invokestatic org.jruby.ext.socket.RubyIPSocket.doReverseLookup:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Boolean;
            astore 11 /* reverseLookup */
        start local 11 // java.lang.Boolean reverseLookup
        21: .line 290
            aload 7 /* family */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 22
            aconst_null
            goto 23
      StackMap locals: org.jruby.runtime.builtin.IRubyObject java.lang.Boolean
      StackMap stack:
        22: aload 7 /* family */
            invokestatic org.jruby.ext.socket.SocketUtils.addressFamilyFromArg:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/AddressFamily;
      StackMap locals:
      StackMap stack: jnr.constants.platform.AddressFamily
        23: astore 12 /* addressFamily */
        start local 12 // jnr.constants.platform.AddressFamily addressFamily
        24: .line 292
            aload 8 /* socktype */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 25
            getstatic jnr.constants.platform.Sock.SOCK_STREAM:Ljnr/constants/platform/Sock;
            goto 26
      StackMap locals: jnr.constants.platform.AddressFamily
      StackMap stack:
        25: aload 8 /* socktype */
            invokestatic org.jruby.ext.socket.SocketUtils.sockFromArg:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/Sock;
      StackMap locals:
      StackMap stack: jnr.constants.platform.Sock
        26: astore 13 /* sock */
        start local 13 // jnr.constants.platform.Sock sock
        27: .line 294
            aload 5 /* port */
            instanceof org.jruby.RubyString
            ifeq 29
        28: .line 295
            aload 0 /* context */
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 5 /* port */
            aastore
            invokestatic org.jruby.ext.socket.SocketUtils.getservbyname:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* port */
        29: .line 298
      StackMap locals: jnr.constants.platform.Sock
      StackMap stack:
            aload 5 /* port */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 30
            iconst_0
            goto 31
      StackMap locals:
      StackMap stack:
        30: aload 5 /* port */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            l2i
      StackMap locals:
      StackMap stack: int
        31: istore 14 /* p */
        start local 14 // int p
        32: .line 301
            aload 9 /* flags */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 33
            iconst_0
            goto 34
      StackMap locals: int
      StackMap stack:
        33: aload 9 /* flags */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
      StackMap locals:
      StackMap stack: int
        34: istore 15 /* flag */
        start local 15 // int flag
        35: .line 303
            aconst_null
            astore 16 /* hostString */
        start local 16 // java.lang.String hostString
        36: .line 306
            iload 15 /* flag */
            iconst_1
            if_icmpne 41
            iload 6 /* emptyHost */
            ifeq 41
        37: .line 308
            aload 12 /* addressFamily */
            getstatic jnr.constants.platform.AddressFamily.AF_INET6:Ljnr/constants/platform/AddressFamily;
            if_acmpne 38
            ldc "[::]"
            goto 39
      StackMap locals: int java.lang.String
      StackMap stack:
        38: ldc "0.0.0.0"
      StackMap locals:
      StackMap stack: java.lang.String
        39: astore 16 /* hostString */
        40: .line 309
            goto 44
        41: .line 311
      StackMap locals:
      StackMap stack:
            iload 6 /* emptyHost */
            ifeq 42
            ldc "localhost"
            goto 43
      StackMap locals:
      StackMap stack:
        42: aload 4 /* host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        43: astore 16 /* hostString */
        44: .line 315
      StackMap locals:
      StackMap stack:
            aload 16 /* hostString */
            invokestatic java.net.InetAddress.getAllByName:(Ljava/lang/String;)[Ljava/net/InetAddress;
            astore 17 /* addrs */
        start local 17 // java.net.InetAddress[] addrs
        45: .line 317
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        46: goto 51
        47: .line 319
      StackMap locals: java.net.InetAddress[] int
      StackMap stack:
            aload 12 /* addressFamily */
            getstatic jnr.constants.platform.AddressFamily.AF_INET6:Ljnr/constants/platform/AddressFamily;
            if_acmpne 48
            aload 17 /* addrs */
            iload 18 /* i */
            aaload
            instanceof java.net.Inet6Address
            ifne 48
            goto 50
        48: .line 320
      StackMap locals:
      StackMap stack:
            aload 12 /* addressFamily */
            getstatic jnr.constants.platform.AddressFamily.AF_INET:Ljnr/constants/platform/AddressFamily;
            if_acmpne 49
            aload 17 /* addrs */
            iload 18 /* i */
            aaload
            instanceof java.net.Inet4Address
            ifne 49
            goto 50
        49: .line 321
      StackMap locals:
      StackMap stack:
            aload 2 /* callback */
            aload 17 /* addrs */
            iload 18 /* i */
            aaload
            iload 14 /* p */
            aload 13 /* sock */
            aload 11 /* reverseLookup */
            invokeinterface org.jruby.ext.socket.SocketUtils$AddrinfoCallback.addrinfo:(Ljava/net/InetAddress;ILjnr/constants/platform/Sock;Ljava/lang/Boolean;)V
        50: .line 317
      StackMap locals:
      StackMap stack:
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        51: iload 18 /* i */
            aload 17 /* addrs */
            arraylength
            if_icmplt 47
        end local 18 // int i
        end local 17 // java.net.InetAddress[] addrs
        52: .line 324
            goto 55
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.ext.socket.SocketUtils$AddrinfoCallback org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject java.lang.Boolean jnr.constants.platform.AddressFamily jnr.constants.platform.Sock int int java.lang.String
      StackMap stack: java.net.UnknownHostException
        53: pop
        54: .line 325
            aload 3 /* runtime */
            ldc "getaddrinfo: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        55: .line 328
      StackMap locals:
      StackMap stack:
            return
        end local 16 // java.lang.String hostString
        end local 15 // int flag
        end local 14 // int p
        end local 13 // jnr.constants.platform.Sock sock
        end local 12 // jnr.constants.platform.AddressFamily addressFamily
        end local 11 // java.lang.Boolean reverseLookup
        end local 10 // org.jruby.runtime.builtin.IRubyObject reverseArg
        end local 9 // org.jruby.runtime.builtin.IRubyObject flags
        end local 8 // org.jruby.runtime.builtin.IRubyObject socktype
        end local 7 // org.jruby.runtime.builtin.IRubyObject family
        end local 6 // boolean emptyHost
        end local 5 // org.jruby.runtime.builtin.IRubyObject port
        end local 4 // org.jruby.runtime.builtin.IRubyObject host
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.ext.socket.SocketUtils$AddrinfoCallback callback
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   56     0        context  Lorg/jruby/runtime/ThreadContext;
            0   56     1           args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   56     2       callback  Lorg/jruby/ext/socket/SocketUtils$AddrinfoCallback;
            1   56     3        runtime  Lorg/jruby/Ruby;
            2   56     4           host  Lorg/jruby/runtime/builtin/IRubyObject;
            3   56     5           port  Lorg/jruby/runtime/builtin/IRubyObject;
            6   56     6      emptyHost  Z
            9   56     7         family  Lorg/jruby/runtime/builtin/IRubyObject;
           12   56     8       socktype  Lorg/jruby/runtime/builtin/IRubyObject;
           17   56     9          flags  Lorg/jruby/runtime/builtin/IRubyObject;
           20   56    10     reverseArg  Lorg/jruby/runtime/builtin/IRubyObject;
           21   56    11  reverseLookup  Ljava/lang/Boolean;
           24   56    12  addressFamily  Ljnr/constants/platform/AddressFamily;
           27   56    13           sock  Ljnr/constants/platform/Sock;
           32   56    14              p  I
           35   56    15           flag  I
           36   56    16     hostString  Ljava/lang/String;
           45   52    17          addrs  [Ljava/net/InetAddress;
           46   52    18              i  I
      Exception table:
        from    to  target  type
          44    52      53  Class java.net.UnknownHostException
    MethodParameters:
          Name  Flags
      context   
      args      
      callback  

  public static org.jruby.runtime.builtin.IRubyObject getnameinfo(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 331
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 332
            aload 1 /* args */
            arraylength
            iconst_2
            if_icmpne 2
            aload 1 /* args */
            iconst_1
            aaload
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            goto 3
      StackMap locals: org.jruby.Ruby
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* flags */
        start local 3 // int flags
         4: .line 333
            aload 1 /* args */
            iconst_0
            aaload
            astore 4 /* arg0 */
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg0
         5: .line 336
            aload 4 /* arg0 */
            instanceof org.jruby.RubyArray
            ifeq 15
         6: .line 337
            aload 4 /* arg0 */
            checkcast org.jruby.RubyArray
            astore 7 /* ary */
        start local 7 // org.jruby.RubyArray ary
         7: .line 338
            aload 7 /* ary */
            invokevirtual org.jruby.RubyArray.size:()I
            istore 8 /* len */
        start local 8 // int len
         8: .line 340
            iload 8 /* len */
            iconst_3
            if_icmplt 9
            iload 8 /* len */
            iconst_4
            if_icmple 10
         9: .line 341
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject top top org.jruby.RubyArray int
      StackMap stack:
            aload 2 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "array size should be 3 or 4, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 8 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " given"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        10: .line 345
      StackMap locals:
      StackMap stack:
            aload 7 /* ary */
            iconst_1
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 6 /* port */
        start local 6 // java.lang.String port
        11: .line 346
            iload 8 /* len */
            iconst_3
            if_icmpne 12
            aload 7 /* ary */
            iconst_2
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            goto 13
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject top java.lang.String org.jruby.RubyArray int
      StackMap stack:
        12: aload 7 /* ary */
            iconst_3
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        13: astore 5 /* host */
        end local 8 // int len
        end local 7 // org.jruby.RubyArray ary
        start local 5 // java.lang.String host
        14: .line 348
            goto 37
        end local 6 // java.lang.String port
        end local 5 // java.lang.String host
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        15: aload 4 /* arg0 */
            instanceof org.jruby.RubyString
            ifeq 36
        16: .line 349
            aload 4 /* arg0 */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
            astore 7 /* arg */
        start local 7 // java.lang.String arg
        17: .line 350
            getstatic org.jruby.ext.socket.SocketUtils.STRING_IPV4_ADDRESS_PATTERN:Ljava/util/regex/Pattern;
            aload 7 /* arg */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 8 /* m */
        start local 8 // java.util.regex.Matcher m
        18: .line 352
            aload 8 /* m */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifne 25
        19: .line 353
            aload 0 /* context */
            aload 4 /* arg0 */
            invokestatic org.jruby.util.io.Sockaddr.unpack_sockaddr_in:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            astore 9 /* portAndHost */
        start local 9 // org.jruby.RubyArray portAndHost
        20: .line 355
            aload 9 /* portAndHost */
            invokevirtual org.jruby.RubyArray.size:()I
            iconst_2
            if_icmpeq 22
        21: .line 356
            aload 2 /* runtime */
            ldc "invalid address representation"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        22: .line 359
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject top top java.lang.String java.util.regex.Matcher org.jruby.RubyArray
      StackMap stack:
            aload 9 /* portAndHost */
            iconst_0
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 6 /* port */
        start local 6 // java.lang.String port
        23: .line 360
            aload 9 /* portAndHost */
            iconst_1
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 5 /* host */
        end local 9 // org.jruby.RubyArray portAndHost
        start local 5 // java.lang.String host
        24: .line 362
            goto 37
        end local 6 // java.lang.String port
        end local 5 // java.lang.String host
      StackMap locals:
      StackMap stack:
        25: aload 8 /* m */
            iconst_3
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            dup
            astore 5 /* host */
        start local 5 // java.lang.String host
        26: ifnull 29
            aload 5 /* host */
            invokevirtual java.lang.String.length:()I
            ifeq 29
        27: .line 363
            aload 8 /* m */
            iconst_5
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            dup
            astore 6 /* port */
        start local 6 // java.lang.String port
        28: ifnull 29
            aload 6 /* port */
            invokevirtual java.lang.String.length:()I
            ifne 30
        end local 6 // java.lang.String port
        29: .line 365
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject java.lang.String top java.lang.String java.util.regex.Matcher
      StackMap stack:
            aload 2 /* runtime */
            ldc "invalid address string"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        start local 6 // java.lang.String port
        30: .line 371
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject java.lang.String java.lang.String java.lang.String java.util.regex.Matcher
      StackMap stack:
            aload 5 /* host */
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            astore 9 /* ipv6_addr */
        start local 9 // java.net.InetAddress ipv6_addr
        31: .line 373
            aload 9 /* ipv6_addr */
            instanceof java.net.Inet6Address
            ifeq 37
        32: .line 374
            aload 9 /* ipv6_addr */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            astore 5 /* host */
        end local 9 // java.net.InetAddress ipv6_addr
        33: .line 377
            goto 37
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        34: pop
        35: .line 378
            aload 2 /* runtime */
            ldc "invalid address string"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 8 // java.util.regex.Matcher m
        end local 7 // java.lang.String arg
        end local 6 // java.lang.String port
        end local 5 // java.lang.String host
        36: .line 384
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* runtime */
            ldc "invalid args"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        start local 5 // java.lang.String host
        start local 6 // java.lang.String port
        37: .line 391
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 5 /* host */
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            astore 7 /* addr */
        start local 7 // java.net.InetAddress addr
        38: .line 393
            goto 41
        end local 7 // java.net.InetAddress addr
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        39: pop
        40: .line 394
            aload 2 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "unknown host: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        start local 7 // java.net.InetAddress addr
        41: .line 398
      StackMap locals: java.net.InetAddress
      StackMap stack:
            iload 3 /* flags */
            getstatic jnr.constants.platform.NameInfo.NI_NUMERICHOST:Ljnr/constants/platform/NameInfo;
            invokevirtual jnr.constants.platform.NameInfo.intValue:()I
            iand
            ifne 44
        42: .line 399
            aload 7 /* addr */
            invokevirtual java.net.InetAddress.getCanonicalHostName:()Ljava/lang/String;
            astore 5 /* host */
        43: .line 401
            goto 45
        44: .line 402
      StackMap locals:
      StackMap stack:
            aload 7 /* addr */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            astore 5 /* host */
        45: .line 406
      StackMap locals:
      StackMap stack:
            aload 6 /* port */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            aconst_null
            invokestatic jnr.netdb.Service.getServiceByPort:(ILjava/lang/String;)Ljnr/netdb/Service;
            astore 8 /* serv */
        start local 8 // jnr.netdb.Service serv
        46: .line 408
            aload 8 /* serv */
            ifnull 51
        47: .line 410
            iload 3 /* flags */
            getstatic jnr.constants.platform.NameInfo.NI_NUMERICSERV:Ljnr/constants/platform/NameInfo;
            invokevirtual jnr.constants.platform.NameInfo.intValue:()I
            iand
            ifne 50
        48: .line 411
            aload 8 /* serv */
            invokevirtual jnr.netdb.Service.getName:()Ljava/lang/String;
            astore 6 /* port */
        49: .line 413
            goto 51
        50: .line 414
      StackMap locals: jnr.netdb.Service
      StackMap stack:
            aload 8 /* serv */
            invokevirtual jnr.netdb.Service.getPort:()I
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            astore 6 /* port */
        51: .line 420
      StackMap locals:
      StackMap stack:
            aload 2 /* runtime */
            aload 2 /* runtime */
            aload 5 /* host */
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            aload 2 /* runtime */
            aload 6 /* port */
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            invokevirtual org.jruby.Ruby.newArray:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 8 // jnr.netdb.Service serv
        end local 7 // java.net.InetAddress addr
        end local 6 // java.lang.String port
        end local 5 // java.lang.String host
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 3 // int flags
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   52     0      context  Lorg/jruby/runtime/ThreadContext;
            0   52     1         args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   52     2      runtime  Lorg/jruby/Ruby;
            4   52     3        flags  I
            5   52     4         arg0  Lorg/jruby/runtime/builtin/IRubyObject;
           14   15     5         host  Ljava/lang/String;
           24   25     5         host  Ljava/lang/String;
           26   36     5         host  Ljava/lang/String;
           37   52     5         host  Ljava/lang/String;
           11   15     6         port  Ljava/lang/String;
           23   25     6         port  Ljava/lang/String;
           28   29     6         port  Ljava/lang/String;
           30   36     6         port  Ljava/lang/String;
           37   52     6         port  Ljava/lang/String;
            7   14     7          ary  Lorg/jruby/RubyArray;
            8   14     8          len  I
           17   36     7          arg  Ljava/lang/String;
           18   36     8            m  Ljava/util/regex/Matcher;
           20   24     9  portAndHost  Lorg/jruby/RubyArray;
           31   33     9    ipv6_addr  Ljava/net/InetAddress;
           38   39     7         addr  Ljava/net/InetAddress;
           41   52     7         addr  Ljava/net/InetAddress;
           46   52     8         serv  Ljnr/netdb/Service;
      Exception table:
        from    to  target  type
          30    33      34  Class java.net.UnknownHostException
          37    38      39  Class java.net.UnknownHostException
    MethodParameters:
         Name  Flags
      context  
      args     

  public static org.jruby.runtime.builtin.IRubyObject ip_address_list(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // org.jruby.runtime.ThreadContext context
         0: .line 425
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 428
            aload 1 /* runtime */
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;)Lorg/jruby/RubyArray;
            astore 2 /* list */
        start local 2 // org.jruby.RubyArray list
         2: .line 429
            aload 1 /* runtime */
            ldc "Addrinfo"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            astore 3 /* addrInfoCls */
        start local 3 // org.jruby.RubyClass addrInfoCls
         3: .line 431
            invokestatic java.net.NetworkInterface.getNetworkInterfaces:()Ljava/util/Enumeration;
            astore 4 /* networkIfcs */
        start local 4 // java.util.Enumeration networkIfcs
         4: goto 9
         5: .line 432
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.RubyArray org.jruby.RubyClass java.util.Enumeration
      StackMap stack:
            aload 4 /* networkIfcs */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.net.NetworkInterface
            invokevirtual java.net.NetworkInterface.getInetAddresses:()Ljava/util/Enumeration;
            astore 5 /* addresses */
        start local 5 // java.util.Enumeration addresses
         6: goto 8
         7: .line 433
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 2 /* list */
            new org.jruby.ext.socket.Addrinfo
            dup
            aload 1 /* runtime */
            aload 3 /* addrInfoCls */
            aload 5 /* addresses */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokespecial org.jruby.ext.socket.Addrinfo.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/net/InetAddress;)V
            invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            pop
         8: .line 432
      StackMap locals:
      StackMap stack:
            aload 5 /* addresses */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 7
        end local 5 // java.util.Enumeration addresses
         9: .line 431
      StackMap locals:
      StackMap stack:
            aload 4 /* networkIfcs */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 5
        end local 4 // java.util.Enumeration networkIfcs
        10: .line 437
            aload 2 /* list */
        11: areturn
        end local 3 // org.jruby.RubyClass addrInfoCls
        end local 2 // org.jruby.RubyArray list
        12: .line 438
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.Ruby
      StackMap stack: java.net.SocketException
            astore 2 /* se */
        start local 2 // java.net.SocketException se
        13: .line 439
            aload 1 /* runtime */
            aload 2 /* se */
            invokevirtual java.net.SocketException.getLocalizedMessage:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.net.SocketException se
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0      context  Lorg/jruby/runtime/ThreadContext;
            1   14     1      runtime  Lorg/jruby/Ruby;
            2   12     2         list  Lorg/jruby/RubyArray;
            3   12     3  addrInfoCls  Lorg/jruby/RubyClass;
            4   10     4  networkIfcs  Ljava/util/Enumeration<Ljava/net/NetworkInterface;>;
            6    9     5    addresses  Ljava/util/Enumeration<Ljava/net/InetAddress;>;
           13   14     2           se  Ljava/net/SocketException;
      Exception table:
        from    to  target  type
           1    11      12  Class java.net.SocketException
    MethodParameters:
         Name  Flags
      context  

  public static java.net.InetAddress[] getRubyInetAddresses(org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/util/ByteList;)[Ljava/net/InetAddress;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.jruby.util.ByteList address
         0: .line 446
            aload 0 /* address */
            invokestatic org.jruby.runtime.Helpers.byteListToString:(Lorg/jruby/util/ByteList;)Ljava/lang/String;
            astore 1 /* addressString */
        start local 1 // java.lang.String addressString
         1: .line 448
            aload 1 /* addressString */
            ldc "<broadcast>"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 449
            iconst_1
            anewarray java.net.InetAddress
            dup
            iconst_0
            getstatic org.jruby.ext.socket.SocketUtils.INADDR_BROADCAST:[B
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            aastore
            areturn
         3: .line 451
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* addressString */
            ldc "<any>"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 452
            iconst_1
            anewarray java.net.InetAddress
            dup
            iconst_0
            getstatic org.jruby.ext.socket.SocketUtils.INADDR_ANY:[B
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            aastore
            areturn
         5: .line 455
      StackMap locals:
      StackMap stack:
            aload 1 /* addressString */
            invokestatic java.net.InetAddress.getAllByName:(Ljava/lang/String;)[Ljava/net/InetAddress;
            areturn
        end local 1 // java.lang.String addressString
        end local 0 // org.jruby.util.ByteList address
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0        address  Lorg/jruby/util/ByteList;
            1    6     1  addressString  Ljava/lang/String;
    Exceptions:
      throws java.net.UnknownHostException
    MethodParameters:
         Name  Flags
      address  

  public static org.jruby.runtime.builtin.IRubyObject getaddress(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject hostname
         0: .line 462
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* hostname */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokestatic org.jruby.RubyString.newInternalFromJavaExternal:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
         1: areturn
         2: .line 463
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
            pop
         3: .line 464
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "getaddress: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.jruby.runtime.builtin.IRubyObject hostname
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   context  Lorg/jruby/runtime/ThreadContext;
            0    4     1  hostname  Lorg/jruby/runtime/builtin/IRubyObject;
      Exception table:
        from    to  target  type
           0     1       2  Class java.net.UnknownHostException
    MethodParameters:
          Name  Flags
      context   
      hostname  

  public static java.lang.RuntimeException sockerr(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String msg
         0: .line 469
            aload 0 /* runtime */
            aload 0 /* runtime */
            ldc "SocketError"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            aload 1 /* msg */
            invokestatic org.jruby.exceptions.RaiseException.from:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            areturn
        end local 1 // java.lang.String msg
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1      msg  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      runtime  
      msg      

  public static java.lang.RuntimeException sockerr_with_trace(org.jruby.Ruby, java.lang.String, java.lang.StackTraceElement[]);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;[Ljava/lang/StackTraceElement;)Ljava/lang/RuntimeException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String msg
        start local 2 // java.lang.StackTraceElement[] trace
         0: .line 473
            ldc "line.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* eol */
        start local 3 // java.lang.String eol
         1: .line 474
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* sb */
        start local 4 // java.lang.StringBuilder sb
         2: .line 475
            aload 4 /* sb */
            aload 1 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 476
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: aload 2 /* trace */
            arraylength
            istore 6 /* il */
        start local 6 // int il
         5: goto 8
         6: .line 477
      StackMap locals: org.jruby.Ruby java.lang.String java.lang.StackTraceElement[] java.lang.String java.lang.StringBuilder int int
      StackMap stack:
            aload 4 /* sb */
            aload 3 /* eol */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* trace */
            iload 5 /* i */
            aaload
            invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 476
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            iload 6 /* il */
            if_icmplt 6
        end local 6 // int il
        end local 5 // int i
         9: .line 479
            aload 0 /* runtime */
            aload 0 /* runtime */
            ldc "SocketError"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            aload 4 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jruby.exceptions.RaiseException.from:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            areturn
        end local 4 // java.lang.StringBuilder sb
        end local 3 // java.lang.String eol
        end local 2 // java.lang.StackTraceElement[] trace
        end local 1 // java.lang.String msg
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0  runtime  Lorg/jruby/Ruby;
            0   10     1      msg  Ljava/lang/String;
            0   10     2    trace  [Ljava/lang/StackTraceElement;
            1   10     3      eol  Ljava/lang/String;
            2   10     4       sb  Ljava/lang/StringBuilder;
            4    9     5        i  I
            5    9     6       il  I
    MethodParameters:
         Name  Flags
      runtime  
      msg      
      trace    

  public static int getPortFrom(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject _port
         0: .line 484
            aload 1 /* _port */
            instanceof org.jruby.RubyInteger
            ifeq 3
         1: .line 485
            aload 1 /* _port */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 2 /* port */
        start local 2 // int port
         2: .line 486
            goto 9
        end local 2 // int port
         3: .line 487
      StackMap locals:
      StackMap stack:
            aload 1 /* _port */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 3 /* portString */
        start local 3 // org.jruby.runtime.builtin.IRubyObject portString
         4: .line 488
            aload 3 /* portString */
            ldc "to_i"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:(Ljava/lang/String;)Lorg/jruby/RubyInteger;
            astore 4 /* portInteger */
        start local 4 // org.jruby.runtime.builtin.IRubyObject portInteger
         5: .line 489
            aload 4 /* portInteger */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 2 /* port */
        start local 2 // int port
         6: .line 491
            iload 2 /* port */
            ifgt 9
         7: .line 493
            aload 0 /* context */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 3 /* portString */
            aastore
         8: .line 492
            invokestatic org.jruby.ext.socket.RubySocket.getservbyname:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 2 /* port */
        end local 4 // org.jruby.runtime.builtin.IRubyObject portInteger
        end local 3 // org.jruby.runtime.builtin.IRubyObject portString
         9: .line 497
      StackMap locals: int
      StackMap stack:
            iload 2 /* port */
            ireturn
        end local 2 // int port
        end local 1 // org.jruby.runtime.builtin.IRubyObject _port
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0      context  Lorg/jruby/runtime/ThreadContext;
            0   10     1        _port  Lorg/jruby/runtime/builtin/IRubyObject;
            2    3     2         port  I
            6   10     2         port  I
            4    9     3   portString  Lorg/jruby/runtime/builtin/IRubyObject;
            5    9     4  portInteger  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      _port    

  private static java.lang.String getHostAddress(org.jruby.runtime.ThreadContext, java.net.InetAddress, java.lang.Boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/net/InetAddress;Ljava/lang/Boolean;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // java.net.InetAddress addr
        start local 2 // java.lang.Boolean reverse
         0: .line 502
            aload 2 /* reverse */
            ifnonnull 6
         1: .line 503
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.isDoNotReverseLookupEnabled:()Z
            ifeq 3
         2: .line 504
            aload 1 /* addr */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 1 /* addr */
            invokevirtual java.net.InetAddress.getCanonicalHostName:()Ljava/lang/String;
         4: .line 503
      StackMap locals:
      StackMap stack: java.lang.String
            astore 3 /* ret */
        start local 3 // java.lang.String ret
         5: .line 505
            goto 10
        end local 3 // java.lang.String ret
      StackMap locals:
      StackMap stack:
         6: aload 2 /* reverse */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 9
         7: .line 506
            aload 1 /* addr */
            invokevirtual java.net.InetAddress.getCanonicalHostName:()Ljava/lang/String;
            astore 3 /* ret */
        start local 3 // java.lang.String ret
         8: .line 507
            goto 10
        end local 3 // java.lang.String ret
         9: .line 508
      StackMap locals:
      StackMap stack:
            aload 1 /* addr */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            astore 3 /* ret */
        start local 3 // java.lang.String ret
        10: .line 510
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* ret */
            areturn
        end local 3 // java.lang.String ret
        end local 2 // java.lang.Boolean reverse
        end local 1 // java.net.InetAddress addr
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0  context  Lorg/jruby/runtime/ThreadContext;
            0   11     1     addr  Ljava/net/InetAddress;
            0   11     2  reverse  Ljava/lang/Boolean;
            5    6     3      ret  Ljava/lang/String;
            8    9     3      ret  Ljava/lang/String;
           10   11     3      ret  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      context  
      addr     
      reverse  

  static jnr.constants.platform.AddressFamily addressFamilyFromArg(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/AddressFamily;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject domain
         0: .line 525
            aload 0 /* domain */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* domain */
            invokestatic org.jruby.util.TypeConverter.checkStringType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 1 /* maybeString */
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeString
         1: .line 527
            aload 1 /* maybeString */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 3
         2: .line 528
            aload 1 /* maybeString */
            astore 0 /* domain */
         3: .line 532
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* domain */
            instanceof org.jruby.RubyString
            ifne 4
            aload 0 /* domain */
            instanceof org.jruby.RubySymbol
            ifeq 12
         4: .line 533
      StackMap locals:
      StackMap stack:
            aload 0 /* domain */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 2 /* domainString */
        start local 2 // java.lang.String domainString
         5: .line 534
            aload 2 /* domainString */
            ldc "AF_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
            aload 2 /* domainString */
            invokestatic jnr.constants.platform.AddressFamily.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/AddressFamily;
         6: areturn
         7: .line 535
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* domainString */
            ldc "PF_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
         8: .line 536
            aload 2 /* domainString */
            invokestatic jnr.constants.platform.ProtocolFamily.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/ProtocolFamily;
            invokevirtual jnr.constants.platform.ProtocolFamily.intValue:()I
            i2l
            invokestatic jnr.constants.platform.AddressFamily.valueOf:(J)Ljnr/constants/platform/AddressFamily;
         9: areturn
        10: .line 537
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "AF_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* domainString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jnr.constants.platform.AddressFamily.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/AddressFamily;
        11: areturn
        end local 2 // java.lang.String domainString
        12: .line 540
      StackMap locals:
      StackMap stack:
            aload 0 /* domain */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 2 /* domainInt */
        start local 2 // int domainInt
        13: .line 541
            iload 2 /* domainInt */
            i2l
            invokestatic jnr.constants.platform.AddressFamily.valueOf:(J)Ljnr/constants/platform/AddressFamily;
        14: areturn
        end local 2 // int domainInt
        15: .line 542
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
        16: .line 543
            aload 0 /* domain */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid address family: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* domain */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeString
        end local 0 // org.jruby.runtime.builtin.IRubyObject domain
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0        domain  Lorg/jruby/runtime/builtin/IRubyObject;
            1   17     1   maybeString  Lorg/jruby/runtime/builtin/IRubyObject;
            5   12     2  domainString  Ljava/lang/String;
           13   15     2     domainInt  I
      Exception table:
        from    to  target  type
           3     6      15  Class java.lang.IllegalArgumentException
           7     9      15  Class java.lang.IllegalArgumentException
          10    11      15  Class java.lang.IllegalArgumentException
          12    14      15  Class java.lang.IllegalArgumentException
    MethodParameters:
        Name  Flags
      domain  

  static jnr.constants.platform.Sock sockFromArg(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/Sock;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject type
         0: .line 548
            aload 0 /* type */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* type */
            invokestatic org.jruby.util.TypeConverter.checkStringType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 1 /* maybeString */
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeString
         1: .line 550
            aload 1 /* maybeString */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 3
         2: .line 551
            aload 1 /* maybeString */
            astore 0 /* type */
         3: .line 555
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* type */
            instanceof org.jruby.RubyString
            ifne 4
            aload 0 /* type */
            instanceof org.jruby.RubySymbol
            ifeq 9
         4: .line 556
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 2 /* typeString */
        start local 2 // java.lang.String typeString
         5: .line 557
            aload 2 /* typeString */
            ldc "SOCK_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
            aload 2 /* typeString */
            invokevirtual java.lang.String.toString:()Ljava/lang/String;
            invokestatic jnr.constants.platform.Sock.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/Sock;
         6: areturn
         7: .line 558
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "SOCK_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* typeString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jnr.constants.platform.Sock.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/Sock;
         8: areturn
        end local 2 // java.lang.String typeString
         9: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 2 /* typeInt */
        start local 2 // int typeInt
        10: .line 562
            iload 2 /* typeInt */
            i2l
            invokestatic jnr.constants.platform.Sock.valueOf:(J)Ljnr/constants/platform/Sock;
        11: areturn
        end local 2 // int typeInt
        12: .line 563
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
        13: .line 564
            aload 0 /* type */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid socket type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeString
        end local 0 // org.jruby.runtime.builtin.IRubyObject type
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         type  Lorg/jruby/runtime/builtin/IRubyObject;
            1   14     1  maybeString  Lorg/jruby/runtime/builtin/IRubyObject;
            5    9     2   typeString  Ljava/lang/String;
           10   12     2      typeInt  I
      Exception table:
        from    to  target  type
           3     6      12  Class java.lang.IllegalArgumentException
           7     8      12  Class java.lang.IllegalArgumentException
           9    11      12  Class java.lang.IllegalArgumentException
    MethodParameters:
      Name  Flags
      type  

  static jnr.constants.platform.ProtocolFamily protocolFamilyFromArg(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/ProtocolFamily;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject protocol
         0: .line 570
            aload 0 /* protocol */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* protocol */
            invokestatic org.jruby.util.TypeConverter.checkStringType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 1 /* maybeString */
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeString
         1: .line 572
            aload 1 /* maybeString */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 3
         2: .line 573
            aload 1 /* maybeString */
            astore 0 /* protocol */
         3: .line 577
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* protocol */
            instanceof org.jruby.RubyString
            ifne 4
            aload 0 /* protocol */
            instanceof org.jruby.RubySymbol
            ifeq 11
         4: .line 578
      StackMap locals:
      StackMap stack:
            aload 0 /* protocol */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 2 /* protocolString */
        start local 2 // java.lang.String protocolString
         5: .line 579
            aload 2 /* protocolString */
            ldc "PF_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
            aload 2 /* protocolString */
            invokestatic jnr.constants.platform.ProtocolFamily.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/ProtocolFamily;
         6: areturn
         7: .line 580
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* protocolString */
            ldc "AF_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
            aload 2 /* protocolString */
            invokestatic jnr.constants.platform.AddressFamily.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/AddressFamily;
            invokevirtual jnr.constants.platform.AddressFamily.intValue:()I
            i2l
            invokestatic jnr.constants.platform.ProtocolFamily.valueOf:(J)Ljnr/constants/platform/ProtocolFamily;
         8: areturn
         9: .line 581
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "PF_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* protocolString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jnr.constants.platform.ProtocolFamily.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/ProtocolFamily;
        10: areturn
        end local 2 // java.lang.String protocolString
        11: .line 584
      StackMap locals:
      StackMap stack:
            aload 0 /* protocol */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 2 /* protocolInt */
        start local 2 // int protocolInt
        12: .line 585
            iload 2 /* protocolInt */
            i2l
            invokestatic jnr.constants.platform.ProtocolFamily.valueOf:(J)Ljnr/constants/platform/ProtocolFamily;
        13: areturn
        end local 2 // int protocolInt
        14: .line 586
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
        15: .line 587
            aload 0 /* protocol */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid protocol family: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* protocol */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeString
        end local 0 // org.jruby.runtime.builtin.IRubyObject protocol
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0        protocol  Lorg/jruby/runtime/builtin/IRubyObject;
            1   16     1     maybeString  Lorg/jruby/runtime/builtin/IRubyObject;
            5   11     2  protocolString  Ljava/lang/String;
           12   14     2     protocolInt  I
      Exception table:
        from    to  target  type
           3     6      14  Class java.lang.IllegalArgumentException
           7     8      14  Class java.lang.IllegalArgumentException
           9    10      14  Class java.lang.IllegalArgumentException
          11    13      14  Class java.lang.IllegalArgumentException
    MethodParameters:
          Name  Flags
      protocol  

  static jnr.netdb.Protocol protocolFromArg(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/netdb/Protocol;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject protocol
         0: .line 592
            aload 0 /* protocol */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* protocol */
            invokestatic org.jruby.util.TypeConverter.checkStringType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 1 /* maybeString */
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeString
         1: .line 594
            aload 1 /* maybeString */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 3
         2: .line 595
            aload 1 /* maybeString */
            astore 0 /* protocol */
         3: .line 599
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* protocol */
            instanceof org.jruby.RubyString
            ifne 4
            aload 0 /* protocol */
            instanceof org.jruby.RubySymbol
            ifeq 7
         4: .line 600
      StackMap locals:
      StackMap stack:
            aload 0 /* protocol */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 2 /* protocolString */
        start local 2 // java.lang.String protocolString
         5: .line 601
            aload 2 /* protocolString */
            invokestatic jnr.netdb.Protocol.getProtocolByName:(Ljava/lang/String;)Ljnr/netdb/Protocol;
         6: areturn
        end local 2 // java.lang.String protocolString
         7: .line 604
      StackMap locals:
      StackMap stack:
            aload 0 /* protocol */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 2 /* protocolInt */
        start local 2 // int protocolInt
         8: .line 605
            iload 2 /* protocolInt */
            invokestatic jnr.netdb.Protocol.getProtocolByNumber:(I)Ljnr/netdb/Protocol;
         9: areturn
        end local 2 // int protocolInt
        10: .line 606
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
        11: .line 607
            aload 0 /* protocol */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid protocol: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* protocol */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeString
        end local 0 // org.jruby.runtime.builtin.IRubyObject protocol
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0        protocol  Lorg/jruby/runtime/builtin/IRubyObject;
            1   12     1     maybeString  Lorg/jruby/runtime/builtin/IRubyObject;
            5    7     2  protocolString  Ljava/lang/String;
            8   10     2     protocolInt  I
      Exception table:
        from    to  target  type
           3     6      10  Class java.lang.IllegalArgumentException
           7     9      10  Class java.lang.IllegalArgumentException
    MethodParameters:
          Name  Flags
      protocol  

  static jnr.constants.platform.SocketLevel levelFromArg(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/SocketLevel;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject level
         0: .line 612
            aload 0 /* level */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* level */
            invokestatic org.jruby.util.TypeConverter.checkStringType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 1 /* maybeString */
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeString
         1: .line 614
            aload 1 /* maybeString */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 3
         2: .line 615
            aload 1 /* maybeString */
            astore 0 /* level */
         3: .line 619
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* level */
            instanceof org.jruby.RubyString
            ifne 4
            aload 0 /* level */
            instanceof org.jruby.RubySymbol
            ifeq 9
         4: .line 620
      StackMap locals:
      StackMap stack:
            aload 0 /* level */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 2 /* levelString */
        start local 2 // java.lang.String levelString
         5: .line 621
            aload 2 /* levelString */
            ldc "SOL_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
            aload 2 /* levelString */
            invokestatic jnr.constants.platform.SocketLevel.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/SocketLevel;
         6: areturn
         7: .line 622
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "SOL_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* levelString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jnr.constants.platform.SocketLevel.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/SocketLevel;
         8: areturn
        end local 2 // java.lang.String levelString
         9: .line 625
      StackMap locals:
      StackMap stack:
            aload 0 /* level */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            i2l
            invokestatic jnr.constants.platform.SocketLevel.valueOf:(J)Ljnr/constants/platform/SocketLevel;
        10: areturn
        11: .line 626
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
        12: .line 627
            aload 0 /* level */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid socket level: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* level */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeString
        end local 0 // org.jruby.runtime.builtin.IRubyObject level
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0        level  Lorg/jruby/runtime/builtin/IRubyObject;
            1   13     1  maybeString  Lorg/jruby/runtime/builtin/IRubyObject;
            5    9     2  levelString  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     6      11  Class java.lang.IllegalArgumentException
           7     8      11  Class java.lang.IllegalArgumentException
           9    10      11  Class java.lang.IllegalArgumentException
    MethodParameters:
       Name  Flags
      level  

  static jnr.constants.platform.SocketOption optionFromArg(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/SocketOption;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject opt
         0: .line 632
            aload 0 /* opt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* opt */
            invokestatic org.jruby.util.TypeConverter.checkStringType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 1 /* maybeString */
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeString
         1: .line 634
            aload 1 /* maybeString */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 3
         2: .line 635
            aload 1 /* maybeString */
            astore 0 /* opt */
         3: .line 639
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* opt */
            instanceof org.jruby.RubyString
            ifne 4
            aload 0 /* opt */
            instanceof org.jruby.RubySymbol
            ifeq 9
         4: .line 640
      StackMap locals:
      StackMap stack:
            aload 0 /* opt */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 2 /* optString */
        start local 2 // java.lang.String optString
         5: .line 641
            aload 2 /* optString */
            ldc "SO_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
            aload 2 /* optString */
            invokestatic jnr.constants.platform.SocketOption.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/SocketOption;
         6: areturn
         7: .line 642
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "SO_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* optString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jnr.constants.platform.SocketOption.valueOf:(Ljava/lang/String;)Ljnr/constants/platform/SocketOption;
         8: areturn
        end local 2 // java.lang.String optString
         9: .line 645
      StackMap locals:
      StackMap stack:
            aload 0 /* opt */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            i2l
            invokestatic jnr.constants.platform.SocketOption.valueOf:(J)Ljnr/constants/platform/SocketOption;
        10: areturn
        11: .line 646
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
        12: .line 647
            aload 0 /* opt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid socket option: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* opt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeString
        end local 0 // org.jruby.runtime.builtin.IRubyObject opt
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0          opt  Lorg/jruby/runtime/builtin/IRubyObject;
            1   13     1  maybeString  Lorg/jruby/runtime/builtin/IRubyObject;
            5    9     2    optString  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     6      11  Class java.lang.IllegalArgumentException
           7     8      11  Class java.lang.IllegalArgumentException
           9    10      11  Class java.lang.IllegalArgumentException
    MethodParameters:
      Name  Flags
      opt   

  public static int portToInt(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject port
         0: .line 652
            aload 0 /* port */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 1
            iconst_0
            ireturn
         1: .line 654
      StackMap locals:
      StackMap stack:
            aload 0 /* port */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         2: .line 656
            aload 1 /* runtime */
            aload 0 /* port */
            invokestatic org.jruby.util.TypeConverter.checkStringType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* maybeStr */
        start local 2 // org.jruby.runtime.builtin.IRubyObject maybeStr
         3: .line 657
            aload 2 /* maybeStr */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 8
         4: .line 658
            aload 2 /* maybeStr */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 3 /* portStr */
        start local 3 // org.jruby.RubyString portStr
         5: .line 659
            aload 3 /* portStr */
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
            aconst_null
            invokestatic jnr.netdb.Service.getServiceByName:(Ljava/lang/String;Ljava/lang/String;)Ljnr/netdb/Service;
            astore 4 /* serv */
        start local 4 // jnr.netdb.Service serv
         6: .line 661
            aload 4 /* serv */
            ifnull 7
            aload 4 /* serv */
            invokevirtual jnr.netdb.Service.getPort:()I
            ireturn
         7: .line 663
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString jnr.netdb.Service
      StackMap stack:
            aload 3 /* portStr */
            invokevirtual org.jruby.RubyString.to_i:()Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            ireturn
        end local 4 // jnr.netdb.Service serv
        end local 3 // org.jruby.RubyString portStr
         8: .line 665
      StackMap locals:
      StackMap stack:
            aload 0 /* port */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            ireturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject maybeStr
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.runtime.builtin.IRubyObject port
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      port  Lorg/jruby/runtime/builtin/IRubyObject;
            2    9     1   runtime  Lorg/jruby/Ruby;
            3    9     2  maybeStr  Lorg/jruby/runtime/builtin/IRubyObject;
            5    8     3   portStr  Lorg/jruby/RubyString;
            6    8     4      serv  Ljnr/netdb/Service;
    MethodParameters:
      Name  Flags
      port  
}
SourceFile: "SocketUtils.java"
NestMembers:
  org.jruby.ext.socket.SocketUtils$1  org.jruby.ext.socket.SocketUtils$2  org.jruby.ext.socket.SocketUtils$AddrinfoCallback
InnerClasses:
  org.jruby.ext.socket.SocketUtils$1
  org.jruby.ext.socket.SocketUtils$2
  abstract AddrinfoCallback = org.jruby.ext.socket.SocketUtils$AddrinfoCallback of org.jruby.ext.socket.SocketUtils