public class org.h2.util.IOUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.util.IOUtils
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.util.IOUtils this
         0: .line 33
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 35
            return
        end local 0 // org.h2.util.IOUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/util/IOUtils;

  public static void closeSilently(java.lang.AutoCloseable);
    descriptor: (Ljava/lang/AutoCloseable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.AutoCloseable out
         0: .line 43
            aload 0 /* out */
            ifnull 5
         1: .line 45
            ldc "closeSilently"
            aconst_null
            aload 0 /* out */
            invokestatic org.h2.util.IOUtils.trace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 46
            aload 0 /* out */
            invokeinterface java.lang.AutoCloseable.close:()V
         3: .line 47
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Exception
         4: pop
         5: .line 51
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.AutoCloseable out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   out  Ljava/lang/AutoCloseable;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      out   

  public static void skipFully(java.io.InputStream, long);
    descriptor: (Ljava/io/InputStream;J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.io.InputStream in
        start local 1 // long skip
         0: .line 64
            goto 5
         1: .line 65
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            lload 1 /* skip */
            invokevirtual java.io.InputStream.skip:(J)J
            lstore 3 /* skipped */
        start local 3 // long skipped
         2: .line 66
            lload 3 /* skipped */
            lconst_0
            lcmp
            ifgt 4
         3: .line 67
            new java.io.EOFException
            dup
            invokespecial java.io.EOFException.<init>:()V
            athrow
         4: .line 69
      StackMap locals: long
      StackMap stack:
            lload 1 /* skip */
            lload 3 /* skipped */
            lsub
            lstore 1 /* skip */
        end local 3 // long skipped
         5: .line 64
      StackMap locals:
      StackMap stack:
            lload 1 /* skip */
            lconst_0
            lcmp
            ifgt 1
         6: .line 71
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Exception
         7: astore 3 /* e */
        start local 3 // java.lang.Exception e
         8: .line 72
            aload 3 /* e */
            invokestatic org.h2.message.DbException.convertToIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 3 // java.lang.Exception e
         9: .line 74
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long skip
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0       in  Ljava/io/InputStream;
            0   10     1     skip  J
            2    5     3  skipped  J
            8    9     3        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     6       7  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
      skip  

  public static void skipFully(java.io.Reader, long);
    descriptor: (Ljava/io/Reader;J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.io.Reader reader
        start local 1 // long skip
         0: .line 87
            goto 5
         1: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* reader */
            lload 1 /* skip */
            invokevirtual java.io.Reader.skip:(J)J
            lstore 3 /* skipped */
        start local 3 // long skipped
         2: .line 89
            lload 3 /* skipped */
            lconst_0
            lcmp
            ifgt 4
         3: .line 90
            new java.io.EOFException
            dup
            invokespecial java.io.EOFException.<init>:()V
            athrow
         4: .line 92
      StackMap locals: long
      StackMap stack:
            lload 1 /* skip */
            lload 3 /* skipped */
            lsub
            lstore 1 /* skip */
        end local 3 // long skipped
         5: .line 87
      StackMap locals:
      StackMap stack:
            lload 1 /* skip */
            lconst_0
            lcmp
            ifgt 1
         6: .line 94
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Exception
         7: astore 3 /* e */
        start local 3 // java.lang.Exception e
         8: .line 95
            aload 3 /* e */
            invokestatic org.h2.message.DbException.convertToIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 3 // java.lang.Exception e
         9: .line 97
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long skip
        end local 0 // java.io.Reader reader
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0   reader  Ljava/io/Reader;
            0   10     1     skip  J
            2    5     3  skipped  J
            8    9     3        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     6       7  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      reader  
      skip    

  public static long copyAndClose(java.io.InputStream, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.io.InputStream in
        start local 1 // java.io.OutputStream out
         0: .line 110
            aload 0 /* in */
            aload 1 /* out */
            invokestatic org.h2.util.IOUtils.copyAndCloseInput:(Ljava/io/InputStream;Ljava/io/OutputStream;)J
            lstore 2 /* len */
        start local 2 // long len
         1: .line 111
            aload 1 /* out */
            invokevirtual java.io.OutputStream.close:()V
         2: .line 112
            lload 2 /* len */
            lstore 5
         3: .line 116
            aload 1 /* out */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
         4: .line 112
            lload 5
            lreturn
        end local 2 // long len
         5: .line 113
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         6: .line 114
            aload 2 /* e */
            invokestatic org.h2.message.DbException.convertToIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 2 // java.lang.Exception e
         7: .line 115
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
         8: .line 116
            aload 1 /* out */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
         9: .line 117
            aload 4
            athrow
        end local 1 // java.io.OutputStream out
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0    in  Ljava/io/InputStream;
            0   10     1   out  Ljava/io/OutputStream;
            1    5     2   len  J
            6    7     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3       5  Class java.lang.Exception
           0     3       7  any
           5     7       7  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
      out   

  public static long copyAndCloseInput(java.io.InputStream, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.io.InputStream in
        start local 1 // java.io.OutputStream out
         0: .line 131
            aload 0 /* in */
            aload 1 /* out */
            invokestatic org.h2.util.IOUtils.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)J
            lstore 4
         1: .line 135
            aload 0 /* in */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
         2: .line 131
            lload 4
            lreturn
         3: .line 132
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         4: .line 133
            aload 2 /* e */
            invokestatic org.h2.message.DbException.convertToIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 2 // java.lang.Exception e
         5: .line 134
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         6: .line 135
            aload 0 /* in */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
         7: .line 136
            aload 3
            athrow
        end local 1 // java.io.OutputStream out
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0    in  Ljava/io/InputStream;
            0    8     1   out  Ljava/io/OutputStream;
            4    5     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       3  Class java.lang.Exception
           0     1       5  any
           3     5       5  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
      out   

  public static long copy(java.io.InputStream, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.io.InputStream in
        start local 1 // java.io.OutputStream out
         0: .line 149
            aload 0 /* in */
            aload 1 /* out */
            ldc 9223372036854775807
            invokestatic org.h2.util.IOUtils.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;J)J
            lreturn
        end local 1 // java.io.OutputStream out
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    in  Ljava/io/InputStream;
            0    1     1   out  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
      out   

  public static long copy(java.io.InputStream, java.io.OutputStream, long);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // java.io.InputStream in
        start local 1 // java.io.OutputStream out
        start local 2 // long length
         0: .line 164
            lconst_0
            lstore 4 /* copied */
        start local 4 // long copied
         1: .line 165
            lload 2 /* length */
            ldc 4096
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 6 /* len */
        start local 6 // int len
         2: .line 166
            iload 6 /* len */
            newarray 8
            astore 7 /* buffer */
        start local 7 // byte[] buffer
         3: .line 167
            goto 12
         4: .line 168
      StackMap locals: long int byte[]
      StackMap stack:
            aload 0 /* in */
            aload 7 /* buffer */
            iconst_0
            iload 6 /* len */
            invokevirtual java.io.InputStream.read:([BII)I
            istore 6 /* len */
         5: .line 169
            iload 6 /* len */
            ifge 7
         6: .line 170
            goto 13
         7: .line 172
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            ifnull 9
         8: .line 173
            aload 1 /* out */
            aload 7 /* buffer */
            iconst_0
            iload 6 /* len */
            invokevirtual java.io.OutputStream.write:([BII)V
         9: .line 175
      StackMap locals:
      StackMap stack:
            lload 4 /* copied */
            iload 6 /* len */
            i2l
            ladd
            lstore 4 /* copied */
        10: .line 176
            lload 2 /* length */
            iload 6 /* len */
            i2l
            lsub
            lstore 2 /* length */
        11: .line 177
            lload 2 /* length */
            ldc 4096
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 6 /* len */
        12: .line 167
      StackMap locals:
      StackMap stack:
            lload 2 /* length */
            lconst_0
            lcmp
            ifgt 4
        13: .line 179
      StackMap locals:
      StackMap stack:
            lload 4 /* copied */
        14: lreturn
        end local 7 // byte[] buffer
        end local 6 // int len
        end local 4 // long copied
        15: .line 180
      StackMap locals: java.io.InputStream java.io.OutputStream long
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        16: .line 181
            aload 4 /* e */
            invokestatic org.h2.message.DbException.convertToIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 4 // java.lang.Exception e
        end local 2 // long length
        end local 1 // java.io.OutputStream out
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0      in  Ljava/io/InputStream;
            0   17     1     out  Ljava/io/OutputStream;
            0   17     2  length  J
            1   15     4  copied  J
            2   15     6     len  I
            3   15     7  buffer  [B
           16   17     4       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    14      15  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      in      
      out     
      length  

  public static long copyAndCloseInput(java.io.Reader, java.io.Writer, long);
    descriptor: (Ljava/io/Reader;Ljava/io/Writer;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // java.io.Reader in
        start local 1 // java.io.Writer out
        start local 2 // long length
         0: .line 197
            lconst_0
            lstore 4 /* copied */
        start local 4 // long copied
         1: .line 198
            lload 2 /* length */
            ldc 4096
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 6 /* len */
        start local 6 // int len
         2: .line 199
            iload 6 /* len */
            newarray 5
            astore 7 /* buffer */
        start local 7 // char[] buffer
         3: .line 200
            goto 12
         4: .line 201
      StackMap locals: long int char[]
      StackMap stack:
            aload 0 /* in */
            aload 7 /* buffer */
            iconst_0
            iload 6 /* len */
            invokevirtual java.io.Reader.read:([CII)I
            istore 6 /* len */
         5: .line 202
            iload 6 /* len */
            ifge 7
         6: .line 203
            goto 13
         7: .line 205
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            ifnull 9
         8: .line 206
            aload 1 /* out */
            aload 7 /* buffer */
            iconst_0
            iload 6 /* len */
            invokevirtual java.io.Writer.write:([CII)V
         9: .line 208
      StackMap locals:
      StackMap stack:
            lload 2 /* length */
            iload 6 /* len */
            i2l
            lsub
            lstore 2 /* length */
        10: .line 209
            lload 2 /* length */
            ldc 4096
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 6 /* len */
        11: .line 210
            lload 4 /* copied */
            iload 6 /* len */
            i2l
            ladd
            lstore 4 /* copied */
        12: .line 200
      StackMap locals:
      StackMap stack:
            lload 2 /* length */
            lconst_0
            lcmp
            ifgt 4
        13: .line 212
      StackMap locals:
      StackMap stack:
            lload 4 /* copied */
            lstore 9
        14: .line 216
            aload 0 /* in */
            invokevirtual java.io.Reader.close:()V
        15: .line 212
            lload 9
            lreturn
        end local 7 // char[] buffer
        end local 6 // int len
        end local 4 // long copied
        16: .line 213
      StackMap locals: java.io.Reader java.io.Writer long
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        17: .line 214
            aload 4 /* e */
            invokestatic org.h2.message.DbException.convertToIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 4 // java.lang.Exception e
        18: .line 215
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        19: .line 216
            aload 0 /* in */
            invokevirtual java.io.Reader.close:()V
        20: .line 217
            aload 8
            athrow
        end local 2 // long length
        end local 1 // java.io.Writer out
        end local 0 // java.io.Reader in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   21     0      in  Ljava/io/Reader;
            0   21     1     out  Ljava/io/Writer;
            0   21     2  length  J
            1   16     4  copied  J
            2   16     6     len  I
            3   16     7  buffer  [C
           17   18     4       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    14      16  Class java.lang.Exception
           0    14      18  any
          16    18      18  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      in      
      out     
      length  

  public static byte[] readBytesAndClose(java.io.InputStream, int);
    descriptor: (Ljava/io/InputStream;I)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.io.InputStream in
        start local 1 // int length
         0: .line 231
            iload 1 /* length */
            ifgt 2
         1: .line 232
            ldc 2147483647
            istore 1 /* length */
         2: .line 234
      StackMap locals:
      StackMap stack:
            sipush 4096
            iload 1 /* length */
            invokestatic java.lang.Math.min:(II)I
            istore 2 /* block */
        start local 2 // int block
         3: .line 235
            new java.io.ByteArrayOutputStream
            dup
            iload 2 /* block */
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            astore 3 /* out */
        start local 3 // java.io.ByteArrayOutputStream out
         4: .line 236
            aload 0 /* in */
            aload 3 /* out */
            iload 1 /* length */
            i2l
            invokestatic org.h2.util.IOUtils.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;J)J
            pop2
         5: .line 237
            aload 3 /* out */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            astore 5
         6: .line 241
            aload 0 /* in */
            invokevirtual java.io.InputStream.close:()V
         7: .line 237
            aload 5
            areturn
        end local 3 // java.io.ByteArrayOutputStream out
        end local 2 // int block
         8: .line 238
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         9: .line 239
            aload 2 /* e */
            invokestatic org.h2.message.DbException.convertToIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 2 // java.lang.Exception e
        10: .line 240
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        11: .line 241
            aload 0 /* in */
            invokevirtual java.io.InputStream.close:()V
        12: .line 242
            aload 4
            athrow
        end local 1 // int length
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0      in  Ljava/io/InputStream;
            0   13     1  length  I
            3    8     2   block  I
            4    8     3     out  Ljava/io/ByteArrayOutputStream;
            9   10     2       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     6       8  Class java.lang.Exception
           0     6      10  any
           8    10      10  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      in      
      length  

  public static java.lang.String readStringAndClose(java.io.Reader, int);
    descriptor: (Ljava/io/Reader;I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.io.Reader in
        start local 1 // int length
         0: .line 256
            iload 1 /* length */
            ifgt 2
         1: .line 257
            ldc 2147483647
            istore 1 /* length */
         2: .line 259
      StackMap locals:
      StackMap stack:
            sipush 4096
            iload 1 /* length */
            invokestatic java.lang.Math.min:(II)I
            istore 2 /* block */
        start local 2 // int block
         3: .line 260
            new java.io.StringWriter
            dup
            iload 2 /* block */
            invokespecial java.io.StringWriter.<init>:(I)V
            astore 3 /* out */
        start local 3 // java.io.StringWriter out
         4: .line 261
            aload 0 /* in */
            aload 3 /* out */
            iload 1 /* length */
            i2l
            invokestatic org.h2.util.IOUtils.copyAndCloseInput:(Ljava/io/Reader;Ljava/io/Writer;J)J
            pop2
         5: .line 262
            aload 3 /* out */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            astore 5
         6: .line 264
            aload 0 /* in */
            invokevirtual java.io.Reader.close:()V
         7: .line 262
            aload 5
            areturn
        end local 3 // java.io.StringWriter out
        end local 2 // int block
         8: .line 263
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
         9: .line 264
            aload 0 /* in */
            invokevirtual java.io.Reader.close:()V
        10: .line 265
            aload 4
            athrow
        end local 1 // int length
        end local 0 // java.io.Reader in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0      in  Ljava/io/Reader;
            0   11     1  length  I
            3    8     2   block  I
            4    8     3     out  Ljava/io/StringWriter;
      Exception table:
        from    to  target  type
           0     6       8  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      in      
      length  

  public static int readFully(java.io.InputStream, byte[], int);
    descriptor: (Ljava/io/InputStream;[BI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.io.InputStream in
        start local 1 // byte[] buffer
        start local 2 // int max
         0: .line 281
            iconst_0
            istore 3 /* result */
        start local 3 // int result
         1: iload 2 /* max */
            aload 1 /* buffer */
            arraylength
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* len */
        start local 4 // int len
         2: .line 282
            goto 8
         3: .line 283
      StackMap locals: int int
      StackMap stack:
            aload 0 /* in */
            aload 1 /* buffer */
            iload 3 /* result */
            iload 4 /* len */
            invokevirtual java.io.InputStream.read:([BII)I
            istore 5 /* l */
        start local 5 // int l
         4: .line 284
            iload 5 /* l */
            ifge 6
         5: .line 285
            goto 9
         6: .line 287
      StackMap locals: int
      StackMap stack:
            iload 3 /* result */
            iload 5 /* l */
            iadd
            istore 3 /* result */
         7: .line 288
            iload 4 /* len */
            iload 5 /* l */
            isub
            istore 4 /* len */
        end local 5 // int l
         8: .line 282
      StackMap locals:
      StackMap stack:
            iload 4 /* len */
            ifgt 3
         9: .line 290
      StackMap locals:
      StackMap stack:
            iload 3 /* result */
        10: ireturn
        end local 4 // int len
        end local 3 // int result
        11: .line 291
      StackMap locals: java.io.InputStream byte[] int
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        12: .line 292
            aload 3 /* e */
            invokestatic org.h2.message.DbException.convertToIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 3 // java.lang.Exception e
        end local 2 // int max
        end local 1 // byte[] buffer
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0      in  Ljava/io/InputStream;
            0   13     1  buffer  [B
            0   13     2     max  I
            1   11     3  result  I
            2   11     4     len  I
            4    8     5       l  I
           12   13     3       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    10      11  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      in      
      buffer  
      max     

  public static int readFully(java.io.Reader, char[], int);
    descriptor: (Ljava/io/Reader;[CI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.io.Reader in
        start local 1 // char[] buffer
        start local 2 // int max
         0: .line 309
            iconst_0
            istore 3 /* result */
        start local 3 // int result
         1: iload 2 /* max */
            aload 1 /* buffer */
            arraylength
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* len */
        start local 4 // int len
         2: .line 310
            goto 8
         3: .line 311
      StackMap locals: int int
      StackMap stack:
            aload 0 /* in */
            aload 1 /* buffer */
            iload 3 /* result */
            iload 4 /* len */
            invokevirtual java.io.Reader.read:([CII)I
            istore 5 /* l */
        start local 5 // int l
         4: .line 312
            iload 5 /* l */
            ifge 6
         5: .line 313
            goto 9
         6: .line 315
      StackMap locals: int
      StackMap stack:
            iload 3 /* result */
            iload 5 /* l */
            iadd
            istore 3 /* result */
         7: .line 316
            iload 4 /* len */
            iload 5 /* l */
            isub
            istore 4 /* len */
        end local 5 // int l
         8: .line 310
      StackMap locals:
      StackMap stack:
            iload 4 /* len */
            ifgt 3
         9: .line 318
      StackMap locals:
      StackMap stack:
            iload 3 /* result */
        10: ireturn
        end local 4 // int len
        end local 3 // int result
        11: .line 319
      StackMap locals: java.io.Reader char[] int
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        12: .line 320
            aload 3 /* e */
            invokestatic org.h2.message.DbException.convertToIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 3 // java.lang.Exception e
        end local 2 // int max
        end local 1 // char[] buffer
        end local 0 // java.io.Reader in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0      in  Ljava/io/Reader;
            0   13     1  buffer  [C
            0   13     2     max  I
            1   11     3  result  I
            2   11     4     len  I
            4    8     5       l  I
           12   13     3       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    10      11  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      in      
      buffer  
      max     

  public static java.io.Reader getBufferedReader(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/io/Reader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // java.io.InputStream in
         0: .line 334
            aload 0 /* in */
            ifnonnull 1
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         1: new java.io.BufferedReader
            dup
         2: .line 335
            new java.io.InputStreamReader
            dup
            aload 0 /* in */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
         3: .line 334
      StackMap locals:
      StackMap stack: java.io.BufferedReader
            areturn
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    in  Ljava/io/InputStream;
    MethodParameters:
      Name  Flags
      in    

  public static java.io.Reader getReader(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/io/Reader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // java.io.InputStream in
         0: .line 349
            aload 0 /* in */
            ifnonnull 1
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         1: new java.io.BufferedReader
            dup
         2: .line 350
            new java.io.InputStreamReader
            dup
            aload 0 /* in */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
         3: .line 349
      StackMap locals:
      StackMap stack: java.io.BufferedReader
            areturn
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    in  Ljava/io/InputStream;
    MethodParameters:
      Name  Flags
      in    

  public static java.io.Writer getBufferedWriter(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)Ljava/io/Writer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // java.io.OutputStream out
         0: .line 361
            aload 0 /* out */
            ifnonnull 1
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         1: new java.io.BufferedWriter
            dup
         2: .line 362
            new java.io.OutputStreamWriter
            dup
            aload 0 /* out */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V
            invokespecial java.io.BufferedWriter.<init>:(Ljava/io/Writer;)V
         3: .line 361
      StackMap locals:
      StackMap stack: java.io.BufferedWriter
            areturn
        end local 0 // java.io.OutputStream out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   out  Ljava/io/OutputStream;
    MethodParameters:
      Name  Flags
      out   

  public static java.io.Reader getAsciiReader(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/io/Reader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.io.InputStream in
         0: .line 373
            aload 0 /* in */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: new java.io.InputStreamReader
            dup
            aload 0 /* in */
            getstatic java.nio.charset.StandardCharsets.US_ASCII:Ljava/nio/charset/Charset;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
      StackMap locals:
      StackMap stack: java.io.InputStreamReader
         2: areturn
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    in  Ljava/io/InputStream;
    MethodParameters:
      Name  Flags
      in    

  public static void trace(java.lang.String, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.String method
        start local 1 // java.lang.String fileName
        start local 2 // java.lang.Object o
         0: .line 384
            getstatic org.h2.engine.SysProperties.TRACE_IO:Z
            ifeq 2
         1: .line 385
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "IOUtils."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* fileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 2 /* o */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 387
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object o
        end local 1 // java.lang.String fileName
        end local 0 // java.lang.String method
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0    method  Ljava/lang/String;
            0    3     1  fileName  Ljava/lang/String;
            0    3     2         o  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      method    
      fileName  
      o         

  public static java.io.InputStream getInputStreamFromString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 398
            aload 0 /* s */
            ifnonnull 2
         1: .line 399
            aconst_null
            areturn
         2: .line 401
      StackMap locals:
      StackMap stack:
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* s */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            areturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  public static void copyFiles(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.String original
        start local 1 // java.lang.String copy
         0: .line 411
            aload 0 /* original */
            invokestatic org.h2.store.fs.FileUtils.newInputStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 2 /* in */
        start local 2 // java.io.InputStream in
         1: .line 412
            aload 1 /* copy */
            iconst_0
            invokestatic org.h2.store.fs.FileUtils.newOutputStream:(Ljava/lang/String;Z)Ljava/io/OutputStream;
            astore 3 /* out */
        start local 3 // java.io.OutputStream out
         2: .line 413
            aload 2 /* in */
            aload 3 /* out */
            invokestatic org.h2.util.IOUtils.copyAndClose:(Ljava/io/InputStream;Ljava/io/OutputStream;)J
            pop2
         3: .line 414
            return
        end local 3 // java.io.OutputStream out
        end local 2 // java.io.InputStream in
        end local 1 // java.lang.String copy
        end local 0 // java.lang.String original
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  original  Ljava/lang/String;
            0    4     1      copy  Ljava/lang/String;
            1    4     2        in  Ljava/io/InputStream;
            2    4     3       out  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      original  
      copy      
}
SourceFile: "IOUtils.java"