(command.CommandList
  children: [
    (C {<set>} {<-e>})
    (command.ShFunction
      name: die
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [{<echo>} {(DQ ($ Id.VSub_At '$@'))}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:img)
          op: assign_op.Equal
          rhs: {<'/usr/share/clear-containers/clear-containers.img'>}
          spids: [33]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:img)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<readlink>} {<-f>} {(DQ ($ Id.VSub_DollarName '$img'))})
              )
            }
          spids: [36]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:img_size)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<du>} {<-b>} {(DQ (${ Id.VSub_Name img))})
                      (C {<awk>} {(SQ <'{print $1}'>)})
                    ]
                    negated: F
                  )
              )
            }
          spids: [47]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:kernel)
          op: assign_op.Equal
          rhs: 
            {
              (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>})) 
                <'/clear-containers-vmlinux'>
              )
            }
          spids: [69]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:kernel_cmdline_file)
          op: assign_op.Equal
          rhs: 
            {
              (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>})) 
                <'/clear-containers-cmdline'>
              )
            }
          spids: [77]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ (${ Id.VSub_Name img))} {<Id.Lit_RBracket ']'>})
        (C {<die>} {(DQ <'Image s required'>)})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ (${ Id.VSub_Name kernel))} {<Id.Lit_RBracket ']'>})
        (C {<die>} {(DQ <'Kernel is required'>)})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} {(${ Id.VSub_Name kernel_cmdline_file)} {<Id.Lit_RBracket ']'>})
        (C {<die>} {(DQ <'Kernel cmdline file is required'>)})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:kernel_cmdline)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<cat>} {(DQ ($ Id.VSub_DollarName '$kernel_cmdline_file'))})
              )
            }
          spids: [146]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ <'/usr/bin/qemu-lite-system-x86_64'>)}
          spids: [156]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: 
            {(DQ ($ Id.VSub_DollarName '$cmd') <' -machine pc-lite,accel=kvm,kernel_irqchip,nvdimm'>)}
          spids: [161]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -device nvdimm,memdev=mem0,id=nv0'>)}
          spids: [167]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$cmd') <' -object memory-backend-file,id=mem0,mem-path='> 
                (${ Id.VSub_Name img) <',size='> (${ Id.VSub_Name img_size)
              )
            }
          spids: [176]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -m 2G,slots=2,maxmem=3G'>)}
          spids: [192]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -kernel '> (${ Id.VSub_Name kernel))}
          spids: [201]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$cmd') <' -append \''> (${ Id.VSub_Name kernel_cmdline) <'\''>)
            }
          spids: [210]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -smp 2,sockets=1,cores=2,threads=1'>)}
          spids: [223]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -cpu host'>)}
          spids: [229]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -rtc base=utc,driftfix=slew'>)}
          spids: [238]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -no-user-config'>)}
          spids: [244]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -nodefaults'>)}
          spids: [250]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -global'>)}
          spids: [256]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' kvm-pit.lost_tick_policy=discard'>)}
          spids: [262]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -device virtio-serial-pci,id=virtio-serial0'>)}
          spids: [271]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -chardev stdio,id=charconsole0,signal=off'>)}
          spids: [277]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$cmd') 
                <' -device virtconsole,chardev=charconsole0,id=console0'>
              )
            }
          spids: [283]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -nographic'>)}
          spids: [289]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cmd') <' -vga none'>)}
          spids: [295]
        )
      ]
    )
    (C {<eval>} {(DQ ($ Id.VSub_DollarName '$cmd'))})
  ]
)