public class org.bouncycastle.mime.CanonicalOutputStream extends java.io.FilterOutputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.mime.CanonicalOutputStream
  super_class: java.io.FilterOutputStream
{
  protected int lastb;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected static byte[] newline;
    descriptor: [B
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  private final boolean is7Bit;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 83
            iconst_2
            newarray 8
            putstatic org.bouncycastle.mime.CanonicalOutputStream.newline:[B
         1: .line 84
            getstatic org.bouncycastle.mime.CanonicalOutputStream.newline:[B
            iconst_0
            bipush 13
            bastore
         2: .line 85
            getstatic org.bouncycastle.mime.CanonicalOutputStream.newline:[B
            iconst_1
            bipush 10
            bastore
         3: .line 86
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.bouncycastle.mime.smime.SMimeParserContext, org.bouncycastle.mime.Headers, java.io.OutputStream);
    descriptor: (Lorg/bouncycastle/mime/smime/SMimeParserContext;Lorg/bouncycastle/mime/Headers;Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.bouncycastle.mime.CanonicalOutputStream this
        start local 1 // org.bouncycastle.mime.smime.SMimeParserContext parserContext
        start local 2 // org.bouncycastle.mime.Headers headers
        start local 3 // java.io.OutputStream outputstream
         0: .line 18
            aload 0 /* this */
            aload 3 /* outputstream */
            invokespecial java.io.FilterOutputStream.<init>:(Ljava/io/OutputStream;)V
         1: .line 19
            aload 0 /* this */
            iconst_m1
            putfield org.bouncycastle.mime.CanonicalOutputStream.lastb:I
         2: .line 21
            aload 2 /* headers */
            invokevirtual org.bouncycastle.mime.Headers.getContentType:()Ljava/lang/String;
            ifnull 7
         3: .line 23
            aload 0 /* this */
            aload 2 /* headers */
            invokevirtual org.bouncycastle.mime.Headers.getContentType:()Ljava/lang/String;
            ifnull 4
            aload 2 /* headers */
            invokevirtual org.bouncycastle.mime.Headers.getContentType:()Ljava/lang/String;
            ldc "binary"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            iconst_1
            goto 5
      StackMap locals: org.bouncycastle.mime.CanonicalOutputStream org.bouncycastle.mime.smime.SMimeParserContext org.bouncycastle.mime.Headers java.io.OutputStream
      StackMap stack: org.bouncycastle.mime.CanonicalOutputStream
         4: iconst_0
      StackMap locals: org.bouncycastle.mime.CanonicalOutputStream org.bouncycastle.mime.smime.SMimeParserContext org.bouncycastle.mime.Headers java.io.OutputStream
      StackMap stack: org.bouncycastle.mime.CanonicalOutputStream int
         5: putfield org.bouncycastle.mime.CanonicalOutputStream.is7Bit:Z
         6: .line 24
            goto 8
         7: .line 27
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* parserContext */
            invokevirtual org.bouncycastle.mime.smime.SMimeParserContext.getDefaultContentTransferEncoding:()Ljava/lang/String;
            ldc "7bit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            putfield org.bouncycastle.mime.CanonicalOutputStream.is7Bit:Z
         8: .line 29
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.io.OutputStream outputstream
        end local 2 // org.bouncycastle.mime.Headers headers
        end local 1 // org.bouncycastle.mime.smime.SMimeParserContext parserContext
        end local 0 // org.bouncycastle.mime.CanonicalOutputStream this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lorg/bouncycastle/mime/CanonicalOutputStream;
            0    9     1  parserContext  Lorg/bouncycastle/mime/smime/SMimeParserContext;
            0    9     2        headers  Lorg/bouncycastle/mime/Headers;
            0    9     3   outputstream  Ljava/io/OutputStream;
    MethodParameters:
               Name  Flags
      parserContext  
      headers        
      outputstream   

  public void write(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.mime.CanonicalOutputStream this
        start local 1 // int i
         0: .line 34
            aload 0 /* this */
            getfield org.bouncycastle.mime.CanonicalOutputStream.is7Bit:Z
            ifeq 10
         1: .line 36
            iload 1 /* i */
            bipush 13
            if_icmpne 4
         2: .line 38
            aload 0 /* this */
            getfield org.bouncycastle.mime.CanonicalOutputStream.out:Ljava/io/OutputStream;
            getstatic org.bouncycastle.mime.CanonicalOutputStream.newline:[B
            invokevirtual java.io.OutputStream.write:([B)V
         3: .line 39
            goto 11
         4: .line 40
      StackMap locals:
      StackMap stack:
            iload 1 /* i */
            bipush 10
            if_icmpne 8
         5: .line 42
            aload 0 /* this */
            getfield org.bouncycastle.mime.CanonicalOutputStream.lastb:I
            bipush 13
            if_icmpeq 11
         6: .line 44
            aload 0 /* this */
            getfield org.bouncycastle.mime.CanonicalOutputStream.out:Ljava/io/OutputStream;
            getstatic org.bouncycastle.mime.CanonicalOutputStream.newline:[B
            invokevirtual java.io.OutputStream.write:([B)V
         7: .line 46
            goto 11
         8: .line 49
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.mime.CanonicalOutputStream.out:Ljava/io/OutputStream;
            iload 1 /* i */
            invokevirtual java.io.OutputStream.write:(I)V
         9: .line 51
            goto 11
        10: .line 54
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.mime.CanonicalOutputStream.out:Ljava/io/OutputStream;
            iload 1 /* i */
            invokevirtual java.io.OutputStream.write:(I)V
        11: .line 57
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* i */
            putfield org.bouncycastle.mime.CanonicalOutputStream.lastb:I
        12: .line 58
            return
        end local 1 // int i
        end local 0 // org.bouncycastle.mime.CanonicalOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/bouncycastle/mime/CanonicalOutputStream;
            0   13     1     i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      i     

  public void write(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bouncycastle.mime.CanonicalOutputStream this
        start local 1 // byte[] buf
         0: .line 63
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            aload 1 /* buf */
            arraylength
            invokevirtual org.bouncycastle.mime.CanonicalOutputStream.write:([BII)V
         1: .line 64
            return
        end local 1 // byte[] buf
        end local 0 // org.bouncycastle.mime.CanonicalOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/mime/CanonicalOutputStream;
            0    2     1   buf  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buf   

  public void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.bouncycastle.mime.CanonicalOutputStream this
        start local 1 // byte[] buf
        start local 2 // int off
        start local 3 // int len
         0: .line 69
            iload 2 /* off */
            istore 4 /* i */
        start local 4 // int i
         1: goto 4
         2: .line 71
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            iload 4 /* i */
            baload
            invokevirtual org.bouncycastle.mime.CanonicalOutputStream.write:(I)V
         3: .line 69
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 4 /* i */
            iload 2 /* off */
            iload 3 /* len */
            iadd
            if_icmpne 2
        end local 4 // int i
         5: .line 73
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] buf
        end local 0 // org.bouncycastle.mime.CanonicalOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/mime/CanonicalOutputStream;
            0    6     1   buf  [B
            0    6     2   off  I
            0    6     3   len  I
            1    5     4     i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buf   
      off   
      len   

  public void writeln();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.mime.CanonicalOutputStream this
         0: .line 78
            aload 0 /* this */
            getfield java.io.FilterOutputStream.out:Ljava/io/OutputStream;
            getstatic org.bouncycastle.mime.CanonicalOutputStream.newline:[B
            invokevirtual java.io.OutputStream.write:([B)V
         1: .line 79
            return
        end local 0 // org.bouncycastle.mime.CanonicalOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/mime/CanonicalOutputStream;
    Exceptions:
      throws java.io.IOException
}
SourceFile: "CanonicalOutputStream.java"