(command.CommandList
  children: [
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [
        {<.>}
        {
          (CommandSub
            left_token: <Id.Left_DollarParen '$('>
            child: 
              (command.Simple
                blame_tok: <dirname>
                more_env: []
                words: [{<dirname>} {($ Id.VSub_Number 0)}]
                redirects: []
                do_fork: T
              )
            right: <Id.Eof_RParen _>
          ) <'/conf.sh'>
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'base='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'base='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <basename>
                    more_env: []
                    words: [{<basename>} {($ Id.VSub_Number 0)}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'sectors='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'sectors='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sectors='> name:sectors)
          op: assign_op.Equal
          rhs: {<32>}
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.ShAssignment
          left: <Id.Lit_VarLike 'keyfile='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'keyfile='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keyfile='> name:keyfile)
              op: assign_op.Equal
              rhs: 
                {
                  (CommandSub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Simple
                        blame_tok: <mktemp>
                        more_env: []
                        words: [{<mktemp>} {($ Id.VSub_DollarName base) <.XXXXXX>}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Backtick_Right '`'>
                  )
                }
            )
          ]
          redirects: []
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.ShAssignment
          left: <Id.Lit_VarLike 'rnd='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'rnd='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rnd='> name:rnd)
              op: assign_op.Equal
              rhs: 
                {
                  (CommandSub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Simple
                        blame_tok: <mktemp>
                        more_env: []
                        words: [{<mktemp>} {($ Id.VSub_DollarName base) <.XXXXXX>}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Backtick_Right '`'>
                  )
                }
            )
          ]
          redirects: []
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(DQ <1..200>)}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <do_test>
      name: do_test
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cipher='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cipher='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cipher='> name:cipher)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'secsize='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'secsize='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'secsize='> name:secsize)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ealgo='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ealgo='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ealgo='> name:ealgo)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name cipher>
                        var_name: cipher
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VOp1_DPercent '%%'>
                            arg_word: {<':'> <Id.Lit_Other '*'>}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'keylen='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'keylen='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keylen='> name:keylen)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name cipher>
                        var_name: cipher
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VOp1_DPound '##'>
                            arg_word: {<Id.Lit_Other '*'> <':'>}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <mdconfig>
                  more_env: []
                  words: [
                    {<mdconfig>}
                    {<-a>}
                    {<-t>}
                    {<malloc>}
                    {<-s>}
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <expr>
                            more_env: []
                            words: [
                              {<expr>}
                              {($ Id.VSub_DollarName secsize)}
                              {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'> ch:'*')}
                              {($ Id.VSub_DollarName sectors)}
                              {<Id.Lit_Other '+'>}
                              {<512>}
                            ]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      ) <b>
                    }
                    {<-u>}
                    {($ Id.VSub_DollarName no)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <geli>
              more_env: []
              words: [
                {<geli>}
                {<init>}
                {<-B>}
                {<none>}
                {<-e>}
                {($ Id.VSub_DollarName ealgo)}
                {<-l>}
                {($ Id.VSub_DollarName keylen)}
                {<-P>}
                {<-K>}
                {($ Id.VSub_DollarName keyfile)}
                {<-s>}
                {($ Id.VSub_DollarName secsize)}
                {<md> (${ Id.VSub_Name no)}
              ]
              redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <geli>
              more_env: []
              words: [
                {<geli>}
                {<attach>}
                {<-p>}
                {<-k>}
                {($ Id.VSub_DollarName keyfile)}
                {<md> (${ Id.VSub_Name no)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'secs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'secs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'secs='> name:secs)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <diskinfo>
                                more_env: []
                                words: [{<diskinfo>} {<'/dev/md'> (${ Id.VSub_Name no) <.eli>}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <awk>
                                more_env: []
                                words: [{<awk>} {(SQ <'{print $4}'>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <dd>
              more_env: []
              words: [
                {<dd>}
                {<Id.Lit_VarLike 'if='> <'/dev/random'>}
                {<Id.Lit_VarLike 'of='> (${ Id.VSub_Name rnd)}
                {<Id.Lit_VarLike 'bs='> (${ Id.VSub_Name secsize)}
                {<Id.Lit_VarLike 'count='> (${ Id.VSub_Name secs)}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
                (Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <dd>
              more_env: []
              words: [
                {<dd>}
                {<Id.Lit_VarLike 'if='> (${ Id.VSub_Name rnd)}
                {<Id.Lit_VarLike 'of='> <'/dev/md'> (${ Id.VSub_Name no) <.eli>}
                {<Id.Lit_VarLike 'bs='> (${ Id.VSub_Name secsize)}
                {<Id.Lit_VarLike 'count='> (${ Id.VSub_Name secs)}
              ]
              redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'md_rnd='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'md_rnd='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'md_rnd='> name:md_rnd)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <dd>
                                more_env: []
                                words: [
                                  {<dd>}
                                  {<Id.Lit_VarLike 'if='> (${ Id.VSub_Name rnd)}
                                  {<Id.Lit_VarLike 'bs='> (${ Id.VSub_Name secsize)}
                                  {<Id.Lit_VarLike 'count='> (${ Id.VSub_Name secs)}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <md5>
                                more_env: []
                                words: [{<md5>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'md_ddev='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'md_ddev='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'md_ddev='> name:md_ddev)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <dd>
                                more_env: []
                                words: [
                                  {<dd>}
                                  {<Id.Lit_VarLike 'if='> <'/dev/md'> (${ Id.VSub_Name no) <.eli>}
                                  {<Id.Lit_VarLike 'bs='> (${ Id.VSub_Name secsize)}
                                  {<Id.Lit_VarLike 'count='> (${ Id.VSub_Name secs)}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <md5>
                                more_env: []
                                words: [{<md5>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'md_edev='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'md_edev='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'md_edev='> name:md_edev)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <dd>
                                more_env: []
                                words: [
                                  {<dd>}
                                  {<Id.Lit_VarLike 'if='> <'/dev/md'> (${ Id.VSub_Name no)}
                                  {<Id.Lit_VarLike 'bs='> (${ Id.VSub_Name secsize)}
                                  {<Id.Lit_VarLike 'count='> (${ Id.VSub_Name secs)}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <md5>
                                more_env: []
                                words: [{<md5>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(${ Id.VSub_Name md_rnd)}
                                {<Id.Lit_Equals '='>}
                                {(${ Id.VSub_Name md_ddev)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'ok '> ($ Id.VSub_DollarName i) <' - ealgo='> (${ Id.VSub_Name ealgo) 
                            <' keylen='> (${ Id.VSub_Name keylen) <' sec='> (${ Id.VSub_Name secsize)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [369 386]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (DQ <'not ok '> ($ Id.VSub_DollarName i) <' - ealgo='> (${ Id.VSub_Name ealgo) 
                        <' keylen='> (${ Id.VSub_Name keylen) <' sec='> (${ Id.VSub_Name secsize)
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'i='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'i='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        left: <Id.Left_DollarDParen '$(('>
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: ($ Id.Lit_ArithVarLike i)
                            right: {<Id.Lit_Digits 1>}
                          )
                        right: <Id.Right_DollarDParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(${ Id.VSub_Name md_rnd)}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(${ Id.VSub_Name md_edev)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'ok '> ($ Id.VSub_DollarName i) <' - ealgo='> (${ Id.VSub_Name ealgo) 
                            <' keylen='> (${ Id.VSub_Name keylen) <' sec='> (${ Id.VSub_Name secsize)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [444 462]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (DQ <'not ok '> ($ Id.VSub_DollarName i) <' - ealgo='> (${ Id.VSub_Name ealgo) 
                        <' keylen='> (${ Id.VSub_Name keylen) <' sec='> (${ Id.VSub_Name secsize)
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'i='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'i='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        left: <Id.Left_DollarDParen '$(('>
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: ($ Id.Lit_ArithVarLike i)
                            right: {<Id.Lit_Digits 1>}
                          )
                        right: <Id.Right_DollarDParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <geli>
              more_env: []
              words: [{<geli>} {<detach>} {<md> (${ Id.VSub_Name no)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mdconfig>
              more_env: []
              words: [{<mdconfig>} {<-d>} {<-u>} {($ Id.VSub_DollarName no)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'i='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'i='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <dd>
      more_env: []
      words: [
        {<dd>}
        {<Id.Lit_VarLike 'if='> <'/dev/random'>}
        {<Id.Lit_VarLike 'of='> (${ Id.VSub_Name keyfile)}
        {<Id.Lit_VarLike 'bs='> <512>}
        {<Id.Lit_VarLike 'count='> <16>}
      ]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})
        (Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <for_each_geli_config_nointegrity>
      more_env: []
      words: [{<for_each_geli_config_nointegrity>} {<do_test>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {($ Id.VSub_DollarName rnd)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {($ Id.VSub_DollarName keyfile)}]
      redirects: []
      do_fork: T
    )
  ]
)