(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ZONECFG='> name:ZONECFG)
          op: assign_op.Equal
          rhs: {<'/etc/security/tsol/tnzonecfg'>}
          spids: [112]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'clearance='> name:clearance)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 1)}
          spids: [115]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'image='> name:image)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 2)}
          spids: [118]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: configure
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'config='> name:config)
                  op: assign_op.Equal
                  rhs: {<'/tmp/zfg.'> ($ Id.VSub_Dollar '$')}
                  spids: [139]
                )
              ]
              redirects: []
            )
            (command.Simple
              words: [{<echo>} {(DQ <'create -F -t SUNWtsoldef'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName config)}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {(DQ <'set zonepath=/zone/'> ($ Id.VSub_DollarName zonename))}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName config)}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {(DQ <commit>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName config)}
                )
              ]
              more_env: []
              do_fork: T
            )
            (C {<'/usr/sbin/zonecfg'>} {<-z>} {($ Id.VSub_DollarName zonename)} {<-f>} 
              {($ Id.VSub_DollarName config)}
            )
            (C {<rm>} {($ Id.VSub_DollarName config)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: clone
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<echo>} {<Cloning>} {($ Id.VSub_DollarName zonename)} {<from>} 
              {($ Id.VSub_DollarName image)} {<Id.Lit_TDot ...>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'found='> name:found)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            words: [{<zoneadm>} {<-z>} {($ Id.VSub_DollarName zonename)} {<list>} {<-p>}]
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [226]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName found)} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<true>})]
                  spids: [245 254]
                )
              ]
              else_action: [
                (C {<echo>} {(DQ ($ Id.VSub_DollarName zonename) <' is being configured.'>)})
                (C {<configure>})
              ]
              redirects: []
            )
            (C {<'/usr/sbin/zfs'>} {<clone>} {($ Id.VSub_DollarName image)} 
              {<'zone/'> ($ Id.VSub_DollarName zonename)}
            )
            (C {<'/usr/sbin/zoneadm'>} {<-z>} {($ Id.VSub_DollarName zonename)} {<attach>} {<-F>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ForEach
      iter_names: [label]
      iterable: 
        (for_iter.Words
          words: [
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<lslabels>} {<-h>} {(DQ ($ Id.VSub_DollarName clearance))})
                right: <Id.Backtick_Right '`'>
              )
            }
          ]
        )
      body: 
        (command.DoGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'zonename='> name:zonename)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<'/bin/grep'>} {($ Id.VSub_DollarName label) <Id.Lit_Colon ':'>} 
                                {($ Id.VSub_DollarName ZONECFG)}
                              )
                              (C {<cut>} {<-d>} {(DQ <':'>)} {<-f1>})
                            ]
                            negated: F
                            stderr_indices: []
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [332]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName zonename)} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'state='> name:state)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        words: [
                                          {<zoneadm>}
                                          {<-z>}
                                          {($ Id.VSub_DollarName zonename)}
                                          {<list>}
                                          {<-p>}
                                        ]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        more_env: []
                                        do_fork: T
                                      )
                                      (C {<cut>} {<-d>} {(DQ <':'>)} {<-f3>})
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          spids: [369]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName state)} 
                                      {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName state)} 
                                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<configured>} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<echo>} {($ Id.VSub_DollarName zonename)} {<is>} {<already>} 
                                      {<installed.>}
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [412 426]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [400 409]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [357 366]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'zonelabel='> name:zonelabel)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: (C {<hextoalabel>} {($ Id.VSub_DollarName label)})
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      spids: [453]
                    )
                  ]
                  redirects: []
                )
                (C {<echo>} {<Enter>} {<zone>} {<name>} {<Id.KW_For for>} 
                  {($ Id.VSub_DollarName zonelabel)}
                )
                (C {<echo>} {<or>} {<RETURN>} {<to>} {<skip>} {<this>} {<label> <Id.Lit_Colon ':'>})
                (C {<read>} {<zonename>})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName zonename)} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nz='> name:nz)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (C {<'/bin/grep'>} 
                                            {(DQ <'^'> ($ Id.VSub_DollarName zonename) <':'>)} {($ Id.VSub_DollarName ZONECFG)}
                                          )
                                          (C {<cut>} {<-d>} {(DQ <':'>)} {<-f1>})
                                        ]
                                        negated: F
                                        stderr_indices: []
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                              spids: [509]
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName nz)} 
                                          {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<echo>} {($ Id.VSub_DollarName zonename)} {<is>} {<already>} {<used>} 
                                  {<Id.KW_For for>} {<another>} {<label.>}
                                )
                              ]
                              spids: [537 546]
                            )
                          ]
                          else_action: [
                            (command.Simple
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName zonename) <':'> 
                                    ($ Id.VSub_DollarName label) <':0::'>
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName ZONECFG)}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [497 506]
                    )
                  ]
                  else_action: [
                    (C {<echo>} {<Skipping>} {<zone>} {<Id.KW_For for>} {($ Id.VSub_DollarName zonelabel)})
                    (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (C {<clone>})
          ]
        )
      redirects: []
    )
  ]
)