public class org.h2.tools.Restore extends org.h2.util.Tool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.tools.Restore
  super_class: org.h2.util.Tool
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Restore this
         0: .line 25
            aload 0 /* this */
            invokespecial org.h2.util.Tool.<init>:()V
            return
        end local 0 // org.h2.tools.Restore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Restore;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 46
            new org.h2.tools.Restore
            dup
            invokespecial org.h2.tools.Restore.<init>:()V
            aload 0 /* args */
            invokevirtual org.h2.tools.Restore.runTool:([Ljava/lang/String;)V
         1: .line 47
            return
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  args  [Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  public void runTool(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // org.h2.tools.Restore this
        start local 1 // java.lang.String[] args
         0: .line 51
            ldc "backup.zip"
            astore 2 /* zipFileName */
        start local 2 // java.lang.String zipFileName
         1: .line 52
            ldc "."
            astore 3 /* dir */
        start local 3 // java.lang.String dir
         2: .line 53
            aconst_null
            astore 4 /* db */
        start local 4 // java.lang.String db
         3: .line 54
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 21
         5: .line 55
      StackMap locals: org.h2.tools.Restore java.lang.String[] java.lang.String java.lang.String java.lang.String int
      StackMap stack:
            aload 1 /* args */
            iload 5 /* i */
            aaload
            astore 6 /* arg */
        start local 6 // java.lang.String arg
         6: .line 56
            aload 6 /* arg */
            ldc "-dir"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 57
            aload 1 /* args */
            iinc 5 /* i */ 1
            iload 5 /* i */
            aaload
            astore 3 /* dir */
         8: .line 58
            goto 20
      StackMap locals: java.lang.String
      StackMap stack:
         9: aload 6 /* arg */
            ldc "-file"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 59
            aload 1 /* args */
            iinc 5 /* i */ 1
            iload 5 /* i */
            aaload
            astore 2 /* zipFileName */
        11: .line 60
            goto 20
      StackMap locals:
      StackMap stack:
        12: aload 6 /* arg */
            ldc "-db"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 61
            aload 1 /* args */
            iinc 5 /* i */ 1
            iload 5 /* i */
            aaload
            astore 4 /* db */
        14: .line 62
            goto 20
      StackMap locals:
      StackMap stack:
        15: aload 6 /* arg */
            ldc "-quiet"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 20
        16: .line 64
            aload 6 /* arg */
            ldc "-help"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
            aload 6 /* arg */
            ldc "-?"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 65
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.tools.Restore.showUsage:()V
        18: .line 66
            return
        19: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* arg */
            invokevirtual org.h2.tools.Restore.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        end local 6 // java.lang.String arg
        20: .line 54
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: aload 1 /* args */
            ifnull 22
            iload 5 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 5
        end local 5 // int i
        22: .line 71
      StackMap locals:
      StackMap stack:
            aload 2 /* zipFileName */
            aload 3 /* dir */
            aload 4 /* db */
            invokestatic org.h2.tools.Restore.execute:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        23: .line 72
            return
        end local 4 // java.lang.String db
        end local 3 // java.lang.String dir
        end local 2 // java.lang.String zipFileName
        end local 1 // java.lang.String[] args
        end local 0 // org.h2.tools.Restore this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         this  Lorg/h2/tools/Restore;
            0   24     1         args  [Ljava/lang/String;
            1   24     2  zipFileName  Ljava/lang/String;
            2   24     3          dir  Ljava/lang/String;
            3   24     4           db  Ljava/lang/String;
            4   22     5            i  I
            6   20     6          arg  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  private static java.lang.String getOriginalDbName(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // java.lang.String fileName
        start local 1 // java.lang.String db
         0: .line 77
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: aload 0 /* fileName */
            invokestatic org.h2.store.fs.FileUtils.newInputStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 4 /* in */
        start local 4 // java.io.InputStream in
         2: .line 78
            new java.util.zip.ZipInputStream
            dup
            aload 4 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 5 /* zipIn */
        start local 5 // java.util.zip.ZipInputStream zipIn
         3: .line 79
            aconst_null
            astore 6 /* originalDbName */
        start local 6 // java.lang.String originalDbName
         4: .line 80
            iconst_0
            istore 7 /* multiple */
        start local 7 // boolean multiple
         5: .line 82
      StackMap locals: java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream java.util.zip.ZipInputStream java.lang.String int
      StackMap stack:
            aload 5 /* zipIn */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            astore 8 /* entry */
        start local 8 // java.util.zip.ZipEntry entry
         6: .line 83
            aload 8 /* entry */
            ifnonnull 8
         7: .line 84
            goto 20
         8: .line 86
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 8 /* entry */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 9 /* entryName */
        start local 9 // java.lang.String entryName
         9: .line 87
            aload 5 /* zipIn */
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
        10: .line 88
            aload 9 /* entryName */
            invokestatic org.h2.tools.Restore.getDatabaseNameFromFileName:(Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* name */
        start local 10 // java.lang.String name
        11: .line 89
            aload 10 /* name */
            ifnull 5
        12: .line 90
            aload 1 /* db */
            aload 10 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 91
            aload 10 /* name */
            astore 6 /* originalDbName */
        14: .line 93
            goto 20
        15: .line 94
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 6 /* originalDbName */
            ifnonnull 18
        16: .line 95
            aload 10 /* name */
            astore 6 /* originalDbName */
        17: .line 97
            goto 5
        18: .line 100
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* multiple */
        end local 10 // java.lang.String name
        end local 9 // java.lang.String entryName
        end local 8 // java.util.zip.ZipEntry entry
        19: .line 81
            goto 5
        20: .line 104
      StackMap locals:
      StackMap stack:
            aload 5 /* zipIn */
            invokevirtual java.util.zip.ZipInputStream.close:()V
        21: .line 105
            iload 7 /* multiple */
            ifeq 23
            aload 1 /* db */
            aload 6 /* originalDbName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
        22: .line 106
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Multiple databases found, but not "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* db */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 108
      StackMap locals:
      StackMap stack:
            aload 6 /* originalDbName */
        24: .line 109
            aload 4 /* in */
            ifnull 25
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
        25: .line 108
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 7 // boolean multiple
        end local 6 // java.lang.String originalDbName
        end local 5 // java.util.zip.ZipInputStream zipIn
      StackMap locals: java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        26: astore 2
        27: .line 109
            aload 4 /* in */
            ifnull 28
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream in
      StackMap locals:
      StackMap stack:
        28: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: astore 3
            aload 2
            ifnonnull 30
            aload 3
            astore 2
            goto 31
      StackMap locals:
      StackMap stack:
        30: aload 2
            aload 3
            if_acmpeq 31
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        31: aload 2
            athrow
        end local 1 // java.lang.String db
        end local 0 // java.lang.String fileName
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   32     0        fileName  Ljava/lang/String;
            0   32     1              db  Ljava/lang/String;
            2   28     4              in  Ljava/io/InputStream;
            3   26     5           zipIn  Ljava/util/zip/ZipInputStream;
            4   26     6  originalDbName  Ljava/lang/String;
            5   26     7        multiple  Z
            6   19     8           entry  Ljava/util/zip/ZipEntry;
            9   19     9       entryName  Ljava/lang/String;
           11   19    10            name  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2    24      26  any
           1    25      29  any
          26    29      29  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      fileName  
      db        

  private static java.lang.String getDatabaseNameFromFileName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String fileName
         0: .line 120
            aload 0 /* fileName */
            ldc ".h2.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 121
            aload 0 /* fileName */
            iconst_0
         2: .line 122
            aload 0 /* fileName */
            invokevirtual java.lang.String.length:()I
            ldc ".h2.db"
            invokevirtual java.lang.String.length:()I
            isub
         3: .line 121
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
         4: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* fileName */
            ldc ".mv.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 8
         5: .line 125
            aload 0 /* fileName */
            iconst_0
         6: .line 126
            aload 0 /* fileName */
            invokevirtual java.lang.String.length:()I
            ldc ".mv.db"
            invokevirtual java.lang.String.length:()I
            isub
         7: .line 125
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
         8: .line 128
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.String fileName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0  fileName  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      fileName  

  public static void execute(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=15, args_size=3
        start local 0 // java.lang.String zipFileName
        start local 1 // java.lang.String directory
        start local 2 // java.lang.String db
         0: .line 140
            aconst_null
            astore 3 /* in */
        start local 3 // java.io.InputStream in
         1: .line 142
            aload 0 /* zipFileName */
            invokestatic org.h2.store.fs.FileUtils.exists:(Ljava/lang/String;)Z
            ifne 3
         2: .line 143
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "File not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* zipFileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 145
      StackMap locals: java.io.InputStream
      StackMap stack:
            aconst_null
            astore 4 /* originalDbName */
        start local 4 // java.lang.String originalDbName
         4: .line 146
            iconst_0
            istore 5 /* originalDbLen */
        start local 5 // int originalDbLen
         5: .line 147
            aload 2 /* db */
            ifnull 12
         6: .line 148
            aload 0 /* zipFileName */
            aload 2 /* db */
            invokestatic org.h2.tools.Restore.getOriginalDbName:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* originalDbName */
         7: .line 149
            aload 4 /* originalDbName */
            ifnonnull 9
         8: .line 150
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No database named "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* db */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 152
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 4 /* originalDbName */
            getstatic org.h2.engine.SysProperties.FILE_SEPARATOR:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 11
        10: .line 153
            aload 4 /* originalDbName */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* originalDbName */
        11: .line 155
      StackMap locals:
      StackMap stack:
            aload 4 /* originalDbName */
            invokevirtual java.lang.String.length:()I
            istore 5 /* originalDbLen */
        12: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* zipFileName */
            invokestatic org.h2.store.fs.FileUtils.newInputStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 3 /* in */
        13: .line 158
            aconst_null
            astore 6
            aconst_null
            astore 7
        14: new java.util.zip.ZipInputStream
            dup
            aload 3 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 8 /* zipIn */
        start local 8 // java.util.zip.ZipInputStream zipIn
        15: .line 160
      StackMap locals: java.lang.Throwable java.lang.Throwable java.util.zip.ZipInputStream
      StackMap stack:
            aload 8 /* zipIn */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            astore 9 /* entry */
        start local 9 // java.util.zip.ZipEntry entry
        16: .line 161
            aload 9 /* entry */
            ifnonnull 18
        17: .line 162
            goto 43
        18: .line 164
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 9 /* entry */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 10 /* fileName */
        start local 10 // java.lang.String fileName
        19: .line 166
            aload 10 /* fileName */
            bipush 92
            getstatic org.h2.engine.SysProperties.FILE_SEPARATOR:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 10 /* fileName */
        20: .line 167
            aload 10 /* fileName */
            bipush 47
            getstatic org.h2.engine.SysProperties.FILE_SEPARATOR:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 10 /* fileName */
        21: .line 168
            aload 10 /* fileName */
            getstatic org.h2.engine.SysProperties.FILE_SEPARATOR:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 23
        22: .line 169
            aload 10 /* fileName */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 10 /* fileName */
        23: .line 171
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            istore 11 /* copy */
        start local 11 // boolean copy
        24: .line 172
            aload 2 /* db */
            ifnonnull 27
        25: .line 173
            iconst_1
            istore 11 /* copy */
        26: .line 174
            goto 30
      StackMap locals: int
      StackMap stack:
        27: aload 10 /* fileName */
            new java.lang.StringBuilder
            dup
            aload 4 /* originalDbName */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 30
        28: .line 175
            new java.lang.StringBuilder
            dup
            aload 2 /* db */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* fileName */
            iload 5 /* originalDbLen */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* fileName */
        29: .line 176
            iconst_1
            istore 11 /* copy */
        30: .line 178
      StackMap locals:
      StackMap stack:
            iload 11 /* copy */
            ifeq 41
        31: .line 179
            aconst_null
            astore 12 /* o */
        start local 12 // java.io.OutputStream o
        32: .line 182
            new java.lang.StringBuilder
            dup
            aload 1 /* directory */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.h2.engine.SysProperties.FILE_SEPARATOR:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* fileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
        33: .line 181
            invokestatic org.h2.store.fs.FileUtils.newOutputStream:(Ljava/lang/String;Z)Ljava/io/OutputStream;
            astore 12 /* o */
        34: .line 183
            aload 8 /* zipIn */
            aload 12 /* o */
            invokestatic org.h2.util.IOUtils.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)J
            pop2
        35: .line 184
            aload 12 /* o */
            invokevirtual java.io.OutputStream.close:()V
        36: .line 185
            goto 40
      StackMap locals: java.lang.String java.lang.String java.lang.String java.io.InputStream java.lang.String int java.lang.Throwable java.lang.Throwable java.util.zip.ZipInputStream java.util.zip.ZipEntry java.lang.String int java.io.OutputStream
      StackMap stack: java.lang.Throwable
        37: astore 13
        38: .line 186
            aload 12 /* o */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
        39: .line 187
            aload 13
            athrow
        40: .line 186
      StackMap locals:
      StackMap stack:
            aload 12 /* o */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
        end local 12 // java.io.OutputStream o
        41: .line 189
      StackMap locals:
      StackMap stack:
            aload 8 /* zipIn */
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
        end local 11 // boolean copy
        end local 10 // java.lang.String fileName
        end local 9 // java.util.zip.ZipEntry entry
        42: .line 159
            goto 15
        43: .line 191
      StackMap locals:
      StackMap stack:
            aload 8 /* zipIn */
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
        44: .line 192
            aload 8 /* zipIn */
            ifnull 55
            aload 8 /* zipIn */
            invokevirtual java.util.zip.ZipInputStream.close:()V
            goto 55
      StackMap locals:
      StackMap stack: java.lang.Throwable
        45: astore 6
            aload 8 /* zipIn */
            ifnull 46
            aload 8 /* zipIn */
            invokevirtual java.util.zip.ZipInputStream.close:()V
        end local 8 // java.util.zip.ZipInputStream zipIn
      StackMap locals:
      StackMap stack:
        46: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        47: astore 7
            aload 6
            ifnonnull 48
            aload 7
            astore 6
            goto 49
      StackMap locals:
      StackMap stack:
        48: aload 6
            aload 7
            if_acmpeq 49
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        49: aload 6
            athrow
        end local 5 // int originalDbLen
        end local 4 // java.lang.String originalDbName
        50: .line 193
      StackMap locals: java.lang.String java.lang.String java.lang.String java.io.InputStream
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        51: .line 194
            aload 4 /* e */
            aload 0 /* zipFileName */
            invokestatic org.h2.message.DbException.convertIOException:(Ljava/io/IOException;Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 4 // java.io.IOException e
        52: .line 195
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
        53: .line 196
            aload 3 /* in */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
        54: .line 197
            aload 14
            athrow
        55: .line 196
      StackMap locals:
      StackMap stack:
            aload 3 /* in */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
        56: .line 198
            return
        end local 3 // java.io.InputStream in
        end local 2 // java.lang.String db
        end local 1 // java.lang.String directory
        end local 0 // java.lang.String zipFileName
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   57     0     zipFileName  Ljava/lang/String;
            0   57     1       directory  Ljava/lang/String;
            0   57     2              db  Ljava/lang/String;
            1   57     3              in  Ljava/io/InputStream;
            4   50     4  originalDbName  Ljava/lang/String;
            5   50     5   originalDbLen  I
           15   46     8           zipIn  Ljava/util/zip/ZipInputStream;
           16   42     9           entry  Ljava/util/zip/ZipEntry;
           19   42    10        fileName  Ljava/lang/String;
           24   42    11            copy  Z
           32   41    12               o  Ljava/io/OutputStream;
           51   52     4               e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          32    37      37  any
          15    44      45  any
          14    47      47  any
           1    50      50  Class java.io.IOException
           1    52      52  any
    MethodParameters:
             Name  Flags
      zipFileName  
      directory    
      db           
}
SourceFile: "Restore.java"