public class sun.net.www.protocol.ftp.FtpURLConnection extends sun.net.www.URLConnection
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.net.www.protocol.ftp.FtpURLConnection
  super_class: sun.net.www.URLConnection
{
  sun.net.www.protocol.http.HttpURLConnection http;
    descriptor: Lsun/net/www/protocol/http/HttpURLConnection;
    flags: (0x0000) 

  private java.net.Proxy instProxy;
    descriptor: Ljava/net/Proxy;
    flags: (0x0002) ACC_PRIVATE

  java.io.InputStream is;
    descriptor: Ljava/io/InputStream;
    flags: (0x0000) 

  java.io.OutputStream os;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0000) 

  sun.net.ftp.FtpClient ftp;
    descriptor: Lsun/net/ftp/FtpClient;
    flags: (0x0000) 

  java.security.Permission permission;
    descriptor: Ljava/security/Permission;
    flags: (0x0000) 

  java.lang.String password;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String user;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String host;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String pathname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String filename;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String fullpath;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  int port;
    descriptor: I
    flags: (0x0000) 

  static final int NONE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int ASCII;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int BIN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int DIR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  int type;
    descriptor: I
    flags: (0x0000) 

  private int connectTimeout;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int readTimeout;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.net.URL);
    descriptor: (Ljava/net/URL;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.net.URL url
         0: .line 166
            aload 0 /* this */
            aload 1 /* url */
            aconst_null
            invokespecial sun.net.www.protocol.ftp.FtpURLConnection.<init>:(Ljava/net/URL;Ljava/net/Proxy;)V
         1: .line 167
            return
        end local 1 // java.net.URL url
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            0    2     1   url  Ljava/net/URL;
    MethodParameters:
      Name  Flags
      url   

  void <init>(java.net.URL, java.net.Proxy);
    descriptor: (Ljava/net/URL;Ljava/net/Proxy;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.net.URL url
        start local 2 // java.net.Proxy p
         0: .line 173
            aload 0 /* this */
            aload 1 /* url */
            invokespecial sun.net.www.URLConnection.<init>:(Ljava/net/URL;)V
         1: .line 86
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
         2: .line 89
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
         3: .line 90
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
         4: .line 92
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
         5: .line 107
            aload 0 /* this */
            iconst_0
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         6: .line 111
            aload 0 /* this */
            iconst_m1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
         7: .line 112
            aload 0 /* this */
            iconst_m1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
         8: .line 174
            aload 0 /* this */
            aload 2 /* p */
            putfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
         9: .line 175
            aload 0 /* this */
            aload 1 /* url */
            invokevirtual java.net.URL.getHost:()Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.host:Ljava/lang/String;
        10: .line 176
            aload 0 /* this */
            aload 1 /* url */
            invokevirtual java.net.URL.getPort:()I
            putfield sun.net.www.protocol.ftp.FtpURLConnection.port:I
        11: .line 177
            aload 1 /* url */
            invokevirtual java.net.URL.getUserInfo:()Ljava/lang/String;
            astore 3 /* userInfo */
        start local 3 // java.lang.String userInfo
        12: .line 179
            aload 3 /* userInfo */
            ifnull 20
        13: .line 180
            aload 3 /* userInfo */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 4 /* delimiter */
        start local 4 // int delimiter
        14: .line 181
            iload 4 /* delimiter */
            iconst_m1
            if_icmpne 18
        15: .line 182
            aload 0 /* this */
            aload 3 /* userInfo */
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
        16: .line 183
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
        17: .line 184
            goto 20
        18: .line 185
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.URL java.net.Proxy java.lang.String int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* userInfo */
            iconst_0
            iload 4 /* delimiter */
            iinc 4 /* delimiter */ 1
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
        19: .line 186
            aload 0 /* this */
            aload 3 /* userInfo */
            iload 4 /* delimiter */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
        end local 4 // int delimiter
        20: .line 189
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String userInfo
        end local 2 // java.net.Proxy p
        end local 1 // java.net.URL url
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0       this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            0   21     1        url  Ljava/net/URL;
            0   21     2          p  Ljava/net/Proxy;
           12   21     3   userInfo  Ljava/lang/String;
           14   20     4  delimiter  I
    MethodParameters:
      Name  Flags
      url   
      p     

  private void setTimeouts();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 192
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 5
         1: .line 193
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            iflt 3
         2: .line 194
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            invokevirtual sun.net.ftp.FtpClient.setConnectTimeout:(I)Lsun/net/ftp/FtpClient;
            pop
         3: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            iflt 5
         4: .line 197
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            invokevirtual sun.net.ftp.FtpClient.setReadTimeout:(I)Lsun/net/ftp/FtpClient;
            pop
         5: .line 200
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/net/www/protocol/ftp/FtpURLConnection;

  public synchronized void connect();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 211
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
            ifeq 2
         1: .line 212
            return
         2: .line 215
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* p */
        start local 1 // java.net.Proxy p
         3: .line 216
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
            ifnonnull 34
         4: .line 221
            new sun.net.www.protocol.ftp.FtpURLConnection$1
            dup
            aload 0 /* this */
            invokespecial sun.net.www.protocol.ftp.FtpURLConnection$1.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;)V
         5: .line 220
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.net.ProxySelector
            astore 2 /* sel */
        start local 2 // java.net.ProxySelector sel
         6: .line 226
            aload 2 /* sel */
            ifnull 46
         7: .line 227
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
            invokestatic sun.net.www.ParseUtil.toURI:(Ljava/net/URL;)Ljava/net/URI;
            astore 3 /* uri */
        start local 3 // java.net.URI uri
         8: .line 228
            aload 2 /* sel */
            aload 3 /* uri */
            invokevirtual java.net.ProxySelector.select:(Ljava/net/URI;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* it */
        start local 4 // java.util.Iterator it
         9: .line 229
            goto 32
        10: .line 230
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.Proxy java.net.ProxySelector java.net.URI java.util.Iterator
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.Proxy
            astore 1 /* p */
        11: .line 231
            aload 1 /* p */
            ifnull 46
            aload 1 /* p */
            getstatic java.net.Proxy.NO_PROXY:Ljava/net/Proxy;
            if_acmpeq 46
        12: .line 232
            aload 1 /* p */
            invokevirtual java.net.Proxy.type:()Ljava/net/Proxy$Type;
            getstatic java.net.Proxy$Type.SOCKS:Ljava/net/Proxy$Type;
            if_acmpne 14
        13: .line 233
            goto 46
        14: .line 235
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            invokevirtual java.net.Proxy.type:()Ljava/net/Proxy$Type;
            getstatic java.net.Proxy$Type.HTTP:Ljava/net/Proxy$Type;
            if_acmpne 16
        15: .line 236
            aload 1 /* p */
            invokevirtual java.net.Proxy.address:()Ljava/net/SocketAddress;
            instanceof java.net.InetSocketAddress
            ifne 18
        16: .line 237
      StackMap locals:
      StackMap stack:
            aload 2 /* sel */
            aload 3 /* uri */
            aload 1 /* p */
            invokevirtual java.net.Proxy.address:()Ljava/net/SocketAddress;
            new java.io.IOException
            dup
            ldc "Wrong proxy type"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            invokevirtual java.net.ProxySelector.connectFailed:(Ljava/net/URI;Ljava/net/SocketAddress;Ljava/io/IOException;)V
        17: .line 238
            goto 32
        18: .line 241
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            invokevirtual java.net.Proxy.address:()Ljava/net/SocketAddress;
            checkcast java.net.InetSocketAddress
            astore 5 /* paddr */
        start local 5 // java.net.InetSocketAddress paddr
        19: .line 243
            aload 0 /* this */
            new sun.net.www.protocol.http.HttpURLConnection
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
            aload 1 /* p */
            invokespecial sun.net.www.protocol.http.HttpURLConnection.<init>:(Ljava/net/URL;Ljava/net/Proxy;)V
            putfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
        20: .line 244
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.getDoInput:()Z
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setDoInput:(Z)V
        21: .line 245
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.getDoOutput:()Z
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setDoOutput:(Z)V
        22: .line 246
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            iflt 24
        23: .line 247
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setConnectTimeout:(I)V
        24: .line 249
      StackMap locals: java.net.InetSocketAddress
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            iflt 26
        25: .line 250
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setReadTimeout:(I)V
        26: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.connect:()V
        27: .line 253
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
        28: .line 254
            return
        29: .line 255
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* ioe */
        start local 6 // java.io.IOException ioe
        30: .line 256
            aload 2 /* sel */
            aload 3 /* uri */
            aload 5 /* paddr */
            aload 6 /* ioe */
            invokevirtual java.net.ProxySelector.connectFailed:(Ljava/net/URI;Ljava/net/SocketAddress;Ljava/io/IOException;)V
        31: .line 257
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
        end local 6 // java.io.IOException ioe
        end local 5 // java.net.InetSocketAddress paddr
        32: .line 229
      StackMap locals:
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        end local 4 // java.util.Iterator it
        end local 3 // java.net.URI uri
        end local 2 // java.net.ProxySelector sel
        33: .line 261
            goto 46
        34: .line 262
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
            astore 1 /* p */
        35: .line 263
            aload 1 /* p */
            invokevirtual java.net.Proxy.type:()Ljava/net/Proxy$Type;
            getstatic java.net.Proxy$Type.HTTP:Ljava/net/Proxy$Type;
            if_acmpne 46
        36: .line 264
            aload 0 /* this */
            new sun.net.www.protocol.http.HttpURLConnection
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.instProxy:Ljava/net/Proxy;
            invokespecial sun.net.www.protocol.http.HttpURLConnection.<init>:(Ljava/net/URL;Ljava/net/Proxy;)V
            putfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
        37: .line 265
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.getDoInput:()Z
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setDoInput:(Z)V
        38: .line 266
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.getDoOutput:()Z
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setDoOutput:(Z)V
        39: .line 267
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            iflt 41
        40: .line 268
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setConnectTimeout:(I)V
        41: .line 270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            iflt 43
        42: .line 271
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.setReadTimeout:(I)V
        43: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.connect:()V
        44: .line 274
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
        45: .line 275
            return
        46: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
            ifnonnull 53
        47: .line 280
            aload 0 /* this */
            ldc "anonymous"
            putfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
        48: .line 281
            invokestatic sun.security.action.GetPropertyAction.privilegedGetProperties:()Ljava/util/Properties;
            astore 2 /* props */
        start local 2 // java.util.Properties props
        49: .line 282
            aload 2 /* props */
            ldc "java.version"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* vers */
        start local 3 // java.lang.String vers
        50: .line 283
            aload 0 /* this */
            aload 2 /* props */
            ldc "ftp.protocol.user"
        51: .line 284
            new java.lang.StringBuilder
            dup
            ldc "Java"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* vers */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "@"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        52: .line 283
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
        end local 3 // java.lang.String vers
        end local 2 // java.util.Properties props
        53: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic sun.net.ftp.FtpClient.create:()Lsun/net/ftp/FtpClient;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
        54: .line 288
            aload 1 /* p */
            ifnull 56
        55: .line 289
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 1 /* p */
            invokevirtual sun.net.ftp.FtpClient.setProxy:(Ljava/net/Proxy;)Lsun/net/ftp/FtpClient;
            pop
        56: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.setTimeouts:()V
        57: .line 292
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.port:I
            iconst_m1
            if_icmpeq 60
        58: .line 293
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            new java.net.InetSocketAddress
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.host:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.port:I
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            invokevirtual sun.net.ftp.FtpClient.connect:(Ljava/net/SocketAddress;)Lsun/net/ftp/FtpClient;
            pop
        59: .line 294
            goto 71
        60: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            new java.net.InetSocketAddress
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.host:Ljava/lang/String;
            invokestatic sun.net.ftp.FtpClient.defaultPort:()I
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            invokevirtual sun.net.ftp.FtpClient.connect:(Ljava/net/SocketAddress;)Lsun/net/ftp/FtpClient;
            pop
        61: .line 297
            goto 71
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        62: astore 2 /* e */
        start local 2 // java.net.UnknownHostException e
        63: .line 300
            aload 2 /* e */
            athrow
        end local 2 // java.net.UnknownHostException e
        64: .line 301
      StackMap locals:
      StackMap stack: sun.net.ftp.FtpProtocolException
            astore 2 /* fe */
        start local 2 // sun.net.ftp.FtpProtocolException fe
        65: .line 302
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 70
        66: .line 304
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        67: .line 305
            goto 70
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.Proxy sun.net.ftp.FtpProtocolException
      StackMap stack: java.io.IOException
        68: astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
        69: .line 306
            aload 2 /* fe */
            aload 3 /* ioe */
            invokevirtual sun.net.ftp.FtpProtocolException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 3 // java.io.IOException ioe
        70: .line 309
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            aload 2 /* fe */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // sun.net.ftp.FtpProtocolException fe
        71: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.user:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
            ifnonnull 72
            aconst_null
            goto 73
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.Proxy
      StackMap stack: sun.net.ftp.FtpClient java.lang.String
        72: aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.password:Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.net.Proxy
      StackMap stack: sun.net.ftp.FtpClient java.lang.String char[]
        73: invokevirtual sun.net.ftp.FtpClient.login:(Ljava/lang/String;[C)Lsun/net/ftp/FtpClient;
            pop
        74: .line 313
            goto 78
      StackMap locals:
      StackMap stack: sun.net.ftp.FtpProtocolException
        75: pop
        76: .line 314
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        77: .line 316
            new sun.net.ftp.FtpLoginException
            dup
            ldc "Invalid username/password"
            invokespecial sun.net.ftp.FtpLoginException.<init>:(Ljava/lang/String;)V
            athrow
        78: .line 318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
        79: .line 319
            return
        end local 1 // java.net.Proxy p
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   80     0   this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            3   80     1      p  Ljava/net/Proxy;
            6   33     2    sel  Ljava/net/ProxySelector;
            8   33     3    uri  Ljava/net/URI;
            9   33     4     it  Ljava/util/Iterator<Ljava/net/Proxy;>;
           19   32     5  paddr  Ljava/net/InetSocketAddress;
           30   32     6    ioe  Ljava/io/IOException;
           49   53     2  props  Ljava/util/Properties;
           50   53     3   vers  Ljava/lang/String;
           63   64     2      e  Ljava/net/UnknownHostException;
           65   71     2     fe  Lsun/net/ftp/FtpProtocolException;
           69   70     3    ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          19    28      29  Class java.io.IOException
          53    61      62  Class java.net.UnknownHostException
          53    61      64  Class sun.net.ftp.FtpProtocolException
          66    67      68  Class java.io.IOException
          71    74      75  Class sun.net.ftp.FtpProtocolException
    Exceptions:
      throws java.io.IOException

  private void decodePath(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.lang.String path
         0: .line 326
            aload 1 /* path */
            ldc ";type="
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 2 /* i */
        start local 2 // int i
         1: .line 327
            iload 2 /* i */
            iflt 10
         2: .line 328
            aload 1 /* path */
            iload 2 /* i */
            bipush 6
            iadd
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* s1 */
        start local 3 // java.lang.String s1
         3: .line 329
            ldc "i"
            aload 3 /* s1 */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 330
            aload 0 /* this */
            iconst_2
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         5: .line 332
      StackMap locals: int java.lang.String
      StackMap stack:
            ldc "a"
            aload 3 /* s1 */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 333
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         7: .line 335
      StackMap locals:
      StackMap stack:
            ldc "d"
            aload 3 /* s1 */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 336
            aload 0 /* this */
            iconst_3
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         9: .line 338
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            iconst_0
            iload 2 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* path */
        end local 3 // java.lang.String s1
        10: .line 340
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            ifnull 13
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 13
        11: .line 341
            aload 1 /* path */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 13
        12: .line 342
            aload 1 /* path */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* path */
        13: .line 344
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            ifnull 14
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            ifne 15
        14: .line 345
      StackMap locals:
      StackMap stack:
            ldc "./"
            astore 1 /* path */
        15: .line 347
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 25
        16: .line 348
            aload 1 /* path */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* i */
        17: .line 349
            iload 2 /* i */
            ifle 22
        18: .line 350
            aload 0 /* this */
            aload 1 /* path */
            iload 2 /* i */
            iconst_1
            iadd
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
        19: .line 351
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
        20: .line 352
            aload 0 /* this */
            aload 1 /* path */
            iconst_0
            iload 2 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
        21: .line 353
            goto 27
        22: .line 354
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* path */
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
        23: .line 355
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
        24: .line 357
            goto 27
        25: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* path */
            iconst_0
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
        26: .line 359
            aload 0 /* this */
            aconst_null
            putfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
        27: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            ifnull 32
        28: .line 362
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            ifnull 29
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            goto 30
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.lang.String int
      StackMap stack: sun.net.www.protocol.ftp.FtpURLConnection java.lang.StringBuilder
        29: ldc ""
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection java.lang.String int
      StackMap stack: sun.net.www.protocol.ftp.FtpURLConnection java.lang.StringBuilder java.lang.String
        30: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
        31: .line 363
            goto 33
        32: .line 364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            putfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
        33: .line 366
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int i
        end local 1 // java.lang.String path
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   34     0  this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            0   34     1  path  Ljava/lang/String;
            1   34     2     i  I
            3   10     3    s1  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  private void cd(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.lang.String path
         0: .line 375
            aload 1 /* path */
            ifnull 1
            aload 1 /* path */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 376
      StackMap locals:
      StackMap stack:
            return
         2: .line 378
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 5
         3: .line 379
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 1 /* path */
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.net.ftp.FtpClient.changeDirectory:(Ljava/lang/String;)Lsun/net/ftp/FtpClient;
            pop
         4: .line 380
            return
         5: .line 383
      StackMap locals:
      StackMap stack:
            new java.util.StringTokenizer
            dup
            aload 1 /* path */
            ldc "/"
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* token */
        start local 2 // java.util.StringTokenizer token
         6: .line 384
            goto 8
         7: .line 385
      StackMap locals: java.util.StringTokenizer
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 2 /* token */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.net.ftp.FtpClient.changeDirectory:(Ljava/lang/String;)Lsun/net/ftp/FtpClient;
            pop
         8: .line 384
      StackMap locals:
      StackMap stack:
            aload 2 /* token */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 7
         9: .line 387
            return
        end local 2 // java.util.StringTokenizer token
        end local 1 // java.lang.String path
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            0   10     1   path  Ljava/lang/String;
            6   10     2  token  Ljava/util/StringTokenizer;
    Exceptions:
      throws sun.net.ftp.FtpProtocolException, java.io.IOException
    MethodParameters:
      Name  Flags
      path  

  public java.io.InputStream getInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=1
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 400
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
            ifne 2
         1: .line 401
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.connect:()V
         2: .line 404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            ifnull 4
         3: .line 405
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.getInputStream:()Ljava/io/InputStream;
            areturn
         4: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
            ifnull 6
         5: .line 409
            new java.io.IOException
            dup
            ldc "Already opened for output"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            ifnull 8
         7: .line 413
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            areturn
         8: .line 416
      StackMap locals:
      StackMap stack:
            new sun.net.www.MessageHeader
            dup
            invokespecial sun.net.www.MessageHeader.<init>:()V
            astore 1 /* msgh */
        start local 1 // sun.net.www.MessageHeader msgh
         9: .line 418
            iconst_0
            istore 2 /* isAdir */
        start local 2 // boolean isAdir
        10: .line 420
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
            invokevirtual java.net.URL.getPath:()Ljava/lang/String;
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.decodePath:(Ljava/lang/String;)V
        11: .line 421
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            ifnull 12
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
            iconst_3
            if_icmpne 19
        12: .line 422
      StackMap locals: sun.net.www.MessageHeader int
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.setAsciiType:()Lsun/net/ftp/FtpClient;
            pop
        13: .line 423
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.cd:(Ljava/lang/String;)V
        14: .line 424
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            ifnonnull 17
        15: .line 425
            aload 0 /* this */
            new sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aconst_null
            invokevirtual sun.net.ftp.FtpClient.list:(Ljava/lang/String;)Ljava/io/InputStream;
            invokespecial sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;Lsun/net/ftp/FtpClient;Ljava/io/InputStream;)V
            putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
        16: .line 426
            goto 25
        17: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            invokevirtual sun.net.ftp.FtpClient.nameList:(Ljava/lang/String;)Ljava/io/InputStream;
            invokespecial sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;Lsun/net/ftp/FtpClient;Ljava/io/InputStream;)V
            putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
        18: .line 429
            goto 25
        19: .line 430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
            iconst_1
            if_icmpne 22
        20: .line 431
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.setAsciiType:()Lsun/net/ftp/FtpClient;
            pop
        21: .line 432
            goto 23
        22: .line 433
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.setBinaryType:()Lsun/net/ftp/FtpClient;
            pop
        23: .line 435
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.cd:(Ljava/lang/String;)V
        24: .line 436
            aload 0 /* this */
            new sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            invokevirtual sun.net.ftp.FtpClient.getFileStream:(Ljava/lang/String;)Ljava/io/InputStream;
            invokespecial sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;Lsun/net/ftp/FtpClient;Ljava/io/InputStream;)V
            putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
        25: .line 442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.getLastTransferSize:()J
            lstore 3 /* l */
        start local 3 // long l
        26: .line 443
            aload 1 /* msgh */
            ldc "content-length"
            lload 3 /* l */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        27: .line 444
            lload 3 /* l */
            lconst_0
            lcmp
            ifle 37
        28: .line 450
            invokestatic sun.net.ProgressMonitor.getDefault:()Lsun/net/ProgressMonitor;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
            ldc "GET"
            invokevirtual sun.net.ProgressMonitor.shouldMeterInput:(Ljava/net/URL;Ljava/lang/String;)Z
            istore 5 /* meteredInput */
        start local 5 // boolean meteredInput
        29: .line 451
            aconst_null
            astore 6 /* pi */
        start local 6 // sun.net.ProgressSource pi
        30: .line 453
            iload 5 /* meteredInput */
            ifeq 33
        31: .line 454
            new sun.net.ProgressSource
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
            ldc "GET"
            lload 3 /* l */
            invokespecial sun.net.ProgressSource.<init>:(Ljava/net/URL;Ljava/lang/String;J)V
            astore 6 /* pi */
        32: .line 455
            aload 6 /* pi */
            invokevirtual sun.net.ProgressSource.beginTracking:()V
        33: .line 458
      StackMap locals: long int sun.net.ProgressSource
      StackMap stack:
            aload 0 /* this */
            new sun.net.www.MeteredStream
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            aload 6 /* pi */
            lload 3 /* l */
            invokespecial sun.net.www.MeteredStream.<init>:(Ljava/io/InputStream;Lsun/net/ProgressSource;J)V
            putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
        end local 6 // sun.net.ProgressSource pi
        end local 5 // boolean meteredInput
        end local 3 // long l
        34: .line 460
            goto 37
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
      StackMap stack: java.lang.Exception
        35: astore 3 /* e */
        start local 3 // java.lang.Exception e
        36: .line 461
            aload 3 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 3 // java.lang.Exception e
        37: .line 466
      StackMap locals:
      StackMap stack:
            iload 2 /* isAdir */
            ifeq 41
        38: .line 467
            aload 1 /* msgh */
            ldc "content-type"
            ldc "text/plain"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        39: .line 468
            aload 1 /* msgh */
            ldc "access-type"
            ldc "directory"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        40: .line 469
            goto 78
        41: .line 470
      StackMap locals:
      StackMap stack:
            aload 1 /* msgh */
            ldc "access-type"
            ldc "file"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        42: .line 471
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
            invokestatic sun.net.www.protocol.ftp.FtpURLConnection.guessContentTypeFromName:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* ftype */
        start local 3 // java.lang.String ftype
        43: .line 472
            aload 3 /* ftype */
            ifnonnull 45
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.markSupported:()Z
            ifeq 45
        44: .line 473
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            invokestatic sun.net.www.protocol.ftp.FtpURLConnection.guessContentTypeFromStream:(Ljava/io/InputStream;)Ljava/lang/String;
            astore 3 /* ftype */
        45: .line 475
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* ftype */
            ifnull 78
        46: .line 476
            aload 1 /* msgh */
            ldc "content-type"
            aload 3 /* ftype */
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        end local 3 // java.lang.String ftype
        47: .line 479
            goto 78
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
      StackMap stack: java.io.FileNotFoundException
        48: pop
        49: .line 481
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.cd:(Ljava/lang/String;)V
        50: .line 485
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.setAsciiType:()Lsun/net/ftp/FtpClient;
            pop
        51: .line 487
            aload 0 /* this */
            new sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aconst_null
            invokevirtual sun.net.ftp.FtpClient.list:(Ljava/lang/String;)Ljava/io/InputStream;
            invokespecial sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;Lsun/net/ftp/FtpClient;Ljava/io/InputStream;)V
            putfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
        52: .line 488
            aload 1 /* msgh */
            ldc "content-type"
            ldc "text/plain"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        53: .line 489
            aload 1 /* msgh */
            ldc "access-type"
            ldc "directory"
            invokevirtual sun.net.www.MessageHeader.add:(Ljava/lang/String;Ljava/lang/String;)V
        54: .line 490
            goto 78
      StackMap locals:
      StackMap stack: java.io.IOException
        55: pop
        56: .line 491
            new java.io.FileNotFoundException
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            astore 3 /* fnfe */
        start local 3 // java.io.FileNotFoundException fnfe
        57: .line 492
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 62
        58: .line 494
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        59: .line 495
            goto 62
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int java.io.FileNotFoundException
      StackMap stack: java.io.IOException
        60: astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
        61: .line 496
            aload 3 /* fnfe */
            aload 4 /* ioe */
            invokevirtual java.io.FileNotFoundException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException ioe
        62: .line 499
      StackMap locals:
      StackMap stack:
            aload 3 /* fnfe */
            athrow
        end local 3 // java.io.FileNotFoundException fnfe
        63: .line 500
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
      StackMap stack: sun.net.ftp.FtpProtocolException
            pop
        64: .line 501
            new java.io.FileNotFoundException
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.fullpath:Ljava/lang/String;
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            astore 3 /* fnfe */
        start local 3 // java.io.FileNotFoundException fnfe
        65: .line 502
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 70
        66: .line 504
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        67: .line 505
            goto 70
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int java.io.FileNotFoundException
      StackMap stack: java.io.IOException
        68: astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
        69: .line 506
            aload 3 /* fnfe */
            aload 4 /* ioe */
            invokevirtual java.io.FileNotFoundException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException ioe
        70: .line 509
      StackMap locals:
      StackMap stack:
            aload 3 /* fnfe */
            athrow
        end local 3 // java.io.FileNotFoundException fnfe
        71: .line 511
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int
      StackMap stack: sun.net.ftp.FtpProtocolException
            astore 3 /* ftpe */
        start local 3 // sun.net.ftp.FtpProtocolException ftpe
        72: .line 512
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            ifnull 77
        73: .line 514
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.close:()V
        74: .line 515
            goto 77
      StackMap locals: sun.net.www.protocol.ftp.FtpURLConnection sun.net.www.MessageHeader int sun.net.ftp.FtpProtocolException
      StackMap stack: java.io.IOException
        75: astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
        76: .line 516
            aload 3 /* ftpe */
            aload 4 /* ioe */
            invokevirtual sun.net.ftp.FtpProtocolException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException ioe
        77: .line 519
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            aload 3 /* ftpe */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // sun.net.ftp.FtpProtocolException ftpe
        78: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msgh */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.setProperties:(Lsun/net/www/MessageHeader;)V
        79: .line 522
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            areturn
        end local 2 // boolean isAdir
        end local 1 // sun.net.www.MessageHeader msgh
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   80     0          this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            9   80     1          msgh  Lsun/net/www/MessageHeader;
           10   80     2        isAdir  Z
           26   34     3             l  J
           29   34     5  meteredInput  Z
           30   34     6            pi  Lsun/net/ProgressSource;
           36   37     3             e  Ljava/lang/Exception;
           43   47     3         ftype  Ljava/lang/String;
           57   63     3          fnfe  Ljava/io/FileNotFoundException;
           61   62     4           ioe  Ljava/io/IOException;
           65   71     3          fnfe  Ljava/io/FileNotFoundException;
           69   70     4           ioe  Ljava/io/IOException;
           72   78     3          ftpe  Lsun/net/ftp/FtpProtocolException;
           76   77     4           ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          25    34      35  Class java.lang.Exception
          10    47      48  Class java.io.FileNotFoundException
          49    54      55  Class java.io.IOException
          58    59      60  Class java.io.IOException
          49    54      63  Class sun.net.ftp.FtpProtocolException
          66    67      68  Class java.io.IOException
          10    47      71  Class sun.net.ftp.FtpProtocolException
          73    74      75  Class java.io.IOException
    Exceptions:
      throws java.io.IOException

  public java.io.OutputStream getOutputStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=1
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 537
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connected:Z
            ifne 2
         1: .line 538
            aload 0 /* this */
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.connect:()V
         2: .line 541
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            ifnull 6
         3: .line 542
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.getOutputStream:()Ljava/io/OutputStream;
            astore 1 /* out */
        start local 1 // java.io.OutputStream out
         4: .line 545
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.http:Lsun/net/www/protocol/http/HttpURLConnection;
            invokevirtual sun.net.www.protocol.http.HttpURLConnection.getInputStream:()Ljava/io/InputStream;
            pop
         5: .line 546
            aload 1 /* out */
            areturn
        end local 1 // java.io.OutputStream out
         6: .line 549
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.is:Ljava/io/InputStream;
            ifnull 8
         7: .line 550
            new java.io.IOException
            dup
            ldc "Already opened for input"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
            ifnull 10
         9: .line 554
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
            areturn
        10: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
            invokevirtual java.net.URL.getPath:()Ljava/lang/String;
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.decodePath:(Ljava/lang/String;)V
        11: .line 558
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            ifnull 12
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 13
        12: .line 559
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            ldc "illegal filename for a PUT"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 562
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            ifnull 15
        14: .line 563
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.pathname:Ljava/lang/String;
            invokevirtual sun.net.www.protocol.ftp.FtpURLConnection.cd:(Ljava/lang/String;)V
        15: .line 565
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
            iconst_1
            if_icmpne 18
        16: .line 566
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.setAsciiType:()Lsun/net/ftp/FtpClient;
            pop
        17: .line 567
            goto 19
        18: .line 568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            invokevirtual sun.net.ftp.FtpClient.setBinaryType:()Lsun/net/ftp/FtpClient;
            pop
        19: .line 570
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.net.www.protocol.ftp.FtpURLConnection$FtpOutputStream
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.ftp:Lsun/net/ftp/FtpClient;
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.filename:Ljava/lang/String;
            iconst_0
            invokevirtual sun.net.ftp.FtpClient.putFileStream:(Ljava/lang/String;Z)Ljava/io/OutputStream;
            invokespecial sun.net.www.protocol.ftp.FtpURLConnection$FtpOutputStream.<init>:(Lsun/net/www/protocol/ftp/FtpURLConnection;Lsun/net/ftp/FtpClient;Ljava/io/OutputStream;)V
            putfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
        20: .line 571
            goto 23
      StackMap locals:
      StackMap stack: sun.net.ftp.FtpProtocolException
        21: astore 1 /* e */
        start local 1 // sun.net.ftp.FtpProtocolException e
        22: .line 572
            new java.io.IOException
            dup
            aload 1 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // sun.net.ftp.FtpProtocolException e
        23: .line 574
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.os:Ljava/io/OutputStream;
            areturn
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   24     0  this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            4    6     1   out  Ljava/io/OutputStream;
           22   23     1     e  Lsun/net/ftp/FtpProtocolException;
      Exception table:
        from    to  target  type
          13    20      21  Class sun.net.ftp.FtpProtocolException
    Exceptions:
      throws java.io.IOException

  java.lang.String guessContentTypeFromFilename(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.lang.String fname
         0: .line 578
            aload 1 /* fname */
            invokestatic sun.net.www.protocol.ftp.FtpURLConnection.guessContentTypeFromName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String fname
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            0    1     1  fname  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      fname  

  public java.security.Permission getPermission();
    descriptor: ()Ljava/security/Permission;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 588
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.permission:Ljava/security/Permission;
            ifnonnull 7
         1: .line 589
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.url:Ljava/net/URL;
            invokevirtual java.net.URL.getPort:()I
            istore 1 /* urlport */
        start local 1 // int urlport
         2: .line 590
            iload 1 /* urlport */
            ifge 3
            invokestatic sun.net.ftp.FtpClient.defaultPort:()I
            goto 4
      StackMap locals: int
      StackMap stack:
         3: iload 1 /* urlport */
      StackMap locals:
      StackMap stack: int
         4: istore 1 /* urlport */
         5: .line 591
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.host:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* urlport */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* urlhost */
        start local 2 // java.lang.String urlhost
         6: .line 592
            aload 0 /* this */
            new java.net.SocketPermission
            dup
            aload 2 /* urlhost */
            ldc "connect"
            invokespecial java.net.SocketPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            putfield sun.net.www.protocol.ftp.FtpURLConnection.permission:Ljava/security/Permission;
        end local 2 // java.lang.String urlhost
        end local 1 // int urlport
         7: .line 594
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.permission:Ljava/security/Permission;
            areturn
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            2    7     1  urlport  I
            6    7     2  urlhost  Ljava/lang/String;

  public void setRequestProperty(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String value
         0: .line 609
            aload 0 /* this */
            aload 1 /* key */
            aload 2 /* value */
            invokespecial sun.net.www.URLConnection.setRequestProperty:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 610
            ldc "type"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
         2: .line 611
            ldc "i"
            aload 2 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 612
            aload 0 /* this */
            iconst_2
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         4: .line 613
            goto 17
      StackMap locals:
      StackMap stack:
         5: ldc "a"
            aload 2 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 8
         6: .line 614
            aload 0 /* this */
            iconst_1
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
         7: .line 615
            goto 17
      StackMap locals:
      StackMap stack:
         8: ldc "d"
            aload 2 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 11
         9: .line 616
            aload 0 /* this */
            iconst_3
            putfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
        10: .line 617
            goto 17
        11: .line 618
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        12: .line 619
            new java.lang.StringBuilder
            dup
            ldc "Value of '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 620
            ldc "' request property was '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 621
            ldc "' when it must be either 'i', 'a' or 'd'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 619
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 618
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 624
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String value
        end local 1 // java.lang.String key
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            0   18     1    key  Ljava/lang/String;
            0   18     2  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      key    
      value  

  public java.lang.String getRequestProperty(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // java.lang.String key
         0: .line 638
            aload 0 /* this */
            aload 1 /* key */
            invokespecial sun.net.www.URLConnection.getRequestProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        start local 2 // java.lang.String value
         1: .line 640
            aload 2 /* value */
            ifnonnull 7
         2: .line 641
            ldc "type"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         3: .line 642
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
            iconst_1
            if_icmpne 4
            ldc "a"
            goto 6
      StackMap locals: java.lang.String
      StackMap stack:
         4: aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.type:I
            iconst_3
            if_icmpne 5
            ldc "d"
            goto 6
      StackMap locals:
      StackMap stack:
         5: ldc "i"
      StackMap locals:
      StackMap stack: java.lang.String
         6: astore 2 /* value */
         7: .line 646
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            areturn
        end local 2 // java.lang.String value
        end local 1 // java.lang.String key
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            0    8     1    key  Ljava/lang/String;
            1    8     2  value  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   

  public void setConnectTimeout(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // int timeout
         0: .line 651
            iload 1 /* timeout */
            ifge 2
         1: .line 652
            new java.lang.IllegalArgumentException
            dup
            ldc "timeouts can't be negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* timeout */
            putfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
         3: .line 655
            return
        end local 1 // int timeout
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            0    4     1  timeout  I
    MethodParameters:
         Name  Flags
      timeout  

  public int getConnectTimeout();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 659
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
            ifge 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.connectTimeout:I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/net/www/protocol/ftp/FtpURLConnection;

  public void setReadTimeout(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
        start local 1 // int timeout
         0: .line 664
            iload 1 /* timeout */
            ifge 2
         1: .line 665
            new java.lang.IllegalArgumentException
            dup
            ldc "timeouts can't be negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 667
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* timeout */
            putfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
         3: .line 668
            return
        end local 1 // int timeout
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lsun/net/www/protocol/ftp/FtpURLConnection;
            0    4     1  timeout  I
    MethodParameters:
         Name  Flags
      timeout  

  public int getReadTimeout();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
         0: .line 672
            aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
            ifge 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.net.www.protocol.ftp.FtpURLConnection.readTimeout:I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.net.www.protocol.ftp.FtpURLConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/net/www/protocol/ftp/FtpURLConnection;
}
SourceFile: "FtpURLConnection.java"
NestMembers:
  sun.net.www.protocol.ftp.FtpURLConnection$1  sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream  sun.net.www.protocol.ftp.FtpURLConnection$FtpOutputStream
InnerClasses:
  public final Type = java.net.Proxy$Type of java.net.Proxy
  sun.net.www.protocol.ftp.FtpURLConnection$1
  protected FtpInputStream = sun.net.www.protocol.ftp.FtpURLConnection$FtpInputStream of sun.net.www.protocol.ftp.FtpURLConnection
  protected FtpOutputStream = sun.net.www.protocol.ftp.FtpURLConnection$FtpOutputStream of sun.net.www.protocol.ftp.FtpURLConnection