public class org.eclipse.jgit.util.FS_POSIX extends org.eclipse.jgit.util.FS
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jgit.util.FS_POSIX
  super_class: org.eclipse.jgit.util.FS
{
  private static final org.slf4j.Logger LOG;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private volatile int umask;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private static final java.util.Map<java.nio.file.FileStore, java.lang.Boolean> CAN_HARD_LINK;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/nio/file/FileStore;Ljava/lang/Boolean;>;

  private volatile org.eclipse.jgit.util.FS_POSIX$AtomicFileCreation supportsAtomicFileCreation;
    descriptor: Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 89
            ldc Lorg/eclipse/jgit/util/FS_POSIX;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.eclipse.jgit.util.FS_POSIX.LOG:Lorg/slf4j/Logger;
         1: .line 94
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putstatic org.eclipse.jgit.util.FS_POSIX.CAN_HARD_LINK:Ljava/util/Map;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
         0: .line 105
            aload 0 /* this */
            invokespecial org.eclipse.jgit.util.FS.<init>:()V
         1: .line 92
            aload 0 /* this */
            iconst_m1
            putfield org.eclipse.jgit.util.FS_POSIX.umask:I
         2: .line 96
            aload 0 /* this */
            getstatic org.eclipse.jgit.util.FS_POSIX$AtomicFileCreation.UNDEFINED:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
            putfield org.eclipse.jgit.util.FS_POSIX.supportsAtomicFileCreation:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
         3: .line 106
            return
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/eclipse/jgit/util/FS_POSIX;

  protected void <init>(org.eclipse.jgit.util.FS);
    descriptor: (Lorg/eclipse/jgit/util/FS;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // org.eclipse.jgit.util.FS src
         0: .line 115
            aload 0 /* this */
            aload 1 /* src */
            invokespecial org.eclipse.jgit.util.FS.<init>:(Lorg/eclipse/jgit/util/FS;)V
         1: .line 92
            aload 0 /* this */
            iconst_m1
            putfield org.eclipse.jgit.util.FS_POSIX.umask:I
         2: .line 96
            aload 0 /* this */
            getstatic org.eclipse.jgit.util.FS_POSIX$AtomicFileCreation.UNDEFINED:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
            putfield org.eclipse.jgit.util.FS_POSIX.supportsAtomicFileCreation:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
         3: .line 116
            aload 1 /* src */
            instanceof org.eclipse.jgit.util.FS_POSIX
            ifeq 5
         4: .line 117
            aload 0 /* this */
            aload 1 /* src */
            checkcast org.eclipse.jgit.util.FS_POSIX
            getfield org.eclipse.jgit.util.FS_POSIX.umask:I
            putfield org.eclipse.jgit.util.FS_POSIX.umask:I
         5: .line 119
      StackMap locals: org.eclipse.jgit.util.FS_POSIX org.eclipse.jgit.util.FS
      StackMap stack:
            return
        end local 1 // org.eclipse.jgit.util.FS src
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/eclipse/jgit/util/FS_POSIX;
            0    6     1   src  Lorg/eclipse/jgit/util/FS;
    MethodParameters:
      Name  Flags
      src   

  public org.eclipse.jgit.util.FS newInstance();
    descriptor: ()Lorg/eclipse/jgit/util/FS;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
         0: .line 124
            new org.eclipse.jgit.util.FS_POSIX
            dup
            aload 0 /* this */
            invokespecial org.eclipse.jgit.util.FS_POSIX.<init>:(Lorg/eclipse/jgit/util/FS;)V
            areturn
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/util/FS_POSIX;

  public void setUmask(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // int umask
         0: .line 135
            aload 0 /* this */
            iload 1 /* umask */
            putfield org.eclipse.jgit.util.FS_POSIX.umask:I
         1: .line 136
            return
        end local 1 // int umask
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/eclipse/jgit/util/FS_POSIX;
            0    2     1  umask  I
    MethodParameters:
       Name  Flags
      umask  

  private int umask();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
         0: .line 139
            aload 0 /* this */
            getfield org.eclipse.jgit.util.FS_POSIX.umask:I
            istore 1 /* u */
        start local 1 // int u
         1: .line 140
            iload 1 /* u */
            iconst_m1
            if_icmpne 4
         2: .line 141
            invokestatic org.eclipse.jgit.util.FS_POSIX.readUmask:()I
            istore 1 /* u */
         3: .line 142
            aload 0 /* this */
            iload 1 /* u */
            putfield org.eclipse.jgit.util.FS_POSIX.umask:I
         4: .line 144
      StackMap locals: int
      StackMap stack:
            iload 1 /* u */
            ireturn
        end local 1 // int u
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/eclipse/jgit/util/FS_POSIX;
            1    5     1     u  I

  private static int readUmask();
    descriptor: ()I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=0
         0: .line 150
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
         1: .line 151
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "sh"
            aastore
            dup
            iconst_1
            ldc "-c"
            aastore
            dup
            iconst_2
            ldc "umask"
            aastore
         2: .line 152
            aconst_null
            aconst_null
         3: .line 150
            invokevirtual java.lang.Runtime.exec:([Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
            astore 0 /* p */
        start local 0 // java.lang.Process p
         4: .line 153
            aconst_null
            astore 1
            aconst_null
            astore 2
         5: new java.io.BufferedReader
            dup
         6: .line 154
            new java.io.InputStreamReader
            dup
            aload 0 /* p */
            invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
         7: .line 155
            invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
         8: .line 154
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
         9: .line 153
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 3 /* lineRead */
        start local 3 // java.io.BufferedReader lineRead
        10: .line 156
            aload 0 /* p */
            invokevirtual java.lang.Process.waitFor:()I
            ifne 16
        11: .line 157
            aload 3 /* lineRead */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            astore 4 /* s */
        start local 4 // java.lang.String s
        12: .line 158
            aload 4 /* s */
            ifnull 16
            aload 4 /* s */
            ldc "0?\\d{3}"
            invokevirtual java.lang.String.matches:(Ljava/lang/String;)Z
            ifeq 16
        13: .line 159
            aload 4 /* s */
            bipush 8
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
        14: .line 163
            aload 3 /* lineRead */
            ifnull 15
            aload 3 /* lineRead */
            invokevirtual java.io.BufferedReader.close:()V
        15: .line 159
      StackMap locals: java.lang.Process java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String
      StackMap stack: int
            ireturn
        end local 4 // java.lang.String s
        16: .line 163
      StackMap locals:
      StackMap stack:
            aload 3 /* lineRead */
            ifnull 17
            aload 3 /* lineRead */
            invokevirtual java.io.BufferedReader.close:()V
        17: .line 162
      StackMap locals:
      StackMap stack:
            bipush 18
            ireturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 1
        19: .line 163
            aload 3 /* lineRead */
            ifnull 20
            aload 3 /* lineRead */
            invokevirtual java.io.BufferedReader.close:()V
        end local 3 // java.io.BufferedReader lineRead
      StackMap locals:
      StackMap stack:
        20: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 2
            aload 1
            ifnonnull 22
            aload 2
            astore 1
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 1
            aload 2
            if_acmpeq 23
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        23: aload 1
            athrow
        end local 0 // java.lang.Process p
        24: .line 164
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        25: .line 165
            bipush 18
            ireturn
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            4   24     0         p  Ljava/lang/Process;
           10   20     3  lineRead  Ljava/io/BufferedReader;
           12   16     4         s  Ljava/lang/String;
      Exception table:
        from    to  target  type
          10    14      18  any
           5    15      21  any
          16    17      21  any
          18    21      21  any
           0    15      24  Class java.lang.Exception
          16    17      24  Class java.lang.Exception
          18    24      24  Class java.lang.Exception

  protected java.io.File discoverGitExe();
    descriptor: ()Ljava/io/File;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
         0: .line 172
            invokestatic org.eclipse.jgit.util.SystemReader.getInstance:()Lorg/eclipse/jgit/util/SystemReader;
            ldc "PATH"
            invokevirtual org.eclipse.jgit.util.SystemReader.getenv:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* path */
        start local 1 // java.lang.String path
         1: .line 173
            aload 1 /* path */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "git"
            aastore
            invokestatic org.eclipse.jgit.util.FS_POSIX.searchPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/io/File;
            astore 2 /* gitExe */
        start local 2 // java.io.File gitExe
         2: .line 175
            aload 2 /* gitExe */
            ifnonnull 15
         3: .line 176
            invokestatic org.eclipse.jgit.util.SystemReader.getInstance:()Lorg/eclipse/jgit/util/SystemReader;
            invokevirtual org.eclipse.jgit.util.SystemReader.isMacOS:()Z
            ifeq 15
         4: .line 177
            aload 1 /* path */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "bash"
            aastore
            invokestatic org.eclipse.jgit.util.FS_POSIX.searchPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/io/File;
            ifnull 15
         5: .line 183
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.util.FS_POSIX.userHome:()Ljava/io/File;
         6: .line 184
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
            ldc "bash"
            aastore
            dup
            iconst_1
            ldc "--login"
            aastore
            dup
            iconst_2
            ldc "-c"
            aastore
            dup
            iconst_3
            ldc "which git"
            aastore
         7: .line 185
            invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
         8: .line 183
            invokestatic org.eclipse.jgit.util.FS_POSIX.readPipe:(Ljava/io/File;[Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* w */
        start local 3 // java.lang.String w
         9: .line 186
            goto 13
        end local 3 // java.lang.String w
      StackMap locals: org.eclipse.jgit.util.FS_POSIX java.lang.String java.io.File
      StackMap stack: org.eclipse.jgit.errors.CommandFailedException
        10: astore 4 /* e */
        start local 4 // org.eclipse.jgit.errors.CommandFailedException e
        11: .line 187
            getstatic org.eclipse.jgit.util.FS_POSIX.LOG:Lorg/slf4j/Logger;
            aload 4 /* e */
            invokevirtual org.eclipse.jgit.errors.CommandFailedException.getMessage:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
        12: .line 188
            aconst_null
            areturn
        end local 4 // org.eclipse.jgit.errors.CommandFailedException e
        start local 3 // java.lang.String w
        13: .line 190
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* w */
            invokestatic org.eclipse.jgit.util.StringUtils.isEmptyOrNull:(Ljava/lang/String;)Z
            ifne 15
        14: .line 191
            new java.io.File
            dup
            aload 3 /* w */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 2 /* gitExe */
        end local 3 // java.lang.String w
        15: .line 197
      StackMap locals:
      StackMap stack:
            aload 2 /* gitExe */
            areturn
        end local 2 // java.io.File gitExe
        end local 1 // java.lang.String path
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lorg/eclipse/jgit/util/FS_POSIX;
            1   16     1    path  Ljava/lang/String;
            2   16     2  gitExe  Ljava/io/File;
            9   10     3       w  Ljava/lang/String;
           13   15     3       w  Ljava/lang/String;
           11   13     4       e  Lorg/eclipse/jgit/errors/CommandFailedException;
      Exception table:
        from    to  target  type
           5     9      10  Class org.eclipse.jgit.errors.CommandFailedException

  public boolean isCaseSensitive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
         0: .line 203
            invokestatic org.eclipse.jgit.util.SystemReader.getInstance:()Lorg/eclipse/jgit/util/SystemReader;
            invokevirtual org.eclipse.jgit.util.SystemReader.isMacOS:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jgit/util/FS_POSIX;

  public boolean supportsExecute();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
         0: .line 209
            iconst_1
            ireturn
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/util/FS_POSIX;

  public boolean canExecute(java.io.File);
    descriptor: (Ljava/io/File;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // java.io.File f
         0: .line 215
            aload 1 /* f */
            invokestatic org.eclipse.jgit.util.FileUtils.canExecute:(Ljava/io/File;)Z
            ireturn
        end local 1 // java.io.File f
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/util/FS_POSIX;
            0    1     1     f  Ljava/io/File;
    MethodParameters:
      Name  Flags
      f     

  public boolean setExecute(java.io.File, boolean);
    descriptor: (Ljava/io/File;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // java.io.File f
        start local 2 // boolean canExecute
         0: .line 221
            aload 0 /* this */
            aload 1 /* f */
            invokevirtual org.eclipse.jgit.util.FS_POSIX.isFile:(Ljava/io/File;)Z
            ifne 2
         1: .line 222
            iconst_0
            ireturn
         2: .line 223
      StackMap locals:
      StackMap stack:
            iload 2 /* canExecute */
            ifne 4
         3: .line 224
            aload 1 /* f */
            iconst_0
            iconst_0
            invokevirtual java.io.File.setExecutable:(ZZ)Z
            ireturn
         4: .line 227
      StackMap locals:
      StackMap stack:
            aload 1 /* f */
            invokestatic org.eclipse.jgit.util.FileUtils.toPath:(Ljava/io/File;)Ljava/nio/file/Path;
            astore 3 /* path */
        start local 3 // java.nio.file.Path path
         5: .line 228
            aload 3 /* path */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.getPosixFilePermissions:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Ljava/util/Set;
            astore 4 /* pset */
        start local 4 // java.util.Set pset
         6: .line 231
            aload 4 /* pset */
            getstatic java.nio.file.attribute.PosixFilePermission.OWNER_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 233
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.util.FS_POSIX.umask:()I
            istore 5 /* mask */
        start local 5 // int mask
         8: .line 234
            aload 4 /* pset */
            iload 5 /* mask */
            getstatic java.nio.file.attribute.PosixFilePermission.GROUP_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
            bipush 8
            invokestatic org.eclipse.jgit.util.FS_POSIX.apply:(Ljava/util/Set;ILjava/nio/file/attribute/PosixFilePermission;I)V
         9: .line 235
            aload 4 /* pset */
            iload 5 /* mask */
            getstatic java.nio.file.attribute.PosixFilePermission.OTHERS_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
            iconst_1
            invokestatic org.eclipse.jgit.util.FS_POSIX.apply:(Ljava/util/Set;ILjava/nio/file/attribute/PosixFilePermission;I)V
        10: .line 236
            aload 3 /* path */
            aload 4 /* pset */
            invokestatic java.nio.file.Files.setPosixFilePermissions:(Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
            pop
        11: .line 237
            iconst_1
            ireturn
        end local 5 // int mask
        end local 4 // java.util.Set pset
        end local 3 // java.nio.file.Path path
        12: .line 238
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        13: .line 241
            invokestatic org.eclipse.jgit.util.SystemReader.getInstance:()Lorg/eclipse/jgit/util/SystemReader;
            ldc "jgit.fs.debug"
            invokevirtual org.eclipse.jgit.util.SystemReader.getProperty:(Ljava/lang/String;)Ljava/lang/String;
        14: .line 240
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            istore 4 /* debug */
        start local 4 // boolean debug
        15: .line 242
            iload 4 /* debug */
            ifeq 17
        16: .line 243
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 3 /* e */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
        17: .line 244
      StackMap locals: java.io.IOException int
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // boolean debug
        end local 3 // java.io.IOException e
        end local 2 // boolean canExecute
        end local 1 // java.io.File f
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lorg/eclipse/jgit/util/FS_POSIX;
            0   18     1           f  Ljava/io/File;
            0   18     2  canExecute  Z
            5   12     3        path  Ljava/nio/file/Path;
            6   12     4        pset  Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;
            8   12     5        mask  I
           13   18     3           e  Ljava/io/IOException;
           15   18     4       debug  Z
      Exception table:
        from    to  target  type
           4    11      12  Class java.io.IOException
    MethodParameters:
            Name  Flags
      f           
      canExecute  

  private static void apply(java.util.Set<java.nio.file.attribute.PosixFilePermission>, int, java.nio.file.attribute.PosixFilePermission, );
    descriptor: (Ljava/util/Set;ILjava/nio/file/attribute/PosixFilePermission;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // java.util.Set set
        start local 1 // int umask
        start local 2 // java.nio.file.attribute.PosixFilePermission perm
        start local 3 // int test
         0: .line 250
            iload 1 /* umask */
            iload 3 /* test */
            iand
            ifne 3
         1: .line 252
            aload 0 /* set */
            aload 2 /* perm */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 253
            goto 4
         3: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* set */
            aload 2 /* perm */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         4: .line 257
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int test
        end local 2 // java.nio.file.attribute.PosixFilePermission perm
        end local 1 // int umask
        end local 0 // java.util.Set set
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0    set  Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;
            0    5     1  umask  I
            0    5     2   perm  Ljava/nio/file/attribute/PosixFilePermission;
            0    5     3   test  I
    Signature: (Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;ILjava/nio/file/attribute/PosixFilePermission;I)V
    MethodParameters:
       Name  Flags
      set    
      umask  
      perm   
      test   

  public java.lang.ProcessBuilder runInShell(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/ProcessBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // java.lang.String cmd
        start local 2 // java.lang.String[] args
         0: .line 262
            new java.util.ArrayList
            dup
            iconst_4
            aload 2 /* args */
            arraylength
            iadd
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* argv */
        start local 3 // java.util.List argv
         1: .line 263
            aload 3 /* argv */
            ldc "sh"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 264
            aload 3 /* argv */
            ldc "-c"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 265
            aload 3 /* argv */
            new java.lang.StringBuilder
            dup
            aload 1 /* cmd */
            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;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 266
            aload 3 /* argv */
            aload 1 /* cmd */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 267
            aload 3 /* argv */
            aload 2 /* args */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         6: .line 268
            new java.lang.ProcessBuilder
            dup
            iconst_0
            anewarray java.lang.String
            invokespecial java.lang.ProcessBuilder.<init>:([Ljava/lang/String;)V
            astore 4 /* proc */
        start local 4 // java.lang.ProcessBuilder proc
         7: .line 269
            aload 4 /* proc */
            aload 3 /* argv */
            invokevirtual java.lang.ProcessBuilder.command:(Ljava/util/List;)Ljava/lang/ProcessBuilder;
            pop
         8: .line 270
            aload 4 /* proc */
            areturn
        end local 4 // java.lang.ProcessBuilder proc
        end local 3 // java.util.List argv
        end local 2 // java.lang.String[] args
        end local 1 // java.lang.String cmd
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/eclipse/jgit/util/FS_POSIX;
            0    9     1   cmd  Ljava/lang/String;
            0    9     2  args  [Ljava/lang/String;
            1    9     3  argv  Ljava/util/List<Ljava/lang/String;>;
            7    9     4  proc  Ljava/lang/ProcessBuilder;
    MethodParameters:
      Name  Flags
      cmd   
      args  

  public org.eclipse.jgit.util.ProcessResult runHookIfPresent(org.eclipse.jgit.lib.Repository, java.lang.String, java.lang.String[], java.io.PrintStream, java.io.PrintStream, java.lang.String);
    descriptor: (Lorg/eclipse/jgit/lib/Repository;Ljava/lang/String;[Ljava/lang/String;Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/lang/String;)Lorg/eclipse/jgit/util/ProcessResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // org.eclipse.jgit.lib.Repository repository
        start local 2 // java.lang.String hookName
        start local 3 // java.lang.String[] args
        start local 4 // java.io.PrintStream outRedirect
        start local 5 // java.io.PrintStream errRedirect
        start local 6 // java.lang.String stdinArgs
         0: .line 278
            aload 0 /* this */
            aload 1 /* repository */
            aload 2 /* hookName */
            aload 3 /* args */
            aload 4 /* outRedirect */
         1: .line 279
            aload 5 /* errRedirect */
            aload 6 /* stdinArgs */
         2: .line 278
            invokevirtual org.eclipse.jgit.util.FS_POSIX.internalRunHookIfPresent:(Lorg/eclipse/jgit/lib/Repository;Ljava/lang/String;[Ljava/lang/String;Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/lang/String;)Lorg/eclipse/jgit/util/ProcessResult;
            areturn
        end local 6 // java.lang.String stdinArgs
        end local 5 // java.io.PrintStream errRedirect
        end local 4 // java.io.PrintStream outRedirect
        end local 3 // java.lang.String[] args
        end local 2 // java.lang.String hookName
        end local 1 // org.eclipse.jgit.lib.Repository repository
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/eclipse/jgit/util/FS_POSIX;
            0    3     1   repository  Lorg/eclipse/jgit/lib/Repository;
            0    3     2     hookName  Ljava/lang/String;
            0    3     3         args  [Ljava/lang/String;
            0    3     4  outRedirect  Ljava/io/PrintStream;
            0    3     5  errRedirect  Ljava/io/PrintStream;
            0    3     6    stdinArgs  Ljava/lang/String;
    Exceptions:
      throws org.eclipse.jgit.api.errors.JGitInternalException
    MethodParameters:
             Name  Flags
      repository   
      hookName     
      args         
      outRedirect  
      errRedirect  
      stdinArgs    

  public boolean retryFailedLockFileCommit();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
         0: .line 285
            iconst_0
            ireturn
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/util/FS_POSIX;

  public void setHidden(java.io.File, boolean);
    descriptor: (Ljava/io/File;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // java.io.File path
        start local 2 // boolean hidden
         0: .line 292
            return
        end local 2 // boolean hidden
        end local 1 // java.io.File path
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/eclipse/jgit/util/FS_POSIX;
            0    1     1    path  Ljava/io/File;
            0    1     2  hidden  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      path    
      hidden  

  public org.eclipse.jgit.util.FS$Attributes getAttributes(java.io.File);
    descriptor: (Ljava/io/File;)Lorg/eclipse/jgit/util/FS$Attributes;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // java.io.File path
         0: .line 297
            aload 0 /* this */
            aload 1 /* path */
            invokestatic org.eclipse.jgit.util.FileUtils.getFileAttributesPosix:(Lorg/eclipse/jgit/util/FS;Ljava/io/File;)Lorg/eclipse/jgit/util/FS$Attributes;
            areturn
        end local 1 // java.io.File path
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/util/FS_POSIX;
            0    1     1  path  Ljava/io/File;
    MethodParameters:
      Name  Flags
      path  

  public java.io.File normalize(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/io/File;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // java.io.File file
         0: .line 303
            aload 1 /* file */
            invokestatic org.eclipse.jgit.util.FileUtils.normalize:(Ljava/io/File;)Ljava/io/File;
            areturn
        end local 1 // java.io.File file
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/util/FS_POSIX;
            0    1     1  file  Ljava/io/File;
    MethodParameters:
      Name  Flags
      file  

  public java.lang.String normalize(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // java.lang.String name
         0: .line 309
            aload 1 /* name */
            invokestatic org.eclipse.jgit.util.FileUtils.normalize:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/util/FS_POSIX;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public java.io.File findHook(org.eclipse.jgit.lib.Repository, java.lang.String);
    descriptor: (Lorg/eclipse/jgit/lib/Repository;Ljava/lang/String;)Ljava/io/File;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // org.eclipse.jgit.lib.Repository repository
        start local 2 // java.lang.String hookName
         0: .line 315
            aload 1 /* repository */
            invokevirtual org.eclipse.jgit.lib.Repository.getDirectory:()Ljava/io/File;
            astore 3 /* gitdir */
        start local 3 // java.io.File gitdir
         1: .line 316
            aload 3 /* gitdir */
            ifnonnull 3
         2: .line 317
            aconst_null
            areturn
         3: .line 319
      StackMap locals: java.io.File
      StackMap stack:
            aload 3 /* gitdir */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            ldc "hooks"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
         4: .line 320
            aload 2 /* hookName */
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
         5: .line 319
            astore 4 /* hookPath */
        start local 4 // java.nio.file.Path hookPath
         6: .line 321
            aload 4 /* hookPath */
            invokestatic java.nio.file.Files.isExecutable:(Ljava/nio/file/Path;)Z
            ifeq 8
         7: .line 322
            aload 4 /* hookPath */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            areturn
         8: .line 323
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aconst_null
            areturn
        end local 4 // java.nio.file.Path hookPath
        end local 3 // java.io.File gitdir
        end local 2 // java.lang.String hookName
        end local 1 // org.eclipse.jgit.lib.Repository repository
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/eclipse/jgit/util/FS_POSIX;
            0    9     1  repository  Lorg/eclipse/jgit/lib/Repository;
            0    9     2    hookName  Ljava/lang/String;
            1    9     3      gitdir  Ljava/io/File;
            6    9     4    hookPath  Ljava/nio/file/Path;
    MethodParameters:
            Name  Flags
      repository  
      hookName    

  public boolean supportsAtomicCreateNewFile();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
         0: .line 329
            aload 0 /* this */
            getfield org.eclipse.jgit.util.FS_POSIX.supportsAtomicFileCreation:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
            getstatic org.eclipse.jgit.util.FS_POSIX$AtomicFileCreation.UNDEFINED:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
            if_acmpne 16
         1: .line 331
            invokestatic org.eclipse.jgit.util.SystemReader.getInstance:()Lorg/eclipse/jgit/util/SystemReader;
            invokevirtual org.eclipse.jgit.util.SystemReader.getUserConfig:()Lorg/eclipse/jgit/lib/StoredConfig;
            astore 1 /* config */
        start local 1 // org.eclipse.jgit.lib.StoredConfig config
         2: .line 332
            aload 1 /* config */
            ldc "core"
            aconst_null
         3: .line 333
            ldc "supportsatomicfilecreation"
         4: .line 332
            invokevirtual org.eclipse.jgit.lib.StoredConfig.getString:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        start local 2 // java.lang.String value
         5: .line 334
            aload 2 /* value */
            ifnull 11
         6: .line 335
            aload 0 /* this */
            aload 2 /* value */
            invokestatic org.eclipse.jgit.util.StringUtils.toBoolean:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 336
            getstatic org.eclipse.jgit.util.FS_POSIX$AtomicFileCreation.SUPPORTED:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
            goto 9
         8: .line 337
      StackMap locals: org.eclipse.jgit.util.FS_POSIX org.eclipse.jgit.lib.StoredConfig java.lang.String
      StackMap stack: org.eclipse.jgit.util.FS_POSIX
            getstatic org.eclipse.jgit.util.FS_POSIX$AtomicFileCreation.NOT_SUPPORTED:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
         9: .line 335
      StackMap locals: org.eclipse.jgit.util.FS_POSIX org.eclipse.jgit.lib.StoredConfig java.lang.String
      StackMap stack: org.eclipse.jgit.util.FS_POSIX org.eclipse.jgit.util.FS_POSIX$AtomicFileCreation
            putfield org.eclipse.jgit.util.FS_POSIX.supportsAtomicFileCreation:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
        10: .line 338
            goto 16
        11: .line 339
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.eclipse.jgit.util.FS_POSIX$AtomicFileCreation.SUPPORTED:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
            putfield org.eclipse.jgit.util.FS_POSIX.supportsAtomicFileCreation:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
        end local 2 // java.lang.String value
        end local 1 // org.eclipse.jgit.lib.StoredConfig config
        12: .line 341
            goto 16
      StackMap locals: org.eclipse.jgit.util.FS_POSIX
      StackMap stack: java.lang.Exception
        13: astore 1 /* e */
        start local 1 // java.lang.Exception e
        14: .line 342
            getstatic org.eclipse.jgit.util.FS_POSIX.LOG:Lorg/slf4j/Logger;
            invokestatic org.eclipse.jgit.internal.JGitText.get:()Lorg/eclipse/jgit/internal/JGitText;
            getfield org.eclipse.jgit.internal.JGitText.assumeAtomicCreateNewFile:Ljava/lang/String;
            aload 1 /* e */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        15: .line 343
            aload 0 /* this */
            getstatic org.eclipse.jgit.util.FS_POSIX$AtomicFileCreation.SUPPORTED:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
            putfield org.eclipse.jgit.util.FS_POSIX.supportsAtomicFileCreation:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
        end local 1 // java.lang.Exception e
        16: .line 346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jgit.util.FS_POSIX.supportsAtomicFileCreation:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
            getstatic org.eclipse.jgit.util.FS_POSIX$AtomicFileCreation.SUPPORTED:Lorg/eclipse/jgit/util/FS_POSIX$AtomicFileCreation;
            if_acmpne 17
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        17: iconst_0
            ireturn
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    this  Lorg/eclipse/jgit/util/FS_POSIX;
            2   12     1  config  Lorg/eclipse/jgit/lib/StoredConfig;
            5   12     2   value  Ljava/lang/String;
           14   16     1       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1    12      13  Class java.io.IOException
           1    12      13  Class org.eclipse.jgit.errors.ConfigInvalidException

  public boolean createNewFile(java.io.File);
    descriptor: (Ljava/io/File;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // java.io.File lock
         0: .line 372
            aload 1 /* lock */
            invokevirtual java.io.File.createNewFile:()Z
            ifne 2
         1: .line 373
            iconst_0
            ireturn
         2: .line 375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.util.FS_POSIX.supportsAtomicCreateNewFile:()Z
            ifeq 4
         3: .line 376
            iconst_1
            ireturn
         4: .line 378
      StackMap locals:
      StackMap stack:
            aload 1 /* lock */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 2 /* lockPath */
        start local 2 // java.nio.file.Path lockPath
         5: .line 379
            aconst_null
            astore 3 /* link */
        start local 3 // java.nio.file.Path link
         6: .line 380
            aconst_null
            astore 4 /* store */
        start local 4 // java.nio.file.FileStore store
         7: .line 382
            aload 2 /* lockPath */
            invokestatic java.nio.file.Files.getFileStore:(Ljava/nio/file/Path;)Ljava/nio/file/FileStore;
            astore 4 /* store */
         8: .line 383
            goto 11
      StackMap locals: org.eclipse.jgit.util.FS_POSIX java.io.File java.nio.file.Path java.nio.file.Path java.nio.file.FileStore
      StackMap stack: java.lang.SecurityException
         9: pop
        10: .line 384
            iconst_1
            ireturn
        11: .line 387
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jgit.util.FS_POSIX.CAN_HARD_LINK:Ljava/util/Map;
            aload 4 /* store */
        12: .line 388
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/eclipse/jgit/util/FS_POSIX.lambda$0(Ljava/nio/file/FileStore;)Ljava/lang/Boolean; (6)
                  (Ljava/nio/file/FileStore;)Ljava/lang/Boolean;
        13: .line 387
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 5 /* canLink */
        start local 5 // java.lang.Boolean canLink
        14: .line 389
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            aload 5 /* canLink */
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifeq 18
        15: .line 410
            aload 3 /* link */
            ifnull 17
        16: .line 411
            aload 3 /* link */
            invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
        17: .line 390
      StackMap locals: java.lang.Boolean
      StackMap stack:
            iconst_1
            ireturn
        18: .line 393
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* lock */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".lnk"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
        19: .line 394
            aload 2 /* lockPath */
        20: .line 392
            invokestatic java.nio.file.Files.createLink:(Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 3 /* link */
        21: .line 395
            aload 2 /* lockPath */
        22: .line 396
            ldc "unix:nlink"
            iconst_0
            anewarray java.nio.file.LinkOption
        23: .line 395
            invokestatic java.nio.file.Files.getAttribute:(Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/LinkOption;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 6 /* nlink */
        start local 6 // java.lang.Integer nlink
        24: .line 397
            aload 6 /* nlink */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_2
            if_icmple 32
        25: .line 398
            getstatic org.eclipse.jgit.util.FS_POSIX.LOG:Lorg/slf4j/Logger;
        26: .line 399
            invokestatic org.eclipse.jgit.internal.JGitText.get:()Lorg/eclipse/jgit/internal/JGitText;
            getfield org.eclipse.jgit.internal.JGitText.failedAtomicFileCreation:Ljava/lang/String;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* lockPath */
            aastore
            dup
            iconst_1
        27: .line 400
            aload 6 /* nlink */
            aastore
        28: .line 398
            invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
        29: .line 410
            aload 3 /* link */
            ifnull 31
        30: .line 411
            aload 3 /* link */
            invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
        31: .line 401
      StackMap locals: java.lang.Integer
      StackMap stack:
            iconst_0
            ireturn
        32: .line 402
      StackMap locals:
      StackMap stack:
            aload 6 /* nlink */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_2
            if_icmpge 34
        33: .line 403
            getstatic org.eclipse.jgit.util.FS_POSIX.CAN_HARD_LINK:Ljava/util/Map;
            aload 4 /* store */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        34: .line 410
      StackMap locals:
      StackMap stack:
            aload 3 /* link */
            ifnull 36
        35: .line 411
            aload 3 /* link */
            invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
        36: .line 405
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // java.lang.Integer nlink
        end local 5 // java.lang.Boolean canLink
        37: .line 406
      StackMap locals: org.eclipse.jgit.util.FS_POSIX java.io.File java.nio.file.Path java.nio.file.Path java.nio.file.FileStore
      StackMap stack: java.lang.RuntimeException
            pop
        38: .line 407
            getstatic org.eclipse.jgit.util.FS_POSIX.CAN_HARD_LINK:Ljava/util/Map;
            aload 4 /* store */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        39: .line 410
            aload 3 /* link */
            ifnull 41
        40: .line 411
            aload 3 /* link */
            invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
        41: .line 408
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        42: .line 409
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        43: .line 410
            aload 3 /* link */
            ifnull 45
        44: .line 411
            aload 3 /* link */
            invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
        45: .line 413
      StackMap locals: org.eclipse.jgit.util.FS_POSIX java.io.File java.nio.file.Path java.nio.file.Path java.nio.file.FileStore top top java.lang.Throwable
      StackMap stack:
            aload 7
            athrow
        end local 4 // java.nio.file.FileStore store
        end local 3 // java.nio.file.Path link
        end local 2 // java.nio.file.Path lockPath
        end local 1 // java.io.File lock
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   46     0      this  Lorg/eclipse/jgit/util/FS_POSIX;
            0   46     1      lock  Ljava/io/File;
            5   46     2  lockPath  Ljava/nio/file/Path;
            6   46     3      link  Ljava/nio/file/Path;
            7   46     4     store  Ljava/nio/file/FileStore;
           14   37     5   canLink  Ljava/lang/Boolean;
           24   37     6     nlink  Ljava/lang/Integer;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.SecurityException
          11    15      37  Class java.lang.UnsupportedOperationException
          18    29      37  Class java.lang.UnsupportedOperationException
          32    34      37  Class java.lang.UnsupportedOperationException
          11    15      37  Class java.lang.IllegalArgumentException
          18    29      37  Class java.lang.IllegalArgumentException
          32    34      37  Class java.lang.IllegalArgumentException
          11    15      42  any
          18    29      42  any
          32    34      42  any
          37    39      42  any
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      lock  

  public org.eclipse.jgit.util.FS$LockToken createNewFileAtomic(java.io.File);
    descriptor: (Ljava/io/File;)Lorg/eclipse/jgit/util/FS$LockToken;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // org.eclipse.jgit.util.FS_POSIX this
        start local 1 // java.io.File file
         0: .line 445
            aload 1 /* file */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 2 /* path */
        start local 2 // java.nio.file.Path path
         1: .line 446
            aload 2 /* path */
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createFile:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
         2: .line 447
            goto 5
        end local 2 // java.nio.file.Path path
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: pop
         4: .line 448
            iconst_0
            aconst_null
            invokestatic org.eclipse.jgit.util.FS_POSIX.token:(ZLjava/nio/file/Path;)Lorg/eclipse/jgit/util/FS$LockToken;
            areturn
        start local 2 // java.nio.file.Path path
         5: .line 450
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.util.FS_POSIX.supportsAtomicCreateNewFile:()Z
            ifeq 7
         6: .line 451
            iconst_1
            aconst_null
            invokestatic org.eclipse.jgit.util.FS_POSIX.token:(ZLjava/nio/file/Path;)Lorg/eclipse/jgit/util/FS$LockToken;
            areturn
         7: .line 453
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* link */
        start local 3 // java.nio.file.Path link
         8: .line 454
            aconst_null
            astore 4 /* store */
        start local 4 // java.nio.file.FileStore store
         9: .line 456
            aload 2 /* path */
            invokestatic java.nio.file.Files.getFileStore:(Ljava/nio/file/Path;)Ljava/nio/file/FileStore;
            astore 4 /* store */
        10: .line 457
            goto 13
      StackMap locals: org.eclipse.jgit.util.FS_POSIX java.io.File java.nio.file.Path java.nio.file.Path java.nio.file.FileStore
      StackMap stack: java.lang.SecurityException
        11: pop
        12: .line 458
            iconst_1
            aconst_null
            invokestatic org.eclipse.jgit.util.FS_POSIX.token:(ZLjava/nio/file/Path;)Lorg/eclipse/jgit/util/FS$LockToken;
            areturn
        13: .line 461
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jgit.util.FS_POSIX.CAN_HARD_LINK:Ljava/util/Map;
            aload 4 /* store */
        14: .line 462
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/eclipse/jgit/util/FS_POSIX.lambda$1(Ljava/nio/file/FileStore;)Ljava/lang/Boolean; (6)
                  (Ljava/nio/file/FileStore;)Ljava/lang/Boolean;
        15: .line 461
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 5 /* canLink */
        start local 5 // java.lang.Boolean canLink
        16: .line 463
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            aload 5 /* canLink */
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 464
            iconst_1
            aconst_null
            invokestatic org.eclipse.jgit.util.FS_POSIX.token:(ZLjava/nio/file/Path;)Lorg/eclipse/jgit/util/FS$LockToken;
        18: areturn
        19: .line 466
      StackMap locals: java.lang.Boolean
      StackMap stack:
            aload 1 /* file */
            invokestatic org.eclipse.jgit.util.FS_POSIX.uniqueLinkPath:(Ljava/io/File;)Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            aload 2 /* path */
            invokestatic java.nio.file.Files.createLink:(Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 3 /* link */
        20: .line 467
            aload 2 /* path */
        21: .line 468
            ldc "unix:nlink"
            iconst_0
            anewarray java.nio.file.LinkOption
        22: .line 467
            invokestatic java.nio.file.Files.getAttribute:(Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/LinkOption;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 6 /* nlink */
        start local 6 // java.lang.Integer nlink
        23: .line 469
            aload 6 /* nlink */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_2
            if_icmple 29
        24: .line 470
            getstatic org.eclipse.jgit.util.FS_POSIX.LOG:Lorg/slf4j/Logger;
        25: .line 471
            invokestatic org.eclipse.jgit.internal.JGitText.get:()Lorg/eclipse/jgit/internal/JGitText;
            getfield org.eclipse.jgit.internal.JGitText.failedAtomicFileCreation:Ljava/lang/String;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* path */
            aastore
            dup
            iconst_1
            aload 6 /* nlink */
            aastore
        26: .line 470
            invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
        27: .line 472
            iconst_0
            aload 3 /* link */
            invokestatic org.eclipse.jgit.util.FS_POSIX.token:(ZLjava/nio/file/Path;)Lorg/eclipse/jgit/util/FS$LockToken;
        28: areturn
        29: .line 473
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 6 /* nlink */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_2
            if_icmpge 31
        30: .line 474
            getstatic org.eclipse.jgit.util.FS_POSIX.CAN_HARD_LINK:Ljava/util/Map;
            aload 4 /* store */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 476
      StackMap locals:
      StackMap stack:
            iconst_1
            aload 3 /* link */
            invokestatic org.eclipse.jgit.util.FS_POSIX.token:(ZLjava/nio/file/Path;)Lorg/eclipse/jgit/util/FS$LockToken;
        32: areturn
        end local 6 // java.lang.Integer nlink
        end local 5 // java.lang.Boolean canLink
        33: .line 478
      StackMap locals: org.eclipse.jgit.util.FS_POSIX java.io.File java.nio.file.Path java.nio.file.Path java.nio.file.FileStore
      StackMap stack: java.lang.Exception
            pop
        34: .line 479
            getstatic org.eclipse.jgit.util.FS_POSIX.CAN_HARD_LINK:Ljava/util/Map;
            aload 4 /* store */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        35: .line 480
            iconst_1
            aload 3 /* link */
            invokestatic org.eclipse.jgit.util.FS_POSIX.token:(ZLjava/nio/file/Path;)Lorg/eclipse/jgit/util/FS$LockToken;
            areturn
        end local 4 // java.nio.file.FileStore store
        end local 3 // java.nio.file.Path link
        end local 2 // java.nio.file.Path path
        end local 1 // java.io.File file
        end local 0 // org.eclipse.jgit.util.FS_POSIX this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   36     0     this  Lorg/eclipse/jgit/util/FS_POSIX;
            0   36     1     file  Ljava/io/File;
            1    3     2     path  Ljava/nio/file/Path;
            5   36     2     path  Ljava/nio/file/Path;
            8   36     3     link  Ljava/nio/file/Path;
            9   36     4    store  Ljava/nio/file/FileStore;
           16   33     5  canLink  Ljava/lang/Boolean;
           23   33     6    nlink  Ljava/lang/Integer;
      Exception table:
        from    to  target  type
           0     2       3  Class java.nio.file.FileAlreadyExistsException
           0     2       3  Class java.nio.file.InvalidPathException
           9    10      11  Class java.lang.SecurityException
          13    18      33  Class java.lang.UnsupportedOperationException
          19    28      33  Class java.lang.UnsupportedOperationException
          29    32      33  Class java.lang.UnsupportedOperationException
          13    18      33  Class java.lang.IllegalArgumentException
          19    28      33  Class java.lang.IllegalArgumentException
          29    32      33  Class java.lang.IllegalArgumentException
          13    18      33  Class java.nio.file.FileSystemException
          19    28      33  Class java.nio.file.FileSystemException
          29    32      33  Class java.nio.file.FileSystemException
          13    18      33  Class java.lang.SecurityException
          19    28      33  Class java.lang.SecurityException
          29    32      33  Class java.lang.SecurityException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  private static org.eclipse.jgit.util.FS$LockToken token(boolean, java.nio.file.Path);
    descriptor: (ZLjava/nio/file/Path;)Lorg/eclipse/jgit/util/FS$LockToken;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // boolean created
        start local 1 // java.nio.file.Path p
         0: .line 485
            aload 1 /* p */
            ifnull 2
            aload 1 /* p */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 2
         1: .line 486
            new org.eclipse.jgit.util.FS$LockToken
            dup
            iload 0 /* created */
            aload 1 /* p */
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
            invokespecial org.eclipse.jgit.util.FS$LockToken.<init>:(ZLjava/util/Optional;)V
            goto 3
         2: .line 487
      StackMap locals:
      StackMap stack:
            new org.eclipse.jgit.util.FS$LockToken
            dup
            iload 0 /* created */
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            invokespecial org.eclipse.jgit.util.FS$LockToken.<init>:(ZLjava/util/Optional;)V
         3: .line 485
      StackMap locals:
      StackMap stack: org.eclipse.jgit.util.FS$LockToken
            areturn
        end local 1 // java.nio.file.Path p
        end local 0 // boolean created
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  created  Z
            0    4     1        p  Ljava/nio/file/Path;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.eclipse.jgit.annotations.Nullable()
    MethodParameters:
         Name  Flags
      created  
      p        

  private static java.lang.String uniqueLinkPath(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.io.File file
         0: .line 491
            invokestatic java.util.UUID.randomUUID:()Ljava/util/UUID;
            astore 1 /* id */
        start local 1 // java.util.UUID id
         1: .line 492
            new java.lang.StringBuilder
            dup
            aload 0 /* file */
            invokevirtual java.io.File.getAbsolutePath:()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;
         2: .line 493
            aload 1 /* id */
            invokevirtual java.util.UUID.getMostSignificantBits:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 494
            aload 1 /* id */
            invokevirtual java.util.UUID.getLeastSignificantBits:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 492
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.util.UUID id
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  file  Ljava/io/File;
            1    5     1    id  Ljava/util/UUID;
    MethodParameters:
      Name  Flags
      file  

  private static java.lang.Boolean lambda$0(java.nio.file.FileStore);
    descriptor: (Ljava/nio/file/FileStore;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.nio.file.FileStore s
         0: .line 388
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            areturn
        end local 0 // java.nio.file.FileStore s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/nio/file/FileStore;

  private static java.lang.Boolean lambda$1(java.nio.file.FileStore);
    descriptor: (Ljava/nio/file/FileStore;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.nio.file.FileStore s
         0: .line 462
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            areturn
        end local 0 // java.nio.file.FileStore s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/nio/file/FileStore;
}
SourceFile: "FS_POSIX.java"
NestMembers:
  org.eclipse.jgit.util.FS_POSIX$AtomicFileCreation
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Attributes = org.eclipse.jgit.util.FS$Attributes of org.eclipse.jgit.util.FS
  public LockToken = org.eclipse.jgit.util.FS$LockToken of org.eclipse.jgit.util.FS
  private final AtomicFileCreation = org.eclipse.jgit.util.FS_POSIX$AtomicFileCreation of org.eclipse.jgit.util.FS_POSIX