public class org.graalvm.component.installer.os.WindowsFileOperations extends org.graalvm.component.installer.FileOperations
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.component.installer.os.WindowsFileOperations
  super_class: org.graalvm.component.installer.FileOperations
{
  private java.nio.file.Path delayDeletedList;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.file.Path copyContents;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.nio.file.Path, java.nio.file.Path> copiedPaths;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/nio/file/Path;Ljava/nio/file/Path;>;

  private java.util.NavigableSet<java.nio.file.Path> delayDeletedPaths;
    descriptor: Ljava/util/NavigableSet;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/NavigableSet<Ljava/nio/file/Path;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 58
            ldc Lorg/graalvm/component/installer/os/WindowsFileOperations;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.graalvm.component.installer.os.WindowsFileOperations.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
         0: .line 58
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.FileOperations.<init>:()V
         1: .line 72
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.graalvm.component.installer.os.WindowsFileOperations.copiedPaths:Ljava/util/Map;
         2: .line 77
            aload 0 /* this */
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            putfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedPaths:Ljava/util/NavigableSet;
         3: .line 58
            return
        end local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/component/installer/os/WindowsFileOperations;

  public void setDelayDeletedList(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
        start local 1 // java.nio.file.Path delayDeletedList
         0: .line 80
            aload 0 /* this */
            aload 1 /* delayDeletedList */
            putfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedList:Ljava/nio/file/Path;
         1: .line 81
            return
        end local 1 // java.nio.file.Path delayDeletedList
        end local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/graalvm/component/installer/os/WindowsFileOperations;
            0    2     1  delayDeletedList  Ljava/nio/file/Path;
    MethodParameters:
                  Name  Flags
      delayDeletedList  

  public void setCopyContents(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
        start local 1 // java.nio.file.Path copyContents
         0: .line 84
            aload 0 /* this */
            aload 1 /* copyContents */
            putfield org.graalvm.component.installer.os.WindowsFileOperations.copyContents:Ljava/nio/file/Path;
         1: .line 85
            return
        end local 1 // java.nio.file.Path copyContents
        end local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/graalvm/component/installer/os/WindowsFileOperations;
            0    2     1  copyContents  Ljava/nio/file/Path;
    MethodParameters:
              Name  Flags
      copyContents  

  public java.util.Map<java.nio.file.Path, java.nio.file.Path> getCopiedPaths();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
         0: .line 88
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.copiedPaths:Ljava/util/Map;
            areturn
        end local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/os/WindowsFileOperations;
    Signature: ()Ljava/util/Map<Ljava/nio/file/Path;Ljava/nio/file/Path;>;

  public java.util.Set<java.nio.file.Path> getDelayDeletedPaths();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
         0: .line 92
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedPaths:Ljava/util/NavigableSet;
            areturn
        end local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/os/WindowsFileOperations;
    Signature: ()Ljava/util/Set<Ljava/nio/file/Path;>;

  protected boolean doWithPermissions(java.nio.file.Path, java.util.concurrent.Callable<java.lang.Void>);
    descriptor: (Ljava/nio/file/Path;Ljava/util/concurrent/Callable;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=12, args_size=3
        start local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
        start local 1 // java.nio.file.Path p
        start local 2 // java.util.concurrent.Callable action
         0: .line 97
            aload 1 /* p */
            ldc Ljava/nio/file/attribute/AclFileAttributeView;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.getFileAttributeView:(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/FileAttributeView;
            checkcast java.nio.file.attribute.AclFileAttributeView
            astore 3 /* aclView */
        start local 3 // java.nio.file.attribute.AclFileAttributeView aclView
         1: .line 98
            aload 1 /* p */
            invokeinterface java.nio.file.Path.getFileSystem:()Ljava/nio/file/FileSystem;
            invokevirtual java.nio.file.FileSystem.getUserPrincipalLookupService:()Ljava/nio/file/attribute/UserPrincipalLookupService;
            astore 4 /* upls */
        start local 4 // java.nio.file.attribute.UserPrincipalLookupService upls
         2: .line 99
            ldc "user.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* un */
        start local 5 // java.lang.String un
         3: .line 104
            aload 4 /* upls */
            aload 5 /* un */
            invokevirtual java.nio.file.attribute.UserPrincipalLookupService.lookupPrincipalByName:(Ljava/lang/String;)Ljava/nio/file/attribute/UserPrincipal;
            astore 6 /* up */
        start local 6 // java.nio.file.attribute.UserPrincipal up
         4: .line 105
            aload 3 /* aclView */
            invokeinterface java.nio.file.attribute.AclFileAttributeView.getAcl:()Ljava/util/List;
            astore 7 /* save */
        start local 7 // java.util.List save
         5: .line 107
            new java.util.ArrayList
            dup
            aload 7 /* save */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 8 /* temp */
        start local 8 // java.util.List temp
         6: .line 108
            invokestatic java.nio.file.attribute.AclEntry.newBuilder:()Ljava/nio/file/attribute/AclEntry$Builder;
            getstatic java.nio.file.attribute.AclEntryType.ALLOW:Ljava/nio/file/attribute/AclEntryType;
            invokevirtual java.nio.file.attribute.AclEntry$Builder.setType:(Ljava/nio/file/attribute/AclEntryType;)Ljava/nio/file/attribute/AclEntry$Builder;
            aload 6 /* up */
            invokevirtual java.nio.file.attribute.AclEntry$Builder.setPrincipal:(Ljava/nio/file/attribute/UserPrincipal;)Ljava/nio/file/attribute/AclEntry$Builder;
            iconst_1
            anewarray java.nio.file.attribute.AclEntryPermission
            dup
            iconst_0
            getstatic java.nio.file.attribute.AclEntryPermission.DELETE:Ljava/nio/file/attribute/AclEntryPermission;
            aastore
            invokevirtual java.nio.file.attribute.AclEntry$Builder.setPermissions:([Ljava/nio/file/attribute/AclEntryPermission;)Ljava/nio/file/attribute/AclEntry$Builder;
            invokevirtual java.nio.file.attribute.AclEntry$Builder.build:()Ljava/nio/file/attribute/AclEntry;
            astore 9 /* en */
        start local 9 // java.nio.file.attribute.AclEntry en
         7: .line 109
            aload 8 /* temp */
            aload 9 /* en */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 110
            aload 3 /* aclView */
            aload 8 /* temp */
            invokeinterface java.nio.file.attribute.AclFileAttributeView.setAcl:(Ljava/util/List;)V
        end local 9 // java.nio.file.attribute.AclEntry en
        end local 8 // java.util.List temp
         9: .line 111
            goto 12
        end local 7 // java.util.List save
        end local 6 // java.nio.file.attribute.UserPrincipal up
      StackMap locals: org.graalvm.component.installer.os.WindowsFileOperations java.nio.file.Path java.util.concurrent.Callable java.nio.file.attribute.AclFileAttributeView java.nio.file.attribute.UserPrincipalLookupService java.lang.String
      StackMap stack: java.io.IOException
        10: pop
        11: .line 113
            iconst_0
            ireturn
        start local 6 // java.nio.file.attribute.UserPrincipal up
        start local 7 // java.util.List save
        12: .line 116
      StackMap locals: java.nio.file.attribute.UserPrincipal java.util.List
      StackMap stack:
            iconst_0
            istore 8 /* ok */
        start local 8 // boolean ok
        13: .line 118
            aload 2 /* action */
            invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
            pop
        14: .line 119
            iconst_1
            istore 8 /* ok */
        15: .line 120
            goto 33
      StackMap locals: org.graalvm.component.installer.os.WindowsFileOperations java.nio.file.Path java.util.concurrent.Callable java.nio.file.attribute.AclFileAttributeView java.nio.file.attribute.UserPrincipalLookupService java.lang.String java.nio.file.attribute.UserPrincipal java.util.List int
      StackMap stack: java.io.IOException
        16: astore 9 /* ex */
        start local 9 // java.io.IOException ex
        17: .line 121
            aload 9 /* ex */
            athrow
        end local 9 // java.io.IOException ex
        18: .line 122
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        19: .line 123
            iconst_0
            istore 8 /* ok */
        20: .line 126
            aload 3 /* aclView */
            aload 7 /* save */
            invokeinterface java.nio.file.attribute.AclFileAttributeView.setAcl:(Ljava/util/List;)V
        21: .line 127
            goto 38
      StackMap locals:
      StackMap stack: java.io.IOException
        22: astore 11 /* ex */
        start local 11 // java.io.IOException ex
        23: .line 129
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.os.WindowsFileOperations.feedback:()Lorg/graalvm/component/installer/Feedback;
            ldc "FILE_ErrorRestoringPermissions"
            aload 11 /* ex */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* p */
            aastore
            dup
            iconst_1
            aload 11 /* ex */
            invokevirtual java.io.IOException.getLocalizedMessage:()Ljava/lang/String;
            aastore
            invokeinterface org.graalvm.component.installer.Feedback.error:(Ljava/lang/String;Ljava/lang/Throwable;[Ljava/lang/Object;)V
        24: .line 131
            iconst_0
            istore 8 /* ok */
        end local 11 // java.io.IOException ex
        25: goto 38
        26: .line 124
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        27: .line 126
            aload 3 /* aclView */
            aload 7 /* save */
            invokeinterface java.nio.file.attribute.AclFileAttributeView.setAcl:(Ljava/util/List;)V
        28: .line 127
            goto 32
      StackMap locals: org.graalvm.component.installer.os.WindowsFileOperations java.nio.file.Path java.util.concurrent.Callable java.nio.file.attribute.AclFileAttributeView java.nio.file.attribute.UserPrincipalLookupService java.lang.String java.nio.file.attribute.UserPrincipal java.util.List int top java.lang.Throwable
      StackMap stack: java.io.IOException
        29: astore 11 /* ex */
        start local 11 // java.io.IOException ex
        30: .line 129
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.os.WindowsFileOperations.feedback:()Lorg/graalvm/component/installer/Feedback;
            ldc "FILE_ErrorRestoringPermissions"
            aload 11 /* ex */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* p */
            aastore
            dup
            iconst_1
            aload 11 /* ex */
            invokevirtual java.io.IOException.getLocalizedMessage:()Ljava/lang/String;
            aastore
            invokeinterface org.graalvm.component.installer.Feedback.error:(Ljava/lang/String;Ljava/lang/Throwable;[Ljava/lang/Object;)V
        31: .line 131
            iconst_0
            istore 8 /* ok */
        end local 11 // java.io.IOException ex
        32: .line 134
      StackMap locals:
      StackMap stack:
            aload 10
            athrow
        33: .line 126
      StackMap locals: org.graalvm.component.installer.os.WindowsFileOperations java.nio.file.Path java.util.concurrent.Callable java.nio.file.attribute.AclFileAttributeView java.nio.file.attribute.UserPrincipalLookupService java.lang.String java.nio.file.attribute.UserPrincipal java.util.List int
      StackMap stack:
            aload 3 /* aclView */
            aload 7 /* save */
            invokeinterface java.nio.file.attribute.AclFileAttributeView.setAcl:(Ljava/util/List;)V
        34: .line 127
            goto 38
      StackMap locals:
      StackMap stack: java.io.IOException
        35: astore 11 /* ex */
        start local 11 // java.io.IOException ex
        36: .line 129
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.os.WindowsFileOperations.feedback:()Lorg/graalvm/component/installer/Feedback;
            ldc "FILE_ErrorRestoringPermissions"
            aload 11 /* ex */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* p */
            aastore
            dup
            iconst_1
            aload 11 /* ex */
            invokevirtual java.io.IOException.getLocalizedMessage:()Ljava/lang/String;
            aastore
            invokeinterface org.graalvm.component.installer.Feedback.error:(Ljava/lang/String;Ljava/lang/Throwable;[Ljava/lang/Object;)V
        37: .line 131
            iconst_0
            istore 8 /* ok */
        end local 11 // java.io.IOException ex
        38: .line 135
      StackMap locals:
      StackMap stack:
            iload 8 /* ok */
            ireturn
        end local 8 // boolean ok
        end local 7 // java.util.List save
        end local 6 // java.nio.file.attribute.UserPrincipal up
        end local 5 // java.lang.String un
        end local 4 // java.nio.file.attribute.UserPrincipalLookupService upls
        end local 3 // java.nio.file.attribute.AclFileAttributeView aclView
        end local 2 // java.util.concurrent.Callable action
        end local 1 // java.nio.file.Path p
        end local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   39     0     this  Lorg/graalvm/component/installer/os/WindowsFileOperations;
            0   39     1        p  Ljava/nio/file/Path;
            0   39     2   action  Ljava/util/concurrent/Callable<Ljava/lang/Void;>;
            1   39     3  aclView  Ljava/nio/file/attribute/AclFileAttributeView;
            2   39     4     upls  Ljava/nio/file/attribute/UserPrincipalLookupService;
            3   39     5       un  Ljava/lang/String;
            4   10     6       up  Ljava/nio/file/attribute/UserPrincipal;
           12   39     6       up  Ljava/nio/file/attribute/UserPrincipal;
            5   10     7     save  Ljava/util/List<Ljava/nio/file/attribute/AclEntry;>;
           12   39     7     save  Ljava/util/List<Ljava/nio/file/attribute/AclEntry;>;
            6    9     8     temp  Ljava/util/List<Ljava/nio/file/attribute/AclEntry;>;
            7    9     9       en  Ljava/nio/file/attribute/AclEntry;
           13   39     8       ok  Z
           17   18     9       ex  Ljava/io/IOException;
           23   25    11       ex  Ljava/io/IOException;
           30   32    11       ex  Ljava/io/IOException;
           36   38    11       ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     9      10  Class java.io.IOException
          13    15      16  Class java.io.IOException
          13    15      18  Class java.lang.Exception
          20    21      22  Class java.io.IOException
          13    20      26  any
          27    28      29  Class java.io.IOException
          33    34      35  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;Ljava/util/concurrent/Callable<Ljava/lang/Void;>;)Z
    MethodParameters:
        Name  Flags
      p       
      action  

  public boolean flush();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
         0: .line 140
            iconst_0
            istore 1 /* r */
        start local 1 // boolean r
         1: .line 141
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.copyContents:Ljava/nio/file/Path;
            ifnull 18
         2: .line 142
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.copiedPaths:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* lines */
        start local 2 // java.util.List lines
         3: .line 143
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.copiedPaths:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 10
      StackMap locals: org.graalvm.component.installer.os.WindowsFileOperations int java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* e */
        start local 3 // java.util.Map$Entry e
         5: .line 144
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 5 /* orig */
        start local 5 // java.nio.file.Path orig
         6: .line 145
            aload 5 /* orig */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 10
         7: .line 146
            new java.lang.StringBuilder
            dup
            aload 5 /* orig */
            invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()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 3 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* s */
        start local 6 // java.lang.String s
         8: .line 147
            aload 2 /* lines */
            aload 6 /* s */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 149
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedPaths:Ljava/util/NavigableSet;
            aload 5 /* orig */
            invokeinterface java.util.NavigableSet.remove:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String s
        end local 5 // java.nio.file.Path orig
        end local 3 // java.util.Map$Entry e
        10: .line 143
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        11: .line 152
            aload 2 /* lines */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 13
        12: .line 153
            iconst_1
            istore 1 /* r */
        13: .line 155
      StackMap locals: org.graalvm.component.installer.os.WindowsFileOperations int java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.copyContents:Ljava/nio/file/Path;
            aload 2 /* lines */
            iconst_3
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
        14: .line 156
            getstatic java.nio.file.StandardOpenOption.CREATE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_1
        15: .line 157
            getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_2
        16: .line 158
            getstatic java.nio.file.StandardOpenOption.TRUNCATE_EXISTING:Ljava/nio/file/StandardOpenOption;
            aastore
        17: .line 155
            invokestatic java.nio.file.Files.write:(Ljava/nio/file/Path;Ljava/lang/Iterable;[Ljava/nio/file/OpenOption;)Ljava/nio/file/Path;
            pop
        end local 2 // java.util.List lines
        18: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedList:Ljava/nio/file/Path;
            ifnull 31
        19: .line 161
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedPaths:Ljava/util/NavigableSet;
            invokeinterface java.util.NavigableSet.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* lines */
        start local 2 // java.util.List lines
        20: .line 162
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedPaths:Ljava/util/NavigableSet;
            invokeinterface java.util.NavigableSet.iterator:()Ljava/util/Iterator;
            astore 4
            goto 23
      StackMap locals: org.graalvm.component.installer.os.WindowsFileOperations int java.util.List top java.util.Iterator
      StackMap stack:
        21: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 3 /* p */
        start local 3 // java.nio.file.Path p
        22: .line 163
            aload 2 /* lines */
            aload 3 /* p */
            invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.nio.file.Path p
        23: .line 162
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        24: .line 165
            aload 2 /* lines */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 26
        25: .line 166
            iconst_1
            istore 1 /* r */
        26: .line 168
      StackMap locals: org.graalvm.component.installer.os.WindowsFileOperations int java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedList:Ljava/nio/file/Path;
            aload 2 /* lines */
            iconst_3
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
        27: .line 169
            getstatic java.nio.file.StandardOpenOption.CREATE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_1
        28: .line 170
            getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_2
        29: .line 171
            getstatic java.nio.file.StandardOpenOption.TRUNCATE_EXISTING:Ljava/nio/file/StandardOpenOption;
            aastore
        30: .line 168
            invokestatic java.nio.file.Files.write:(Ljava/nio/file/Path;Ljava/lang/Iterable;[Ljava/nio/file/OpenOption;)Ljava/nio/file/Path;
            pop
        end local 2 // java.util.List lines
        31: .line 173
      StackMap locals:
      StackMap stack:
            iload 1 /* r */
            ireturn
        end local 1 // boolean r
        end local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   32     0   this  Lorg/graalvm/component/installer/os/WindowsFileOperations;
            1   32     1      r  Z
            3   18     2  lines  Ljava/util/List<Ljava/lang/String;>;
            5   10     3      e  Ljava/util/Map$Entry<Ljava/nio/file/Path;Ljava/nio/file/Path;>;
            6   10     5   orig  Ljava/nio/file/Path;
            8   10     6      s  Ljava/lang/String;
           20   31     2  lines  Ljava/util/List<Ljava/lang/String;>;
           22   23     3      p  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException

  protected void handleUndeletableFile(java.io.IOException, java.nio.file.Path);
    descriptor: (Ljava/io/IOException;Ljava/nio/file/Path;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
        start local 1 // java.io.IOException ex
        start local 2 // java.nio.file.Path p
         0: .line 178
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedList:Ljava/nio/file/Path;
            ifnonnull 3
         1: .line 179
            aload 0 /* this */
            aload 1 /* ex */
            aload 2 /* p */
            invokespecial org.graalvm.component.installer.FileOperations.handleUndeletableFile:(Ljava/io/IOException;Ljava/nio/file/Path;)V
         2: .line 180
            return
         3: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedPaths:Ljava/util/NavigableSet;
            aload 2 /* p */
            invokeinterface java.util.NavigableSet.add:(Ljava/lang/Object;)Z
            pop
         4: .line 183
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.os.WindowsFileOperations.feedback:()Lorg/graalvm/component/installer/Feedback;
            ldc "FILE_CannotDeleteFileTryDelayed"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* p */
            aastore
            dup
            iconst_1
            aload 1 /* ex */
            invokevirtual java.io.IOException.getLocalizedMessage:()Ljava/lang/String;
            aastore
            invokeinterface org.graalvm.component.installer.Feedback.output:(Ljava/lang/String;[Ljava/lang/Object;)V
         5: .line 184
            return
        end local 2 // java.nio.file.Path p
        end local 1 // java.io.IOException ex
        end local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/graalvm/component/installer/os/WindowsFileOperations;
            0    6     1    ex  Ljava/io/IOException;
            0    6     2     p  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ex    
      p     

  protected java.nio.file.Path handleUnmodifiableFile(java.io.IOException, java.nio.file.Path, java.io.InputStream);
    descriptor: (Ljava/io/IOException;Ljava/nio/file/Path;Ljava/io/InputStream;)Ljava/nio/file/Path;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
        start local 1 // java.io.IOException ex
        start local 2 // java.nio.file.Path p
        start local 3 // java.io.InputStream content
         0: .line 188
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.copyContents:Ljava/nio/file/Path;
            ifnonnull 2
         1: .line 189
            aload 0 /* this */
            aload 1 /* ex */
            aload 2 /* p */
            aload 3 /* content */
            invokespecial org.graalvm.component.installer.FileOperations.handleUnmodifiableFile:(Ljava/io/IOException;Ljava/nio/file/Path;Ljava/io/InputStream;)Ljava/nio/file/Path;
            areturn
         2: .line 191
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            astore 4 /* fn */
        start local 4 // java.nio.file.Path fn
         3: .line 192
            aload 2 /* p */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            astore 5 /* parentDir */
        start local 5 // java.nio.file.Path parentDir
         4: .line 193
            getstatic org.graalvm.component.installer.os.WindowsFileOperations.$assertionsDisabled:Z
            ifne 5
            aload 5 /* parentDir */
            ifnonnull 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 194
      StackMap locals: java.nio.file.Path java.nio.file.Path
      StackMap stack:
            getstatic org.graalvm.component.installer.os.WindowsFileOperations.$assertionsDisabled:Z
            ifne 6
            aload 4 /* fn */
            ifnonnull 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 195
      StackMap locals:
      StackMap stack:
            aload 5 /* parentDir */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            astore 6 /* pn */
        start local 6 // java.nio.file.Path pn
         7: .line 196
            getstatic org.graalvm.component.installer.os.WindowsFileOperations.$assertionsDisabled:Z
            ifne 8
            aload 6 /* pn */
            ifnonnull 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 197
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 5 /* parentDir */
            new java.lang.StringBuilder
            dup
            aload 6 /* pn */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".new"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.nio.file.Path.resolveSibling:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 7 /* copy */
        start local 7 // java.nio.file.Path copy
         9: .line 198
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.copiedPaths:Ljava/util/Map;
            aload 5 /* parentDir */
            aload 7 /* copy */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 200
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.os.WindowsFileOperations.feedback:()Lorg/graalvm/component/installer/Feedback;
            ldc "FILE_CannotInstallFileTryDelayed"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* p */
            aastore
            dup
            iconst_1
            aload 1 /* ex */
            invokevirtual java.io.IOException.getLocalizedMessage:()Ljava/lang/String;
            aastore
            invokeinterface org.graalvm.component.installer.Feedback.output:(Ljava/lang/String;[Ljava/lang/Object;)V
        11: .line 202
            aload 7 /* copy */
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
        12: .line 203
            aload 7 /* copy */
            aload 4 /* fn */
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 8 /* target */
        start local 8 // java.nio.file.Path target
        13: .line 204
            aload 3 /* content */
            aload 8 /* target */
            iconst_1
            anewarray java.nio.file.CopyOption
            dup
            iconst_0
            getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
            aastore
            invokestatic java.nio.file.Files.copy:(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J
            pop2
        14: .line 205
            aload 8 /* target */
            areturn
        end local 8 // java.nio.file.Path target
        end local 7 // java.nio.file.Path copy
        end local 6 // java.nio.file.Path pn
        end local 5 // java.nio.file.Path parentDir
        end local 4 // java.nio.file.Path fn
        end local 3 // java.io.InputStream content
        end local 2 // java.nio.file.Path p
        end local 1 // java.io.IOException ex
        end local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lorg/graalvm/component/installer/os/WindowsFileOperations;
            0   15     1         ex  Ljava/io/IOException;
            0   15     2          p  Ljava/nio/file/Path;
            0   15     3    content  Ljava/io/InputStream;
            3   15     4         fn  Ljava/nio/file/Path;
            4   15     5  parentDir  Ljava/nio/file/Path;
            7   15     6         pn  Ljava/nio/file/Path;
            9   15     7       copy  Ljava/nio/file/Path;
           13   15     8     target  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      ex       
      p        
      content  

  public java.nio.file.Path materialize(java.nio.file.Path, boolean);
    descriptor: (Ljava/nio/file/Path;Z)Ljava/nio/file/Path;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
        start local 1 // java.nio.file.Path p
        start local 2 // boolean write
         0: .line 219
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.copyContents:Ljava/nio/file/Path;
            ifnull 1
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedList:Ljava/nio/file/Path;
            ifnonnull 2
         1: .line 220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* p */
            iload 2 /* write */
            invokespecial org.graalvm.component.installer.FileOperations.materialize:(Ljava/nio/file/Path;Z)Ljava/nio/file/Path;
            areturn
         2: .line 222
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            astore 3 /* parentDir */
        start local 3 // java.nio.file.Path parentDir
         3: .line 223
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.copiedPaths:Ljava/util/Map;
            aload 3 /* parentDir */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 4 /* copy */
        start local 4 // java.nio.file.Path copy
         4: .line 224
            aload 1 /* p */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            astore 5 /* fn */
        start local 5 // java.nio.file.Path fn
         5: .line 225
            getstatic org.graalvm.component.installer.os.WindowsFileOperations.$assertionsDisabled:Z
            ifne 6
            aload 5 /* fn */
            ifnonnull 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 226
      StackMap locals: java.nio.file.Path java.nio.file.Path java.nio.file.Path
      StackMap stack:
            getstatic org.graalvm.component.installer.os.WindowsFileOperations.$assertionsDisabled:Z
            ifne 7
            aload 3 /* parentDir */
            ifnonnull 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 227
      StackMap locals:
      StackMap stack:
            aload 4 /* copy */
            ifnull 10
         8: .line 228
            aload 4 /* copy */
            aload 5 /* fn */
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 6 /* r */
        start local 6 // java.nio.file.Path r
         9: .line 229
            aload 6 /* r */
            areturn
        end local 6 // java.nio.file.Path r
        10: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedPaths:Ljava/util/NavigableSet;
            aload 1 /* p */
            invokeinterface java.util.NavigableSet.contains:(Ljava/lang/Object;)Z
            ifeq 18
        11: .line 232
            iload 2 /* write */
            ifeq 17
        12: .line 233
            aload 3 /* parentDir */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            astore 6 /* pn */
        start local 6 // java.nio.file.Path pn
        13: .line 234
            getstatic org.graalvm.component.installer.os.WindowsFileOperations.$assertionsDisabled:Z
            ifne 14
            aload 6 /* pn */
            ifnonnull 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 235
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 3 /* parentDir */
            new java.lang.StringBuilder
            dup
            aload 6 /* pn */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".new"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.nio.file.Path.resolveSibling:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 4 /* copy */
        15: .line 236
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.copiedPaths:Ljava/util/Map;
            aload 3 /* parentDir */
            aload 4 /* copy */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 237
            aload 4 /* copy */
            aload 5 /* fn */
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            areturn
        end local 6 // java.nio.file.Path pn
        17: .line 240
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        18: .line 243
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            areturn
        end local 5 // java.nio.file.Path fn
        end local 4 // java.nio.file.Path copy
        end local 3 // java.nio.file.Path parentDir
        end local 2 // boolean write
        end local 1 // java.nio.file.Path p
        end local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Lorg/graalvm/component/installer/os/WindowsFileOperations;
            0   19     1          p  Ljava/nio/file/Path;
            0   19     2      write  Z
            3   19     3  parentDir  Ljava/nio/file/Path;
            4   19     4       copy  Ljava/nio/file/Path;
            5   19     5         fn  Ljava/nio/file/Path;
            9   10     6          r  Ljava/nio/file/Path;
           13   17     6         pn  Ljava/nio/file/Path;
    MethodParameters:
       Name  Flags
      p      
      write  

  public void setPermissions(java.nio.file.Path, java.util.Set<java.nio.file.attribute.PosixFilePermission>);
    descriptor: (Ljava/nio/file/Path;Ljava/util/Set;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
        start local 1 // java.nio.file.Path target
        start local 2 // java.util.Set perms
         0: .line 249
            return
        end local 2 // java.util.Set perms
        end local 1 // java.nio.file.Path target
        end local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/graalvm/component/installer/os/WindowsFileOperations;
            0    1     1  target  Ljava/nio/file/Path;
            0    1     2   perms  Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;)V
    MethodParameters:
        Name  Flags
      target  
      perms   

  protected void performDelete(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
        start local 1 // java.nio.file.Path p
         0: .line 255
            aload 0 /* this */
            getfield org.graalvm.component.installer.os.WindowsFileOperations.delayDeletedPaths:Ljava/util/NavigableSet;
            aload 1 /* p */
            invokeinterface java.util.NavigableSet.ceiling:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 2 /* next */
        start local 2 // java.nio.file.Path next
         1: .line 256
            aload 2 /* next */
            ifnull 4
            aload 2 /* next */
            aload 1 /* p */
            invokeinterface java.nio.file.Path.startsWith:(Ljava/nio/file/Path;)Z
            ifeq 4
         2: .line 257
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.os.WindowsFileOperations.feedback:()Lorg/graalvm/component/installer/Feedback;
            ldc "FILE_CannotDeleteParentTryDelayed"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* p */
            aastore
            invokeinterface org.graalvm.component.installer.Feedback.output:(Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 258
            goto 5
         4: .line 259
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            aload 1 /* p */
            invokespecial org.graalvm.component.installer.FileOperations.performDelete:(Ljava/nio/file/Path;)V
         5: .line 261
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.nio.file.Path next
        end local 1 // java.nio.file.Path p
        end local 0 // org.graalvm.component.installer.os.WindowsFileOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/graalvm/component/installer/os/WindowsFileOperations;
            0    6     1     p  Ljava/nio/file/Path;
            1    6     2  next  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      p     
}
SourceFile: "WindowsFileOperations.java"
InnerClasses:
  public final Builder = java.nio.file.attribute.AclEntry$Builder of java.nio.file.attribute.AclEntry
  public abstract Entry = java.util.Map$Entry of java.util.Map