(CommandList
  children: [
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:USAGE)
                  op: Equal
                  rhs: 
                    {
                      (DQ ("Usage: ") ($ VSub_Number "$0") 
                        (" i386|amd64 [target dir] [be|dev|<stable version>]]") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("\n") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("\n") ("The first mandatory argument speciifies the CPU architecture using") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("\n") ("the Debian convention (e.g. i386 and amd64).") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("\n") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("\n") 
                        ("The second optional argument specifies the destination") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("\n") 
                        ("directory. This defaults to 'debian_<architecture>'.") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("\n") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("\n") ("The third optional argument specifies whether the chroot is") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("\n") ("populated with a Dart checkout. Use 'be' for bleeding edge, 'dev'") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("\n") ("for trunk/developer or the specific version number for a stable") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("\n") ("version (e.g. 1.2).")
                      )
                    }
                  spids: [35]
                )
              ]
              spids: [35]
            )
            (C {(echo)} {(-e)} {($ VSub_Name "$USAGE")})
            (C {(exit)} {(1)})
          ]
          spids: [32]
        )
      spids: [28 31]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (AndOr
              children: [
                (C {(Lit_Other "[")} {($ VSub_Pound "$#")} {(-lt)} {(1)} {(Lit_Other "]")})
                (C {(Lit_Other "[")} {($ VSub_Pound "$#")} {(-gt)} {(3)} {(Lit_Other "]")})
              ]
              op_id: Op_DPipe
            )
          ]
          action: [(C {(usage)})]
          spids: [-1 118]
        )
      ]
      spids: [-1 123]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ARCH) op:Equal rhs:{($ VSub_Number "$1")} spids:[126])]
      spids: [126]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Number "$2"))} {(Lit_Other "]")})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHROOT)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [145]
                )
              ]
              spids: [145]
            )
          ]
          spids: [-1 142]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:CHROOT)
              op: Equal
              rhs: {(debian_) ($ VSub_Name "$ARCH")}
              spids: [151]
            )
          ]
          spids: [151]
        )
      ]
      spids: [148 155]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Number "$3"))} {(Lit_Other "]")})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHANNEL)
                  op: Equal
                  rhs: {($ VSub_Number "$3")}
                  spids: [173]
                )
              ]
              spids: [173]
            )
          ]
          spids: [-1 170]
        )
      ]
      spids: [-1 176]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$ARCH"))} {(KW_Bang "!") (Lit_Other "=")} 
                  {(DQ (i386))} {(Lit_Other "]")}
                )
                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$ARCH"))} {(KW_Bang "!") (Lit_Other "=")} 
                  {(DQ (amd64))} {(Lit_Other "]")}
                )
              ]
              op_id: Op_DAmp
            )
          ]
          action: [(C {(usage)})]
          spids: [-1 213]
        )
      ]
      spids: [-1 218]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SVN_REPRO)
          op: Equal
          rhs: {(DQ ("http://dart.googlecode.com/svn/"))}
          spids: [221]
        )
      ]
      spids: [221]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$CHANNEL"))} {(Lit_Other "]")})]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$CHANNEL"))} 
                      {(Lit_Other "=") (Lit_Other "=")} {(DQ (be))} {(Lit_Other "]")}
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:SVN_PATH)
                          op: Equal
                          rhs: {(DQ (branches/bleeding_edge/deps/all.deps))}
                          spids: [262]
                        )
                      ]
                      spids: [262]
                    )
                  ]
                  spids: [-1 259]
                )
                (if_arm
                  cond: [
                    (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$CHANNEL"))} 
                      {(Lit_Other "=") (Lit_Other "=")} {(DQ (dev))} {(Lit_Other "]")}
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:SVN_PATH)
                          op: Equal
                          rhs: {(DQ (trunk/deps/all.deps))}
                          spids: [289]
                        )
                      ]
                      spids: [289]
                    )
                  ]
                  spids: [268 286]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:SVN_PATH)
                      op: Equal
                      rhs: {(DQ (branches/) ($ VSub_Name "$CHANNEL") (/deps/all.deps))}
                      spids: [298]
                    )
                  ]
                  spids: [298]
                )
              ]
              spids: [295 306]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SRC_URI)
                  op: Equal
                  rhs: {($ VSub_Name "$SVN_REPRO") ($ VSub_Name "$SVN_PATH")}
                  spids: [309]
                )
              ]
              spids: [309]
            )
          ]
          spids: [-1 238]
        )
      ]
      spids: [-1 313]
    )
    (C {(debootstrap)} {(--arch) (Lit_Other "=") ($ VSub_Name "$ARCH")} 
      {(--components) (Lit_Other "=") (main) (Lit_Comma ",") (restricted) (Lit_Comma ",") (universe) 
        (Lit_Comma ",") (multiverse)
      } {(wheezy)} {($ VSub_Name "$CHROOT")} {(http) (Lit_Other ":") (//http.us.debian.org/debian/)}
    )
    (C {(chroot)} {($ VSub_Name "$CHROOT")} {(apt-get)} {(update)})
    (C {(chroot)} {($ VSub_Name "$CHROOT")} {(apt-get)} {(-y)} {(install)} {(debhelper)} {(python)} {(git)} 
      {(gcc)} {(sudo)} {(make)}
    )
    (C {(chroot)} {($ VSub_Name "$CHROOT")} {(groupadd)} {(--gid)} {(1001)} {(chrome-bot)})
    (C {(chroot)} {($ VSub_Name "$CHROOT")} {(useradd)} {(--gid)} {(1001)} {(--uid)} {(1001)} 
      {(--create-home)} {(chrome-bot)}
    )
    (C {(mkdir)} {($ VSub_Name "$CHROOT") (/b)})
    (C {(chown)} {(1001) (Lit_Other ":") (1001)} {($ VSub_Name "$CHROOT") (/b)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ("#!/bin/sh\n") ("su -c /b/init_chroot.sh chrome-bot\n"))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [431]
        )
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name "$CHROOT") (/b/init_chroot_trampoline.sh)}
          spids: [435]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {("#!/bin/sh\n") ("cd /b\n")}
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [448]
        )
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name "$CHROOT") (/b/init_chroot.sh)}
          spids: [454]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$SRC_URI"))} {(Lit_Other "]")})]
          action: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (
"git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git\n"
                      ) ("export PATH=$PATH:/b/depot_tools\n")
                    }
                  do_expansion: False
                  here_end: EOF
                  was_filled: True
                  spids: [485]
                )
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {($ VSub_Name "$CHROOT") (/b/init_chroot.sh)}
                  spids: [491]
                )
              ]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("gclient config ") ($ VSub_Name "$SRC_URI") ("\n") ("gclient sync\n") 
                        ("gclient runhooks\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [499]
                )
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {($ VSub_Name "$CHROOT") (/b/init_chroot.sh)}
                  spids: [503]
                )
              ]
            )
          ]
          spids: [-1 481]
        )
      ]
      spids: [-1 513]
    )
    (C {(chmod)} {(755)} {($ VSub_Name "$CHROOT") (/b/init_chroot_trampoline.sh)})
    (C {(chown)} {(1001) (Lit_Other ":") (1001)} {($ VSub_Name "$CHROOT") (/b/init_chroot.sh)})
    (C {(chmod)} {(755)} {($ VSub_Name "$CHROOT") (/b/init_chroot.sh)})
    (C {(chroot)} {($ VSub_Name "$CHROOT")} {(/bin/sh)} {(/b/init_chroot_trampoline.sh)})
  ]
)