final class java.lang.UNIXProcess extends java.lang.Process
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: java.lang.UNIXProcess
  super_class: java.lang.Process
{
  private static final sun.misc.JavaIOFileDescriptorAccess fdAccess;
    descriptor: Lsun/misc/JavaIOFileDescriptorAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final int pid;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private boolean hasExited;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.io.OutputStream stdin;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.InputStream stdout;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.InputStream stderr;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.UNIXProcess$DeferredCloseInputStream stdout_inner_stream;
    descriptor: Ljava/lang/UNIXProcess$DeferredCloseInputStream;
    flags: (0x0002) ACC_PRIVATE

  private static final java.lang.UNIXProcess$Platform platform;
    descriptor: Ljava/lang/UNIXProcess$Platform;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.UNIXProcess$LaunchMechanism launchMechanism;
    descriptor: Ljava/lang/UNIXProcess$LaunchMechanism;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final byte[] helperpath;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.concurrent.Executor processReaperExecutor;
    descriptor: Ljava/util/concurrent/Executor;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$java$lang$UNIXProcess$Platform;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 61
            invokestatic sun.misc.SharedSecrets.getJavaIOFileDescriptorAccess:()Lsun/misc/JavaIOFileDescriptorAccess;
         1: .line 60
            putstatic java.lang.UNIXProcess.fdAccess:Lsun/misc/JavaIOFileDescriptorAccess;
         2: .line 168
            invokestatic java.lang.UNIXProcess$Platform.get:()Ljava/lang/UNIXProcess$Platform;
            putstatic java.lang.UNIXProcess.platform:Ljava/lang/UNIXProcess$Platform;
         3: .line 169
            getstatic java.lang.UNIXProcess.platform:Ljava/lang/UNIXProcess$Platform;
            invokevirtual java.lang.UNIXProcess$Platform.launchMechanism:()Ljava/lang/UNIXProcess$LaunchMechanism;
            putstatic java.lang.UNIXProcess.launchMechanism:Ljava/lang/UNIXProcess$LaunchMechanism;
         4: .line 170
            getstatic java.lang.UNIXProcess.platform:Ljava/lang/UNIXProcess$Platform;
            invokevirtual java.lang.UNIXProcess$Platform.helperPath:()Ljava/lang/String;
            invokestatic java.lang.UNIXProcess.toCString:(Ljava/lang/String;)[B
            putstatic java.lang.UNIXProcess.helperpath:[B
         5: .line 221
            invokedynamic run()Ljava/security/PrivilegedAction;
              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;
                  java/lang/UNIXProcess.lambda$0()Ljava/util/concurrent/Executor; (6)
                  ()Ljava/util/concurrent/Executor;
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.util.concurrent.Executor
         6: .line 220
            putstatic java.lang.UNIXProcess.processReaperExecutor:Ljava/util/concurrent/Executor;
         7: .line 493
            invokestatic java.lang.UNIXProcess.init:()V
         8: .line 494
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static byte[] toCString(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.String s
         0: .line 173
            aload 0 /* s */
            ifnonnull 2
         1: .line 174
            aconst_null
            areturn
         2: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            invokevirtual java.lang.String.getBytes:()[B
            astore 1 /* bytes */
        start local 1 // byte[] bytes
         3: .line 176
            aload 1 /* bytes */
            arraylength
            iconst_1
            iadd
            newarray 8
            astore 2 /* result */
        start local 2 // byte[] result
         4: .line 177
            aload 1 /* bytes */
            iconst_0
         5: .line 178
            aload 2 /* result */
            iconst_0
         6: .line 179
            aload 1 /* bytes */
            arraylength
         7: .line 177
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 180
            aload 2 /* result */
            aload 2 /* result */
            arraylength
            iconst_1
            isub
            iconst_0
            bastore
         9: .line 181
            aload 2 /* result */
            areturn
        end local 2 // byte[] result
        end local 1 // byte[] bytes
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0       s  Ljava/lang/String;
            3   10     1   bytes  [B
            4   10     2  result  [B
    MethodParameters:
      Name  Flags
      s     

  private native int waitForProcessExit(int);
    descriptor: (I)I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
      Name  Flags
      pid   

  private native int forkAndExec(int, byte[], byte[], byte[], int, byte[], int, byte[], int[], boolean);
    descriptor: (I[B[B[BI[BI[B[IZ)I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                     Name  Flags
      mode                 
      helperpath           
      prog                 
      argBlock             
      argc                 
      envBlock             
      envc                 
      dir                  
      fds                  
      redirectErrorStream  

  void <init>(byte[], byte[], int, byte[], int, byte[], int[], boolean);
    descriptor: ([B[BI[BI[B[IZ)V
    flags: (0x0000) 
    Code:
      stack=12, locals=10, args_size=9
        start local 0 // java.lang.UNIXProcess this
        start local 1 // byte[] prog
        start local 2 // byte[] argBlock
        start local 3 // int argc
        start local 4 // byte[] envBlock
        start local 5 // int envc
        start local 6 // byte[] dir
        start local 7 // int[] fds
        start local 8 // boolean redirectErrorStream
         0: .line 239
            aload 0 /* this */
            invokespecial java.lang.Process.<init>:()V
         1: .line 247
            aload 0 /* this */
            aload 0 /* this */
            getstatic java.lang.UNIXProcess.launchMechanism:Ljava/lang/UNIXProcess$LaunchMechanism;
            invokevirtual java.lang.UNIXProcess$LaunchMechanism.ordinal:()I
            iconst_1
            iadd
         2: .line 248
            getstatic java.lang.UNIXProcess.helperpath:[B
         3: .line 249
            aload 1 /* prog */
         4: .line 250
            aload 2 /* argBlock */
            iload 3 /* argc */
         5: .line 251
            aload 4 /* envBlock */
            iload 5 /* envc */
         6: .line 252
            aload 6 /* dir */
         7: .line 253
            aload 7 /* fds */
         8: .line 254
            iload 8 /* redirectErrorStream */
         9: .line 247
            invokevirtual java.lang.UNIXProcess.forkAndExec:(I[B[B[BI[BI[B[IZ)I
            putfield java.lang.UNIXProcess.pid:I
        10: .line 257
            aload 0 /* this */
            aload 7 /* fds */
            invokedynamic run(Ljava/lang/UNIXProcess;[I)Ljava/security/PrivilegedExceptionAction;
              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;
                  java/lang/UNIXProcess.lambda$2([I)Ljava/lang/Void; (7)
                  ()Ljava/lang/Void;
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
        11: .line 261
            goto 14
      StackMap locals: java.lang.UNIXProcess byte[] byte[] int byte[] int byte[] int[] int
      StackMap stack: java.security.PrivilegedActionException
        12: astore 9 /* ex */
        start local 9 // java.security.PrivilegedActionException ex
        13: .line 262
            aload 9 /* ex */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            checkcast java.io.IOException
            athrow
        end local 9 // java.security.PrivilegedActionException ex
        14: .line 264
      StackMap locals:
      StackMap stack:
            return
        end local 8 // boolean redirectErrorStream
        end local 7 // int[] fds
        end local 6 // byte[] dir
        end local 5 // int envc
        end local 4 // byte[] envBlock
        end local 3 // int argc
        end local 2 // byte[] argBlock
        end local 1 // byte[] prog
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   15     0                 this  Ljava/lang/UNIXProcess;
            0   15     1                 prog  [B
            0   15     2             argBlock  [B
            0   15     3                 argc  I
            0   15     4             envBlock  [B
            0   15     5                 envc  I
            0   15     6                  dir  [B
            0   15     7                  fds  [I
            0   15     8  redirectErrorStream  Z
           13   14     9                   ex  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
          10    11      12  Class java.security.PrivilegedActionException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                     Name  Flags
      prog                 final
      argBlock             final
      argc                 final
      envBlock             final
      envc                 final
      dir                  final
      fds                  final
      redirectErrorStream  final

  static java.io.FileDescriptor newFileDescriptor(int);
    descriptor: (I)Ljava/io/FileDescriptor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // int fd
         0: .line 267
            new java.io.FileDescriptor
            dup
            invokespecial java.io.FileDescriptor.<init>:()V
            astore 1 /* fileDescriptor */
        start local 1 // java.io.FileDescriptor fileDescriptor
         1: .line 268
            getstatic java.lang.UNIXProcess.fdAccess:Lsun/misc/JavaIOFileDescriptorAccess;
            aload 1 /* fileDescriptor */
            iload 0 /* fd */
            invokeinterface sun.misc.JavaIOFileDescriptorAccess.set:(Ljava/io/FileDescriptor;I)V
         2: .line 269
            aload 1 /* fileDescriptor */
            areturn
        end local 1 // java.io.FileDescriptor fileDescriptor
        end local 0 // int fd
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0              fd  I
            1    3     1  fileDescriptor  Ljava/io/FileDescriptor;
    MethodParameters:
      Name  Flags
      fd    

  void initStreams(int[]);
    descriptor: ([I)V
    flags: (0x0000) 
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // java.lang.UNIXProcess this
        start local 1 // int[] fds
         0: .line 273
            invokestatic java.lang.UNIXProcess.$SWITCH_TABLE$java$lang$UNIXProcess$Platform:()[I
            getstatic java.lang.UNIXProcess.platform:Ljava/lang/UNIXProcess$Platform;
            invokevirtual java.lang.UNIXProcess$Platform.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 1
                    2: 1
                    3: 15
                    4: 37
              default: 51
          }
         1: .line 276
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fds */
            iconst_0
            iaload
            iconst_m1
            if_icmpne 3
         2: .line 277
            getstatic java.lang.ProcessBuilder$NullOutputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullOutputStream;
            goto 4
         3: .line 278
      StackMap locals:
      StackMap stack: java.lang.UNIXProcess
            new java.lang.UNIXProcess$ProcessPipeOutputStream
            dup
            aload 1 /* fds */
            iconst_0
            iaload
            invokespecial java.lang.UNIXProcess$ProcessPipeOutputStream.<init>:(I)V
         4: .line 276
      StackMap locals: java.lang.UNIXProcess int[]
      StackMap stack: java.lang.UNIXProcess java.io.OutputStream
            putfield java.lang.UNIXProcess.stdin:Ljava/io/OutputStream;
         5: .line 280
            aload 0 /* this */
            aload 1 /* fds */
            iconst_1
            iaload
            iconst_m1
            if_icmpne 7
         6: .line 281
            getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
            goto 8
         7: .line 282
      StackMap locals:
      StackMap stack: java.lang.UNIXProcess
            new java.lang.UNIXProcess$ProcessPipeInputStream
            dup
            aload 1 /* fds */
            iconst_1
            iaload
            invokespecial java.lang.UNIXProcess$ProcessPipeInputStream.<init>:(I)V
         8: .line 280
      StackMap locals: java.lang.UNIXProcess int[]
      StackMap stack: java.lang.UNIXProcess java.io.InputStream
            putfield java.lang.UNIXProcess.stdout:Ljava/io/InputStream;
         9: .line 284
            aload 0 /* this */
            aload 1 /* fds */
            iconst_2
            iaload
            iconst_m1
            if_icmpne 11
        10: .line 285
            getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
            goto 12
        11: .line 286
      StackMap locals:
      StackMap stack: java.lang.UNIXProcess
            new java.lang.UNIXProcess$ProcessPipeInputStream
            dup
            aload 1 /* fds */
            iconst_2
            iaload
            invokespecial java.lang.UNIXProcess$ProcessPipeInputStream.<init>:(I)V
        12: .line 284
      StackMap locals: java.lang.UNIXProcess int[]
      StackMap stack: java.lang.UNIXProcess java.io.InputStream
            putfield java.lang.UNIXProcess.stderr:Ljava/io/InputStream;
        13: .line 288
            getstatic java.lang.UNIXProcess.processReaperExecutor:Ljava/util/concurrent/Executor;
            aload 0 /* this */
            invokedynamic run(Ljava/lang/UNIXProcess;)Ljava/lang/Runnable;
              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:
                  ()V
                  java/lang/UNIXProcess.lambda$3()V (7)
                  ()V
            invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
        14: .line 306
            goto 52
        15: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fds */
            iconst_0
            iaload
            iconst_m1
            if_icmpne 17
        16: .line 310
            getstatic java.lang.ProcessBuilder$NullOutputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullOutputStream;
            goto 20
        17: .line 311
      StackMap locals:
      StackMap stack: java.lang.UNIXProcess
            new java.io.BufferedOutputStream
            dup
        18: .line 312
            new java.io.FileOutputStream
            dup
            aload 1 /* fds */
            iconst_0
            iaload
            invokestatic java.lang.UNIXProcess.newFileDescriptor:(I)Ljava/io/FileDescriptor;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
        19: .line 311
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
        20: .line 309
      StackMap locals: java.lang.UNIXProcess int[]
      StackMap stack: java.lang.UNIXProcess java.io.OutputStream
            putfield java.lang.UNIXProcess.stdin:Ljava/io/OutputStream;
        21: .line 314
            aload 0 /* this */
            aload 1 /* fds */
            iconst_1
            iaload
            iconst_m1
            if_icmpne 23
        22: .line 315
            getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
            goto 30
        23: .line 316
      StackMap locals:
      StackMap stack: java.lang.UNIXProcess
            new java.io.BufferedInputStream
            dup
        24: .line 317
            aload 0 /* this */
        25: .line 318
            new java.lang.UNIXProcess$DeferredCloseInputStream
            dup
        26: .line 319
            aload 1 /* fds */
            iconst_1
            iaload
            invokestatic java.lang.UNIXProcess.newFileDescriptor:(I)Ljava/io/FileDescriptor;
        27: .line 318
            invokespecial java.lang.UNIXProcess$DeferredCloseInputStream.<init>:(Ljava/io/FileDescriptor;)V
        28: .line 317
            dup_x1
            putfield java.lang.UNIXProcess.stdout_inner_stream:Ljava/lang/UNIXProcess$DeferredCloseInputStream;
        29: .line 316
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
        30: .line 314
      StackMap locals: java.lang.UNIXProcess int[]
      StackMap stack: java.lang.UNIXProcess java.io.InputStream
            putfield java.lang.UNIXProcess.stdout:Ljava/io/InputStream;
        31: .line 321
            aload 0 /* this */
            aload 1 /* fds */
            iconst_2
            iaload
            iconst_m1
            if_icmpne 33
        32: .line 322
            getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
            goto 34
        33: .line 323
      StackMap locals:
      StackMap stack: java.lang.UNIXProcess
            new java.lang.UNIXProcess$DeferredCloseInputStream
            dup
            aload 1 /* fds */
            iconst_2
            iaload
            invokestatic java.lang.UNIXProcess.newFileDescriptor:(I)Ljava/io/FileDescriptor;
            invokespecial java.lang.UNIXProcess$DeferredCloseInputStream.<init>:(Ljava/io/FileDescriptor;)V
        34: .line 321
      StackMap locals: java.lang.UNIXProcess int[]
      StackMap stack: java.lang.UNIXProcess java.io.InputStream
            putfield java.lang.UNIXProcess.stderr:Ljava/io/InputStream;
        35: .line 333
            getstatic java.lang.UNIXProcess.processReaperExecutor:Ljava/util/concurrent/Executor;
            aload 0 /* this */
            invokedynamic run(Ljava/lang/UNIXProcess;)Ljava/lang/Runnable;
              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:
                  ()V
                  java/lang/UNIXProcess.lambda$4()V (7)
                  ()V
            invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
        36: .line 342
            goto 52
        37: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fds */
            iconst_0
            iaload
            iconst_m1
            if_icmpne 39
        38: .line 346
            getstatic java.lang.ProcessBuilder$NullOutputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullOutputStream;
            goto 40
        39: .line 347
      StackMap locals:
      StackMap stack: java.lang.UNIXProcess
            new java.lang.UNIXProcess$ProcessPipeOutputStream
            dup
            aload 1 /* fds */
            iconst_0
            iaload
            invokespecial java.lang.UNIXProcess$ProcessPipeOutputStream.<init>:(I)V
        40: .line 345
      StackMap locals: java.lang.UNIXProcess int[]
      StackMap stack: java.lang.UNIXProcess java.io.OutputStream
            putfield java.lang.UNIXProcess.stdin:Ljava/io/OutputStream;
        41: .line 349
            aload 0 /* this */
            aload 1 /* fds */
            iconst_1
            iaload
            iconst_m1
            if_icmpne 43
        42: .line 350
            getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
            goto 44
        43: .line 351
      StackMap locals:
      StackMap stack: java.lang.UNIXProcess
            new java.lang.UNIXProcess$DeferredCloseProcessPipeInputStream
            dup
            aload 1 /* fds */
            iconst_1
            iaload
            invokespecial java.lang.UNIXProcess$DeferredCloseProcessPipeInputStream.<init>:(I)V
        44: .line 349
      StackMap locals: java.lang.UNIXProcess int[]
      StackMap stack: java.lang.UNIXProcess java.io.InputStream
            putfield java.lang.UNIXProcess.stdout:Ljava/io/InputStream;
        45: .line 353
            aload 0 /* this */
            aload 1 /* fds */
            iconst_2
            iaload
            iconst_m1
            if_icmpne 47
        46: .line 354
            getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
            goto 48
        47: .line 355
      StackMap locals:
      StackMap stack: java.lang.UNIXProcess
            new java.lang.UNIXProcess$DeferredCloseProcessPipeInputStream
            dup
            aload 1 /* fds */
            iconst_2
            iaload
            invokespecial java.lang.UNIXProcess$DeferredCloseProcessPipeInputStream.<init>:(I)V
        48: .line 353
      StackMap locals: java.lang.UNIXProcess int[]
      StackMap stack: java.lang.UNIXProcess java.io.InputStream
            putfield java.lang.UNIXProcess.stderr:Ljava/io/InputStream;
        49: .line 357
            getstatic java.lang.UNIXProcess.processReaperExecutor:Ljava/util/concurrent/Executor;
            aload 0 /* this */
            invokedynamic run(Ljava/lang/UNIXProcess;)Ljava/lang/Runnable;
              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:
                  ()V
                  java/lang/UNIXProcess.lambda$5()V (7)
                  ()V
            invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
        50: .line 375
            goto 52
        51: .line 377
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported platform: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.lang.UNIXProcess.platform:Ljava/lang/UNIXProcess$Platform;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        52: .line 379
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int[] fds
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   53     0  this  Ljava/lang/UNIXProcess;
            0   53     1   fds  [I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fds   

  public java.io.OutputStream getOutputStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.UNIXProcess this
         0: .line 382
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdin:Ljava/io/OutputStream;
            areturn
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/UNIXProcess;

  public java.io.InputStream getInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.UNIXProcess this
         0: .line 386
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdout:Ljava/io/InputStream;
            areturn
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/UNIXProcess;

  public java.io.InputStream getErrorStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.UNIXProcess this
         0: .line 390
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stderr:Ljava/io/InputStream;
            areturn
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/UNIXProcess;

  public synchronized int waitFor();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.UNIXProcess this
         0: .line 394
            goto 2
         1: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.wait:()V
         2: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.hasExited:Z
            ifeq 1
         3: .line 397
            aload 0 /* this */
            getfield java.lang.UNIXProcess.exitcode:I
            ireturn
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/UNIXProcess;
    Exceptions:
      throws java.lang.InterruptedException

  public synchronized boolean waitFor(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // java.lang.UNIXProcess this
        start local 1 // long timeout
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 404
            aload 3 /* unit */
            lload 1 /* timeout */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 4 /* remainingNanos */
        start local 4 // long remainingNanos
         1: .line 405
            aload 0 /* this */
            getfield java.lang.UNIXProcess.hasExited:Z
            ifeq 2
            iconst_1
            ireturn
         2: .line 406
      StackMap locals: long
      StackMap stack:
            lload 1 /* timeout */
            lconst_0
            lcmp
            ifgt 3
            iconst_0
            ireturn
         3: .line 408
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lload 4 /* remainingNanos */
            ladd
            lstore 6 /* deadline */
        start local 6 // long deadline
         4: .line 410
      StackMap locals: long
      StackMap stack:
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            aload 0 /* this */
            lload 4 /* remainingNanos */
            invokevirtual java.util.concurrent.TimeUnit.timedWait:(Ljava/lang/Object;J)V
         5: .line 411
            aload 0 /* this */
            getfield java.lang.UNIXProcess.hasExited:Z
            ifeq 7
         6: .line 412
            iconst_1
            ireturn
         7: .line 414
      StackMap locals:
      StackMap stack:
            lload 6 /* deadline */
            invokestatic java.lang.System.nanoTime:()J
            lsub
            lstore 4 /* remainingNanos */
         8: .line 415
            lload 4 /* remainingNanos */
            lconst_0
         9: .line 409
            lcmp
            ifgt 4
        10: .line 416
            aload 0 /* this */
            getfield java.lang.UNIXProcess.hasExited:Z
            ireturn
        end local 6 // long deadline
        end local 4 // long remainingNanos
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long timeout
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Ljava/lang/UNIXProcess;
            0   11     1         timeout  J
            0   11     3            unit  Ljava/util/concurrent/TimeUnit;
            1   11     4  remainingNanos  J
            4   11     6        deadline  J
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
         Name  Flags
      timeout  
      unit     

  public synchronized int exitValue();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.UNIXProcess this
         0: .line 420
            aload 0 /* this */
            getfield java.lang.UNIXProcess.hasExited:Z
            ifne 2
         1: .line 421
            new java.lang.IllegalThreadStateException
            dup
            ldc "process hasn't exited"
            invokespecial java.lang.IllegalThreadStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 423
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.exitcode:I
            ireturn
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/UNIXProcess;

  private static native void destroyProcess(int, boolean);
    descriptor: (IZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
       Name  Flags
      pid    
      force  

  private void destroy(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.UNIXProcess this
        start local 1 // boolean force
         0: .line 429
            invokestatic java.lang.UNIXProcess.$SWITCH_TABLE$java$lang$UNIXProcess$Platform:()[I
            getstatic java.lang.UNIXProcess.platform:Ljava/lang/UNIXProcess$Platform;
            invokevirtual java.lang.UNIXProcess$Platform.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 1
                    2: 1
                    3: 18
                    4: 1
              default: 33
          }
         1: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 440
            aload 0 /* this */
            getfield java.lang.UNIXProcess.hasExited:Z
            ifne 4
         3: .line 441
            aload 0 /* this */
            getfield java.lang.UNIXProcess.pid:I
            iload 1 /* force */
            invokestatic java.lang.UNIXProcess.destroyProcess:(IZ)V
         4: .line 439
      StackMap locals: java.lang.UNIXProcess
      StackMap stack:
            aload 2
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 443
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdin:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.close:()V
         9: goto 11
      StackMap locals:
      StackMap stack: java.io.IOException
        10: pop
        11: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdout:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
        12: goto 14
      StackMap locals:
      StackMap stack: java.io.IOException
        13: pop
        14: .line 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stderr:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
        15: goto 34
      StackMap locals:
      StackMap stack: java.io.IOException
        16: pop
        17: .line 446
            goto 34
        18: .line 455
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
        19: .line 456
            aload 0 /* this */
            getfield java.lang.UNIXProcess.hasExited:Z
            ifne 21
        20: .line 457
            aload 0 /* this */
            getfield java.lang.UNIXProcess.pid:I
            iload 1 /* force */
            invokestatic java.lang.UNIXProcess.destroyProcess:(IZ)V
        21: .line 459
      StackMap locals: java.lang.UNIXProcess
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdin:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.close:()V
        22: .line 460
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdout_inner_stream:Ljava/lang/UNIXProcess$DeferredCloseInputStream;
            ifnull 24
        23: .line 461
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdout_inner_stream:Ljava/lang/UNIXProcess$DeferredCloseInputStream;
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdout:Ljava/io/InputStream;
            invokevirtual java.lang.UNIXProcess$DeferredCloseInputStream.closeDeferred:(Ljava/io/InputStream;)V
        24: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stderr:Ljava/io/InputStream;
            instanceof java.lang.UNIXProcess$DeferredCloseInputStream
            ifeq 29
        25: .line 463
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stderr:Ljava/io/InputStream;
            checkcast java.lang.UNIXProcess$DeferredCloseInputStream
        26: .line 464
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stderr:Ljava/io/InputStream;
            invokevirtual java.lang.UNIXProcess$DeferredCloseInputStream.closeDeferred:(Ljava/io/InputStream;)V
        27: .line 465
            goto 29
      StackMap locals:
      StackMap stack: java.io.IOException
        28: pop
        29: .line 455
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        30: goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: aload 2
            monitorexit
        32: athrow
        33: .line 471
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported platform: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.lang.UNIXProcess.platform:Ljava/lang/UNIXProcess$Platform;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        34: .line 473
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean force
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   35     0   this  Ljava/lang/UNIXProcess;
            0   35     1  force  Z
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
           8     9      10  Class java.io.IOException
          11    12      13  Class java.io.IOException
          14    15      16  Class java.io.IOException
          21    27      28  Class java.io.IOException
          19    30      31  any
          31    32      31  any
    MethodParameters:
       Name  Flags
      force  

  public void destroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.UNIXProcess this
         0: .line 476
            aload 0 /* this */
            iconst_0
            invokevirtual java.lang.UNIXProcess.destroy:(Z)V
         1: .line 477
            return
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/UNIXProcess;

  public java.lang.Process destroyForcibly();
    descriptor: ()Ljava/lang/Process;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.UNIXProcess this
         0: .line 481
            aload 0 /* this */
            iconst_1
            invokevirtual java.lang.UNIXProcess.destroy:(Z)V
         1: .line 482
            aload 0 /* this */
            areturn
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/UNIXProcess;

  public synchronized boolean isAlive();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.UNIXProcess this
         0: .line 487
            aload 0 /* this */
            getfield java.lang.UNIXProcess.hasExited:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/UNIXProcess;

  private static native void init();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  static int[] $SWITCH_TABLE$java$lang$UNIXProcess$Platform();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 59
            getstatic java.lang.UNIXProcess.$SWITCH_TABLE$java$lang$UNIXProcess$Platform:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic java.lang.UNIXProcess$Platform.values:()[Ljava/lang/UNIXProcess$Platform;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic java.lang.UNIXProcess$Platform.AIX:Ljava/lang/UNIXProcess$Platform;
            invokevirtual java.lang.UNIXProcess$Platform.ordinal:()I
            iconst_4
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic java.lang.UNIXProcess$Platform.BSD:Ljava/lang/UNIXProcess$Platform;
            invokevirtual java.lang.UNIXProcess$Platform.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic java.lang.UNIXProcess$Platform.LINUX:Ljava/lang/UNIXProcess$Platform;
            invokevirtual java.lang.UNIXProcess$Platform.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic java.lang.UNIXProcess$Platform.SOLARIS:Ljava/lang/UNIXProcess$Platform;
            invokevirtual java.lang.UNIXProcess$Platform.ordinal:()I
            iconst_3
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic java.lang.UNIXProcess.$SWITCH_TABLE$java$lang$UNIXProcess$Platform:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError

  private static java.util.concurrent.Executor lambda$0();
    descriptor: ()Ljava/util/concurrent/Executor;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=3, args_size=0
         0: .line 223
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getThreadGroup:()Ljava/lang/ThreadGroup;
            astore 0 /* tg */
        start local 0 // java.lang.ThreadGroup tg
         1: .line 224
            goto 3
      StackMap locals: java.lang.ThreadGroup
      StackMap stack:
         2: aload 0 /* tg */
            invokevirtual java.lang.ThreadGroup.getParent:()Ljava/lang/ThreadGroup;
            astore 0 /* tg */
      StackMap locals:
      StackMap stack:
         3: aload 0 /* tg */
            invokevirtual java.lang.ThreadGroup.getParent:()Ljava/lang/ThreadGroup;
            ifnonnull 2
         4: .line 225
            aload 0 /* tg */
            astore 1 /* systemThreadGroup */
        start local 1 // java.lang.ThreadGroup systemThreadGroup
         5: .line 227
            aload 1 /* systemThreadGroup */
            invokedynamic newThread(Ljava/lang/ThreadGroup;)Ljava/util/concurrent/ThreadFactory;
              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/Runnable;)Ljava/lang/Thread;
                  java/lang/UNIXProcess.lambda$1(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)Ljava/lang/Thread; (6)
                  (Ljava/lang/Runnable;)Ljava/lang/Thread;
            astore 2 /* threadFactory */
        start local 2 // java.util.concurrent.ThreadFactory threadFactory
         6: .line 236
            aload 2 /* threadFactory */
            invokestatic java.util.concurrent.Executors.newCachedThreadPool:(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
            areturn
        end local 2 // java.util.concurrent.ThreadFactory threadFactory
        end local 1 // java.lang.ThreadGroup systemThreadGroup
        end local 0 // java.lang.ThreadGroup tg
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            1    7     0                 tg  Ljava/lang/ThreadGroup;
            5    7     1  systemThreadGroup  Ljava/lang/ThreadGroup;
            6    7     2      threadFactory  Ljava/util/concurrent/ThreadFactory;

  private java.lang.Void lambda$2(int[]);
    descriptor: ([I)Ljava/lang/Void;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.UNIXProcess this
         0: .line 258
            aload 0 /* this */
            aload 1
            invokevirtual java.lang.UNIXProcess.initStreams:([I)V
         1: .line 259
            aconst_null
            areturn
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/UNIXProcess;
    Exceptions:
      throws java.lang.Exception

  private void lambda$3();
    descriptor: ()V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.UNIXProcess this
         0: .line 289
            aload 0 /* this */
            aload 0 /* this */
            getfield java.lang.UNIXProcess.pid:I
            invokevirtual java.lang.UNIXProcess.waitForProcessExit:(I)I
            istore 1 /* exitcode */
        start local 1 // int exitcode
         1: .line 291
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 292
            aload 0 /* this */
            iload 1 /* exitcode */
            putfield java.lang.UNIXProcess.exitcode:I
         3: .line 293
            aload 0 /* this */
            iconst_1
            putfield java.lang.UNIXProcess.hasExited:Z
         4: .line 294
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         5: .line 291
            aload 2
            monitorexit
         6: goto 9
      StackMap locals: java.lang.UNIXProcess int java.lang.UNIXProcess
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdout:Ljava/io/InputStream;
            instanceof java.lang.UNIXProcess$ProcessPipeInputStream
            ifeq 11
        10: .line 298
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdout:Ljava/io/InputStream;
            checkcast java.lang.UNIXProcess$ProcessPipeInputStream
            invokevirtual java.lang.UNIXProcess$ProcessPipeInputStream.processExited:()V
        11: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stderr:Ljava/io/InputStream;
            instanceof java.lang.UNIXProcess$ProcessPipeInputStream
            ifeq 13
        12: .line 301
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stderr:Ljava/io/InputStream;
            checkcast java.lang.UNIXProcess$ProcessPipeInputStream
            invokevirtual java.lang.UNIXProcess$ProcessPipeInputStream.processExited:()V
        13: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdin:Ljava/io/OutputStream;
            instanceof java.lang.UNIXProcess$ProcessPipeOutputStream
            ifeq 15
        14: .line 304
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdin:Ljava/io/OutputStream;
            checkcast java.lang.UNIXProcess$ProcessPipeOutputStream
            invokevirtual java.lang.UNIXProcess$ProcessPipeOutputStream.processExited:()V
        end local 1 // int exitcode
        15: .line 305
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Ljava/lang/UNIXProcess;
            1   15     1  exitcode  I
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any

  private void lambda$4();
    descriptor: ()V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.UNIXProcess this
         0: .line 334
            aload 0 /* this */
            aload 0 /* this */
            getfield java.lang.UNIXProcess.pid:I
            invokevirtual java.lang.UNIXProcess.waitForProcessExit:(I)I
            istore 1 /* exitcode */
        start local 1 // int exitcode
         1: .line 336
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 337
            aload 0 /* this */
            iload 1 /* exitcode */
            putfield java.lang.UNIXProcess.exitcode:I
         3: .line 338
            aload 0 /* this */
            iconst_1
            putfield java.lang.UNIXProcess.hasExited:Z
         4: .line 339
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         5: .line 336
            aload 2
            monitorexit
         6: goto 9
      StackMap locals: java.lang.UNIXProcess int java.lang.UNIXProcess
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
        end local 1 // int exitcode
         9: .line 341
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Ljava/lang/UNIXProcess;
            1    9     1  exitcode  I
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any

  private void lambda$5();
    descriptor: ()V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.UNIXProcess this
         0: .line 358
            aload 0 /* this */
            aload 0 /* this */
            getfield java.lang.UNIXProcess.pid:I
            invokevirtual java.lang.UNIXProcess.waitForProcessExit:(I)I
            istore 1 /* exitcode */
        start local 1 // int exitcode
         1: .line 360
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 361
            aload 0 /* this */
            iload 1 /* exitcode */
            putfield java.lang.UNIXProcess.exitcode:I
         3: .line 362
            aload 0 /* this */
            iconst_1
            putfield java.lang.UNIXProcess.hasExited:Z
         4: .line 363
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         5: .line 360
            aload 2
            monitorexit
         6: goto 9
      StackMap locals: java.lang.UNIXProcess int java.lang.UNIXProcess
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdout:Ljava/io/InputStream;
            instanceof java.lang.UNIXProcess$DeferredCloseProcessPipeInputStream
            ifeq 11
        10: .line 367
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdout:Ljava/io/InputStream;
            checkcast java.lang.UNIXProcess$DeferredCloseProcessPipeInputStream
            invokevirtual java.lang.UNIXProcess$DeferredCloseProcessPipeInputStream.processExited:()V
        11: .line 369
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stderr:Ljava/io/InputStream;
            instanceof java.lang.UNIXProcess$DeferredCloseProcessPipeInputStream
            ifeq 13
        12: .line 370
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stderr:Ljava/io/InputStream;
            checkcast java.lang.UNIXProcess$DeferredCloseProcessPipeInputStream
            invokevirtual java.lang.UNIXProcess$DeferredCloseProcessPipeInputStream.processExited:()V
        13: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdin:Ljava/io/OutputStream;
            instanceof java.lang.UNIXProcess$ProcessPipeOutputStream
            ifeq 15
        14: .line 373
            aload 0 /* this */
            getfield java.lang.UNIXProcess.stdin:Ljava/io/OutputStream;
            checkcast java.lang.UNIXProcess$ProcessPipeOutputStream
            invokevirtual java.lang.UNIXProcess$ProcessPipeOutputStream.processExited:()V
        end local 1 // int exitcode
        15: .line 374
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.UNIXProcess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Ljava/lang/UNIXProcess;
            1   15     1  exitcode  I
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any

  private static java.lang.Thread lambda$1(java.lang.ThreadGroup, java.lang.Runnable);
    descriptor: (Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)Ljava/lang/Thread;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=5, args_size=2
        start local 1 // java.lang.Runnable grimReaper
         0: .line 228
            ldc "jdk.lang.processReaperUseDefaultStackSize"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc 32768
      StackMap locals:
      StackMap stack: int
         2: i2l
            lstore 2 /* stackSize */
        start local 2 // long stackSize
         3: .line 229
            new java.lang.Thread
            dup
            aload 0
            aload 1 /* grimReaper */
            ldc "process reaper"
            lload 2 /* stackSize */
            invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V
            astore 4 /* t */
        start local 4 // java.lang.Thread t
         4: .line 230
            aload 4 /* t */
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
         5: .line 232
            aload 4 /* t */
            bipush 10
            invokevirtual java.lang.Thread.setPriority:(I)V
         6: .line 233
            aload 4 /* t */
            areturn
        end local 4 // java.lang.Thread t
        end local 2 // long stackSize
        end local 1 // java.lang.Runnable grimReaper
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     1  grimReaper  Ljava/lang/Runnable;
            3    7     2   stackSize  J
            4    7     4           t  Ljava/lang/Thread;
}
SourceFile: "UNIXProcess.java"
NestMembers:
  java.lang.UNIXProcess$DeferredCloseInputStream  java.lang.UNIXProcess$DeferredCloseProcessPipeInputStream  java.lang.UNIXProcess$LaunchMechanism  java.lang.UNIXProcess$Platform  java.lang.UNIXProcess$ProcessPipeInputStream  java.lang.UNIXProcess$ProcessPipeOutputStream
InnerClasses:
  NullInputStream = java.lang.ProcessBuilder$NullInputStream of java.lang.ProcessBuilder
  NullOutputStream = java.lang.ProcessBuilder$NullOutputStream of java.lang.ProcessBuilder
  private DeferredCloseInputStream = java.lang.UNIXProcess$DeferredCloseInputStream of java.lang.UNIXProcess
  private DeferredCloseProcessPipeInputStream = java.lang.UNIXProcess$DeferredCloseProcessPipeInputStream of java.lang.UNIXProcess
  private final LaunchMechanism = java.lang.UNIXProcess$LaunchMechanism of java.lang.UNIXProcess
  private final Platform = java.lang.UNIXProcess$Platform of java.lang.UNIXProcess
  private ProcessPipeInputStream = java.lang.UNIXProcess$ProcessPipeInputStream of java.lang.UNIXProcess
  private ProcessPipeOutputStream = java.lang.UNIXProcess$ProcessPipeOutputStream of java.lang.UNIXProcess
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles