(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:LOCALRC) op:Equal rhs:{(/usr/etc/rc.local)} spids:[28])]
      spids: [28]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MYLOCALRC)
          op: Equal
          rhs: {(/mnt/etc/rc.local)}
          spids: [31]
        )
      ]
      spids: [31]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ROOTMB) op:Equal rhs:{(16)} spids:[34])]
      spids: [34]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ROOTSECTS)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (C {(expr)} {($ VSub_Name '$ROOTMB')} {(SQ <'*'>)} {(1024)} {(SQ <'*'>)} {(2)})
                      ]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [39 55]
                )
              )
            }
          spids: [37]
        )
      ]
      spids: [37]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:USRKBFILE) op:Equal rhs:{(/.usrkb)} spids:[58])]
      spids: [58]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_Name '$USRKBFILE'))} 
              {(Lit_Other ']')}
            )
          ]
          action: [
            (C {(echo)} {(DQ ('Are you really running from CD?'))})
            (C {(echo)} {(DQ ('No ') ($ VSub_Name '$USRKBFILE') (' file.'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 75]
        )
      ]
      spids: [16777215 97]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:USRKB)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(cat)} {(/.usrkb)})])
                  left_token: <Left_Backtick '`'>
                  spids: [101 105]
                )
              )
            }
          spids: [99]
        )
      ]
      spids: [99]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TOTALMB)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (C {(expr)} {(3)} {(Lit_Other '+')} {($ VSub_Name '$USRKB')} {(/)} {(1024)} 
                          {(Lit_Other '+')} {($ VSub_Name '$ROOTMB')}
                        )
                      ]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [110 126]
                )
              )
            }
          spids: [108]
        )
      ]
      spids: [108]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ROOTFILES)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(cat)} {(/.rootfiles)})])
                  left_token: <Left_Backtick '`'>
                  spids: [131 135]
                )
              )
            }
          spids: [129]
        )
      ]
      spids: [129]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:USRFILES)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(cat)} {(/.usrfiles)})])
                  left_token: <Left_Backtick '`'>
                  spids: [140 144]
                )
              )
            }
          spids: [138]
        )
      ]
      spids: [138]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other '[')} {(DQ ($ VSub_Name '$TOTALMB'))} {(-lt)} {(1)} {(Lit_Other ']')})]
          action: [
            (C {(echo)} {(DQ ('Are you really running from CD?'))})
            (C {(echo)} {(DQ ('Something wrong with size estimate on CD.'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 162]
        )
      ]
      spids: [16777215 184]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ROOTFILES'))} {(-lt)} {(1)} {(Lit_Other ']')})
          ]
          action: [
            (C {(echo)} {(DQ ('Are you really running from CD?'))})
            (C {(echo)} {(DQ ('Something wrong with root files count on CD.'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 201]
        )
      ]
      spids: [16777215 223]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USRFILES'))} {(-lt)} {(1)} {(Lit_Other ']')})]
          action: [
            (C {(echo)} {(DQ ('Are you really running from CD?'))})
            (C {(echo)} {(DQ ('Something wrong with usr files count on CD.'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 240]
        )
      ]
      spids: [16777215 262]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PATH)
          op: Equal
          rhs: {(/bin) (Lit_Other ':') (/usr/bin)}
          spids: [265]
        )
      ]
      spids: [265]
    )
    (C {(export)} {(PATH)})
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(SQ <EOF>)}
                  here_end_span_id: 302
                  stdin_parts: [
                    ('Usage:\tsetup\t\t# Install a skeleton system on the hard disk.\n')
                    ('\tsetup /usr\t# Install the rest of the system (binaries or sources).\n')
                    ('\n')
                    ('\t# To install from other things then floppies:\n')
                    ('\n')
                    ('\turlget http://... | setup /usr\t\t# Read from a web site.\n')
                    ('\turlget ftp://... | setup /usr\t\t# Read from an FTP site.\n')
                    ('\tmtools copy c0d0p0:... - | setup /usr\t# Read from the C: drive.\n')
                    ('\tdosread c0d0p0 ... | setup /usr\t\t# Likewise if no mtools.\n')
                  ]
                )
              ]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [280]
        )
      spids: [276 279]
    )
    (FuncDef
      name: warn
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(-e)} 
              {
                (DQ (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) 
                  (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) 
                  (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) 
                  (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) (Lit_Other '\\') (b) 
                  (Lit_Other '\\') ('b ! ') ($ VSub_Number '$1')
                )
              }
            )
          ]
          spids: [316]
        )
      spids: [311 314]
    )
    (WhileUntil
      keyword: <KW_While while>
      cond: [(Sentence child:(C {(getopts)} {(SQ )} {(opt)}) terminator:<Op_Semi ';'>)]
      body: 
        (DoGroup
          children: [(Sentence child:(C {(usage)}) terminator:<Op_Semi ';'>)]
          spids: [389 394]
        )
    )
    (C {(shift)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(expr)} {($ VSub_Name '$OPTIND')} {(-)} {(1)})])
          left_token: <Left_Backtick '`'>
          spids: [398 406]
        )
      }
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USER'))} {(KW_Bang '!') (Lit_Other '=')} {(root)} 
              {(Lit_Other ']')}
            )
          ]
          action: [
            (C {(echo)} {(DQ ('Please run setup as root.'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 424]
        )
      ]
      spids: [16777215 437]
    )
    (SimpleCommand
      words: [{(exec)}]
      redirects: [
        (Redir op:<Redir_LessAnd '9<&'> fd:9 arg_word:{(0)})
        (Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(/etc/mtab)})
      ]
    )
    (C {(read)} {(thisroot)} {(rest)})
    (C {(read)} {(fdusr)} {(rest)})
    (SimpleCommand
      words: [{(exec)}]
      redirects: [
        (Redir op:<Redir_LessAnd '0<&'> fd:0 arg_word:{(9)})
        (Redir op:<Redir_LessAnd '9<&'> fd:9 arg_word:{(-)})
      ]
    )
    (Case
      to_match: {($ VSub_Name '$thisroot') (Lit_Other ':') ($ VSub_Name '$fdusr')}
      arms: [
        (case_arm
          pat_list: [{(/dev/ram) (Lit_Other ':') (/dev/fd0p2)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fdroot) op:Equal rhs:{(/dev/fd0)} spids:[497])]
              spids: [497]
            )
          ]
          spids: [492 495 504 16777215]
        )
        (case_arm
          pat_list: [{(/dev/ram) (Lit_Other ':') (/dev/fd1p2)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fdroot) op:Equal rhs:{(/dev/fd1)} spids:[511])]
              spids: [511]
            )
          ]
          spids: [506 509 518 16777215]
        )
        (case_arm
          pat_list: [{(/dev/ram) (Lit_Other ':') (/dev/fd) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fdroot) op:Equal rhs:{(unknown)} spids:[526])]
              spids: [526]
            )
          ]
          spids: [520 524 533 16777215]
        )
        (case_arm
          pat_list: [{(/dev/fd) (Lit_Other '*') (Lit_Other ':') (/dev/fd) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fdroot)
                  op: Equal
                  rhs: {($ VSub_Name '$thisroot')}
                  spids: [542]
                )
              ]
              spids: [542]
            )
          ]
          spids: [535 540 549 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fdroot)
                  op: Equal
                  rhs: {($ VSub_Name '$thisroot')}
                  spids: [554]
                )
              ]
              spids: [554]
            )
          ]
          spids: [551 552 16777215 560]
        )
      ]
      spids: [484 490 560]
    )
    (C {(echo)} {(-n)} 
      {
        (DQ ('\n') 
          ('Welcome to the MINIX 3 setup script.  This script will guide you in setting up\n') ('MINIX on your machine.  Please consult the manual for detailed instructions.\n') ('\n') 
          ('Note 1: If the screen blanks, hit CTRL+F3 to select ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('software scrolling') 
          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('.\n') ('Note 2: If things go wrong then hit CTRL+C to abort and start over.\n') 
          ('Note 3: Default answers, like [y], can simply be chosen by hitting ENTER.\n') ('Note 4: If you see a colon (:) then you should hit ENTER to continue.\n') (':')
        )
      }
    )
    (C {(read)} {(ret)})
    (C {(echo)} {(DQ )})
    (C {(echo)} {(DQ (' --- Step 1: Select keyboard type --------------------------------------'))})
    (C {(echo)} {(DQ )})
    (C {(echo)} {(DQ ('What type of keyboard do you have?  You can choose one of:'))})
    (C {(echo)} {(DQ )})
    (Pipeline
      children: [
        (C {(ls)} {(-C)} {(/usr/lib/keymaps)})
        (C {(sed)} {(-e)} {(SQ <'s/\\.map//g'>)} {(-e)} {(SQ <'s/^/    /'>)})
      ]
      negated: F
    )
    (C {(echo)} {(DQ )})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:step1) op:Equal rhs:{(DQ )} spids:[650])]
      spids: [650]
    )
    (WhileUntil
      keyword: <KW_While while>
      cond: [
        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$step1'))} {(KW_Bang '!') (Lit_Other '=')} {(ok)} 
          {(Lit_Other ']')}
        )
      ]
      body: 
        (DoGroup
          children: [
            (Sentence
              child: (C {(echo)} {(-n)} {(DQ ('Keyboard type? [us-std] '))})
              terminator: <Op_Semi ';'>
            )
            (C {(read)} {(keymap)})
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$keymap'))})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:keymap) op:Equal rhs:{(us-std)} spids:[696])]
                  spids: [696]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (SimpleCommand
                      words: [{(loadkeys)} {(DQ (/usr/lib/keymaps/) ($ VSub_Name '$keymap') (.map))}]
                      redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:step1) op:Equal rhs:{(ok)} spids:[717])]
                      spids: [717]
                    )
                  ]
                  spids: [16777215 715]
                )
              ]
              else_action: [(C {(warn)} {(DQ ('invalid keyboard'))})]
              spids: [722 731]
            )
          ]
          spids: [669 733]
        )
    )
    (C {(echo)} {(DQ )})
    (C {(echo)} {(DQ (' --- Step 2: Selecting full distribution -------------------------------'))})
    (C {(echo)} {(DQ )})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:nobigsource) op:Equal rhs:{(DQ )} spids:[828])]
      spids: [828]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:step3) op:Equal rhs:{(DQ )} spids:[836])]
      spids: [836]
    )
    (WhileUntil
      keyword: <KW_While while>
      cond: [
        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$step3'))} {(KW_Bang '!') (Lit_Other '=')} {(ok)} 
          {(Lit_Other ']')}
        )
      ]
      body: 
        (DoGroup
          children: [
            (C {(echo)} {(DQ )})
            (C {(echo)} 
              {(DQ (' --- Step 3: Create or select a partition for MINIX 3 -------------------'))}
            )
            (C {(echo)} {(DQ )})
            (C {(echo)} {(DQ ('Now you need to create a MINIX 3 partition on your hard disk.'))})
            (C {(echo)} {(DQ ("You can also select one that's already there."))})
            (C {(echo)} {(DQ (' '))})
            (C {(echo)} {(DQ ('If you have an existing installation, reinstalling will let you'))})
            (C {(echo)} {(DQ ('keep your current partitioning and subpartitioning, and overwrite'))})
            (C {(echo)} {(DQ ('everything except your s1 subpartition (/home). If you want to'))})
            (C {(echo)} {(DQ ('reinstall, select your existing minix partition.'))})
            (C {(echo)} {(DQ (' '))})
            (C {(echo)} {(DQ ('Unless you are an expert, you are advised to use the automated'))})
            (C {(echo)} {(DQ ('step-by-step help in setting up.'))})
            (C {(echo)} {(DQ )})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ok) op:Equal rhs:{(DQ )} spids:[954])]
              spids: [954]
            )
            (WhileUntil
              keyword: <KW_While while>
              cond: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ok'))} {(Lit_Other '=')} {(DQ )} 
                  {(Lit_Other ']')}
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} {(-n)} {(DQ ("Press ENTER for automatic mode, or type 'expert': "))})
                    (C {(read)} {(mode)})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$mode'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:auto)
                                      op: Equal
                                      rhs: {(DQ (1))}
                                      spids: [1007]
                                    )
                                  ]
                                  spids: [1007]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:ok)
                                      op: Equal
                                      rhs: {(DQ (yes))}
                                      spids: [1013]
                                    )
                                  ]
                                  spids: [1013]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [16777215 1005]
                        )
                      ]
                      spids: [16777215 1019]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$mode'))} {(Lit_Other '=')} 
                                  {(expert)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:auto)
                                      op: Equal
                                      rhs: {(DQ )}
                                      spids: [1040]
                                    )
                                  ]
                                  spids: [1040]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:ok)
                                      op: Equal
                                      rhs: {(DQ (yes))}
                                      spids: [1045]
                                    )
                                  ]
                                  spids: [1045]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [16777215 1038]
                        )
                      ]
                      spids: [16777215 1051]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ok'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(yes)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: (C {(warn)} {(DQ ('try again'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [16777215 1070]
                        )
                      ]
                      spids: [16777215 1079]
                    )
                  ]
                  spids: [975 1083]
                )
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:primary)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [1087]
                )
              ]
              spids: [1087]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$auto'))} {(Lit_Other ']')})]
                  action: [
                    (C {(echo)} {(-n)} 
                      {
                        (DQ ('\n') ('MINIX needs one primary partition of ') ($ VSub_Name '$TOTALMB') 
                          (' MB for a full install,\n') ('plus what you want for /home.\n') ('\n') 
                          (
'If there is no free space on your disk then you have to choose an option:\n'
                          ) ('   (1) Delete one or more partitions\n') ('   (2) Allocate an existing partition to MINIX 3\n') 
                          ('   (3) Exit setup and shrink a partition using a different OS\n') ('\n') ('To make this partition you will be put in the editor ') 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (part) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('.  Follow the\n') 
                          (
"advice under the '!' key to make a new partition of type MINIX.  Do not\n"
                          ) ('touch an existing partition unless you know precisely what you are doing!\n') 
                          (
'Please note the name of the partition (e.g. c0d0p1, c0d1p3, c1d1p0) you\n'
                          ) ('make.  (See the devices section in usage(8) on MINIX device names.)\n') (':')
                        )
                      }
                    )
                    (C {(read)} {(ret)})
                    (WhileUntil
                      keyword: <KW_While while>
                      cond: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$primary'))} {(Lit_Other ']')})
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (AndOr
                              ops: [Op_DPipe]
                              children: [(C {(part)}) (ControlFlow token:<ControlFlow_Exit exit>)]
                            )
                            (C {(echo)} {(-n)} 
                              {
                                (DQ ('\n') 
                                  (
'Please finish the name of the primary partition you have created:\n'
                                  ) ('(Just type ENTER if you want to rerun ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (part) 
                                  (EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\"'>
                                  ) (')                   /dev/')
                                )
                              }
                            )
                            (C {(read)} {(primary)})
                          ]
                          spids: [1159 1190]
                        )
                    )
                    (C {(echo)} {(DQ )})
                    (C {(echo)} 
                      {(DQ ('This is the point of no return.  You have selected to install MINIX'))}
                    )
                    (C {(echo)} 
                      {
                        (DQ ('on partition /dev/') ($ VSub_Name '$primary') 
                          ('.  Please confirm that you want to use this')
                        )
                      }
                    )
                    (C {(echo)} {(DQ ('selection to install MINIX.'))})
                    (C {(echo)} {(DQ )})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:confirmation)
                          op: Equal
                          rhs: {(DQ )}
                          spids: [1228]
                        )
                      ]
                      spids: [1228]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-b)} 
                              {(DQ (/dev/) ($ VSub_Name '$primary'))} {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {(DQ (/dev/) ($ VSub_Name '$primary') (' is not a block device.'))}
                            )
                          ]
                          spids: [16777215 1250]
                        )
                      ]
                      spids: [16777215 1261]
                    )
                    (WhileUntil
                      keyword: <KW_While while>
                      cond: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$confirmation'))} {(-o)} 
                          {(DQ ($ VSub_Name '$confirmation'))} {(KW_Bang '!') (Lit_Other '=')} {(yes)} {(-a)} {(DQ ($ VSub_Name '$confirmation'))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(no)} {(Lit_Other ']')}
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (C {(echo)} {(-n)} 
                              {
                                (DQ 
                                  (
"Are you sure you want to continue? Please enter 'yes' or 'no': "
                                  )
                                )
                              }
                            )
                            (C {(read)} {(confirmation)})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$confirmation'))} 
                                          {(Lit_Other '=')} {(yes)} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:step3)
                                              op: Equal
                                              rhs: {(ok)}
                                              spids: [1334]
                                            )
                                          ]
                                          spids: [1334]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [16777215 1332]
                                )
                              ]
                              spids: [16777215 1338]
                            )
                          ]
                          spids: [1300 1341]
                        )
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:biosdrivename)
                          op: Equal
                          rhs: {(DQ ('Actual BIOS device name unknown, due to expert mode.'))}
                          spids: [1344]
                        )
                      ]
                      spids: [1344]
                    )
                  ]
                  spids: [16777215 1104]
                )
              ]
              else_action: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$auto'))} {(Lit_Other '=')} {(DQ (1))} 
                          {(Lit_Other ']')}
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:PF)
                              op: Equal
                              rhs: {(DQ (/tmp/pf))}
                              spids: [1377]
                            )
                          ]
                          spids: [1377]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(autopart)} {(-m) ($ VSub_Name '$TOTALMB')} 
                                  {(-f) ($ VSub_Name '$PF')}
                                )
                              ]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (C {(Lit_Other '[')} {(-s)} {(DQ ($ VSub_Name '$PF'))} 
                                          {(Lit_Other ']')}
                                        )
                                      ]
                                      action: [
                                        (C {(set)} 
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [(C {(cat)} {($ VSub_Name '$PF')})]
                                                )
                                              left_token: <Left_Backtick '`'>
                                              spids: [1414 1418]
                                            )
                                          }
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:bd)
                                              op: Equal
                                              rhs: {(DQ ($ VSub_Number '$1'))}
                                              spids: [1421]
                                            )
                                          ]
                                          spids: [1421]
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:bdn)
                                              op: Equal
                                              rhs: {(DQ ($ VSub_Number '$2'))}
                                              spids: [1427]
                                            )
                                          ]
                                          spids: [1427]
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:biosdrivename)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ ('Probably, the right command is ') 
                                                    (EscapedLiteralPart
                                                      token: <Lit_EscapedChar '\\"'>
                                                    ) ('boot ') ($ VSub_Name '$bdn') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (.)
                                                  )
                                                }
                                              spids: [1433]
                                            )
                                          ]
                                          spids: [1433]
                                        )
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (C {(Lit_Other '[')} {(-b)} 
                                                  {(DQ (/dev/) ($ VSub_Name '$bd'))} {(Lit_Other ']')}
                                                )
                                              ]
                                              action: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:primary)
                                                      op: Equal
                                                      rhs: {(DQ ($ VSub_Name '$bd'))}
                                                      spids: [1460]
                                                    )
                                                  ]
                                                  spids: [1460]
                                                )
                                              ]
                                              spids: [16777215 1458]
                                            )
                                          ]
                                          else_action: [
                                            (C {(echo)} 
                                              {
                                                (DQ ('Funny device ') ($ VSub_Name '$bd') 
                                                  (' from autopart.')
                                                )
                                              }
                                            )
                                          ]
                                          spids: [1466 1477]
                                        )
                                      ]
                                      spids: [16777215 1409]
                                    )
                                  ]
                                  else_action: [
                                    (C {(echo)} {(DQ ("Didn't find output from autopart."))})
                                  ]
                                  spids: [1480 1490]
                                )
                              ]
                              spids: [16777215 1394]
                            )
                          ]
                          else_action: [(C {(echo)} {(DQ ('Autopart tool failed. Trying again.'))})]
                          spids: [1494 1503]
                        )
                        (C {(atnormalize)})
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$primary'))} 
                                      {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Sentence
                                  child: 
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:step3)
                                          op: Equal
                                          rhs: {(ok)}
                                          spids: [1534]
                                        )
                                      ]
                                      spids: [1534]
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              spids: [16777215 1532]
                            )
                          ]
                          spids: [16777215 1538]
                        )
                      ]
                      spids: [16777215 1370]
                    )
                  ]
                  spids: [16777215 1541]
                )
              ]
              spids: [1350 1544]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-b)} {(DQ (/dev/) ($ VSub_Name '$primary'))} 
                      {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (C {(echo)} {(Doing)} {(step)} {(3)} {(again.)})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:step3)
                          op: Equal
                          rhs: {(DQ )}
                          spids: [1577]
                        )
                      ]
                      spids: [1577]
                    )
                  ]
                  spids: [16777215 1564]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:devsize)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [(C {(devsize)} {(/dev/) ($ VSub_Name '$primary')})]
                                )
                              left_token: <Left_Backtick '`'>
                              spids: [1587 1592]
                            )
                          )
                        }
                      spids: [1585]
                    )
                  ]
                  spids: [1585]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$devsize'))} {(-lt)} {(1)} 
                          {(Lit_Other ']')}
                        )
                      ]
                      action: [
                        (C {(echo)} {(DQ (/dev/) ($ VSub_Name '$primary') (' is a 0-sized device.'))})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:step3)
                              op: Equal
                              rhs: {(DQ )}
                              spids: [1623]
                            )
                          ]
                          spids: [1623]
                        )
                      ]
                      spids: [16777215 1612]
                    )
                  ]
                  spids: [16777215 1628]
                )
              ]
              spids: [1582 1631]
            )
          ]
          spids: [855 1633]
        )
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:root)
          op: Equal
          rhs: {(${ VSub_Name primary) (s0)}
          spids: [1642]
        )
      ]
      spids: [1642]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:home)
          op: Equal
          rhs: {(${ VSub_Name primary) (s1)}
          spids: [1648]
        )
      ]
      spids: [1648]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:usr)
          op: Equal
          rhs: {(${ VSub_Name primary) (s2)}
          spids: [1654]
        )
      ]
      spids: [1654]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(umount)} {(/dev/) ($ VSub_Name '$root')}]
          redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
        )
        (C {(echo)} {(DQ ('Unmounted ') ($ VSub_Name '$root') (' for you.'))})
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(umount)} {(/dev/) ($ VSub_Name '$home')}]
          redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
        )
        (C {(echo)} {(DQ ('Unmounted ') ($ VSub_Name '$home') (' for you.'))})
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(umount)} {(/dev/) ($ VSub_Name '$usr')}]
          redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
        )
        (C {(echo)} {(DQ ('Unmounted ') ($ VSub_Name '$usr') (' for you.'))})
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:devsizemb)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(expr)} {($ VSub_Name '$devsize')} {(/)} {(1024)} {(/)} {(2)})]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [1717 1729]
                )
              )
            }
          spids: [1715]
        )
      ]
      spids: [1715]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:maxhome)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (C {(expr)} {($ VSub_Name '$devsizemb')} {(-)} {($ VSub_Name '$TOTALMB')} {(-)} 
                          {(1)}
                        )
                      ]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [1734 1746]
                )
              )
            }
          spids: [1732]
        )
      ]
      spids: [1732]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$devsizemb'))} {(-lt)} {(DQ ($ VSub_Name '$TOTALMB'))} 
              {(Lit_Other ']')}
            )
          ]
          action: [
            (C {(echo)} 
              {(DQ ('The selected partition (') ($ VSub_Name '$devsizemb') (' MB) is too small.'))}
            )
            (C {(echo)} {(DQ ("You'll need ") ($ VSub_Name '$TOTALMB') (' MB at least.'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 1766]
        )
      ]
      spids: [16777215 1790]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other '[')} {(DQ ($ VSub_Name '$maxhome'))} {(-lt)} {(1)} {(Lit_Other ']')})]
          action: [
            (C {(echo)} {(DQ ("Note: you can't have /home with that size partition."))})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:maxhome) op:Equal rhs:{(0)} spids:[1816])]
              spids: [1816]
            )
          ]
          spids: [16777215 1807]
        )
      ]
      spids: [16777215 1819]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:TMPMP) op:Equal rhs:{(/m)} spids:[1822])]
      spids: [1822]
    )
    (SimpleCommand
      words: [{(mkdir)} {($ VSub_Name '$TMPMP')}]
      redirects: [
        (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
        (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:confirm) op:Equal rhs:{(DQ )} spids:[1836])]
      spids: [1836]
    )
    (WhileUntil
      keyword: <KW_While while>
      cond: [
        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$confirm'))} {(Lit_Other '=')} {(DQ )} {(Lit_Other ']')})
      ]
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:auto) op:Equal rhs:{(DQ )} spids:[1859])]
              spids: [1859]
            )
            (C {(echo)} {(DQ )})
            (C {(echo)} 
              {(DQ (' --- Step 4: Reinstall choice ------------------------------------------'))}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (SimpleCommand
                      words: [{(mount)} {(-r)} {(/dev/) ($ VSub_Name '$home')} {($ VSub_Name '$TMPMP')}]
                      redirects: [
                        (Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(/dev/null)}
                        )
                        (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
                      ]
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(umount)} {(/dev/) ($ VSub_Name '$home')}]
                      redirects: [
                        (Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(/dev/null)}
                        )
                        (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
                      ]
                    )
                    (C {(echo)} {(DQ )})
                    (C {(echo)} {(DQ ('You have selected an existing MINIX 3 partition.'))})
                    (C {(echo)} {(DQ ('Type F for full installation (to overwrite entire partition)'))})
                    (C {(echo)} 
                      {(DQ ('Type R for a reinstallation (existing /home will not be affected)'))}
                    )
                    (C {(echo)} {(DQ )})
                    (C {(echo)} {(-n)} {(DQ ('(F)ull or (R)einstall? [R] '))})
                    (C {(read)} {(conf)})
                    (Case
                      to_match: {(DQ ($ VSub_Name '$conf'))}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ )}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:confirm)
                                      op: Equal
                                      rhs: {(DQ (ok))}
                                      spids: [1968]
                                    )
                                  ]
                                  spids: [1968]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:auto)
                                      op: Equal
                                      rhs: {(DQ (r))}
                                      spids: [1974]
                                    )
                                  ]
                                  spids: [1974]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [1964 1966 1980 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '[') (Rr) (Lit_Other ']') (Lit_Other '*')}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:confirm)
                                      op: Equal
                                      rhs: {(DQ (ok))}
                                      spids: [1989]
                                    )
                                  ]
                                  spids: [1989]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:auto)
                                      op: Equal
                                      rhs: {(DQ (r))}
                                      spids: [1995]
                                    )
                                  ]
                                  spids: [1995]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [1983 1987 2001 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '[') (Ff) (Lit_Other ']') (Lit_Other '*')}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:confirm)
                                      op: Equal
                                      rhs: {(DQ (ok))}
                                      spids: [2010]
                                    )
                                  ]
                                  spids: [2010]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:auto)
                                  op: Equal
                                  rhs: {(DQ )}
                                  spids: [2016]
                                )
                              ]
                              spids: [2016]
                            )
                          ]
                          spids: [2004 2008 2020 16777215]
                        )
                      ]
                      spids: [1955 1961 2023]
                    )
                  ]
                  spids: [16777215 1894]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ )})
                (C {(echo)} {(DQ ('No old /home found. Doing full install.'))})
                (C {(echo)} {(DQ )})
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:confirm)
                          op: Equal
                          rhs: {(DQ (ok))}
                          spids: [2048]
                        )
                      ]
                      spids: [2048]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              spids: [2027 2055]
            )
          ]
          spids: [1856 2058]
        )
    )
    (C {(rmdir)} {($ VSub_Name '$TMPMP')})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:nohome) op:Equal rhs:{(DQ (0))} spids:[2066])]
      spids: [2066]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:homesize) op:Equal rhs:{(DQ )} spids:[2072])]
      spids: [2072]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$auto'))} {(Lit_Other '=')} {(r)} 
              {(Lit_Other ']')}
            )
          ]
          action: [
            (C {(echo)} {(DQ )})
            (C {(echo)} 
              {(DQ (' --- Step 5: Select the size of /home ----------------------------------'))}
            )
            (WhileUntil
              keyword: <KW_While while>
              cond: [(C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$homesize'))} {(Lit_Other ']')})]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:defmb)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [(C {(expr)} {($ VSub_Name '$maxhome')} {(/)} {(5)})]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [2134 2142]
                                )
                              )
                            }
                          spids: [2132]
                        )
                      ]
                      spids: [2132]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$defmb'))} {(-gt)} 
                              {(DQ ($ VSub_Name '$maxhome'))} {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:defmb)
                                  op: Equal
                                  rhs: {($ VSub_Name '$maxhome')}
                                  spids: [2166]
                                )
                              ]
                              spids: [2166]
                            )
                          ]
                          spids: [16777215 2163]
                        )
                      ]
                      spids: [16777215 2170]
                    )
                    (C {(echo)} {(DQ )})
                    (C {(echo)} 
                      {(DQ ('MINIX will take up ') ($ VSub_Name '$TOTALMB') (' MB, without /home.'))}
                    )
                    (C {(echo)} {(-n)} 
                      {
                        (DQ ('How big do you want your /home to be in MB (0-') 
                          ($ VSub_Name '$maxhome') (') ? [') ($ VSub_Name '$defmb') ('] ')
                        )
                      }
                    )
                    (C {(read)} {(homesize)})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$homesize'))} {(Lit_Other '=')} {(DQ )} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:homesize)
                                      op: Equal
                                      rhs: {($ VSub_Name '$defmb')}
                                      spids: [2226]
                                    )
                                  ]
                                  spids: [2226]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [16777215 2224]
                        )
                      ]
                      spids: [16777215 2230]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$homesize'))} {(-lt)} {(1)} 
                              {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:nohome)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [2250]
                                )
                              ]
                              spids: [2250]
                            )
                            (C {(echo)} {(DQ ('Ok, not making a /home.'))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:homesize)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [2261]
                                )
                              ]
                              spids: [2261]
                            )
                          ]
                          spids: [16777215 2248]
                        )
                      ]
                      else_action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$homesize'))} {(-gt)} 
                                  {(DQ ($ VSub_Name '$maxhome'))} {(Lit_Other ']')}
                                )
                              ]
                              action: [
                                (C {(echo)} {(DQ ("That won't fit!"))})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:homesize)
                                      op: Equal
                                      rhs: {(DQ )}
                                      spids: [2294]
                                    )
                                  ]
                                  spids: [2294]
                                )
                              ]
                              spids: [16777215 2285]
                            )
                          ]
                          else_action: [
                            (C {(echo)} {(DQ )})
                            (C {(echo)} {(-n)} {(DQ ($ VSub_Name '$homesize') (' MB Ok? [Y] '))})
                            (C {(read)} {(ok)})
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ok'))} {(Lit_Other '=')} {(Y)} 
                                  {(-o)} {(DQ ($ VSub_Name '$ok'))} {(Lit_Other '=')} {(y)} {(-o)} {(DQ ($ VSub_Name '$ok'))} {(Lit_Other '=')} {(DQ )} 
                                  {(Lit_Other ']')}
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:homesize)
                                      op: Equal
                                      rhs: {(DQ )}
                                      spids: [2358]
                                    )
                                  ]
                                  spids: [2358]
                                )
                              ]
                            )
                          ]
                          spids: [2299 2363]
                        )
                      ]
                      spids: [2265 2366]
                    )
                    (C {(echo)} {(DQ )})
                  ]
                  spids: [2120 2375]
                )
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:homemb)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$homesize') (' MB'))}
                  spids: [2382]
                )
              ]
              spids: [2382]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:homesize)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(expr)} {($ VSub_Name '$homesize')} {(SQ <'*'>)} {(1024)} {(SQ <'*'>)} 
                                  {(2)}
                                )
                              ]
                            )
                          left_token: <Left_Backtick '`'>
                          spids: [2391 2407]
                        )
                      )
                    }
                  spids: [2389]
                )
              ]
              spids: [2389]
            )
          ]
          spids: [16777215 2092]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:homepart)
              op: Equal
              rhs: 
                {
                  (DQ 
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(devsize)} {(/dev/) ($ VSub_Name '$home')})]
                        )
                      left_token: <Left_Backtick '`'>
                      spids: [2415 2420]
                    )
                  )
                }
              spids: [2413]
            )
          ]
          spids: [2413]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:homesize)
              op: Equal
              rhs: 
                {
                  (DQ 
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [
                            (C {(expr)} {($ VSub_Name '$homepart')} {(/)} {(2)} {(/)} {(1024)})
                          ]
                        )
                      left_token: <Left_Backtick '`'>
                      spids: [2426 2438]
                    )
                  )
                }
              spids: [2424]
            )
          ]
          spids: [2424]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$homesize'))} {(-gt)} 
                  {(DQ ($ VSub_Name '$maxhome'))} {(Lit_Other ']')}
                )
              ]
              action: [
                (C {(echo)} 
                  {
                    (DQ ('Sorry, but your /home is too big (') ($ VSub_Name '$homesize') 
                      (' MB) to leave enough')
                    )
                  }
                )
                (C {(echo)} 
                  {
                    (DQ ('space on the rest of the partition (') ($ VSub_Name '$devsizemb') 
                      (' MB) for your')
                    )
                  }
                )
                (C {(echo)} {(DQ ('selected installation size (') ($ VSub_Name '$TOTALMB') (' MB).'))})
                (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
              ]
              spids: [16777215 2459]
            )
          ]
          spids: [16777215 2494]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:homesize) op:Equal rhs:{(exist)} spids:[2501])]
          spids: [2501]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:homemb)
              op: Equal
              rhs: {(DQ ('current size'))}
              spids: [2505]
            )
          ]
          spids: [2505]
        )
      ]
      spids: [2410 2510]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:minblocksize) op:Equal rhs:{(1)} spids:[2513])]
      spids: [2513]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:maxblocksize) op:Equal rhs:{(64)} spids:[2516])]
      spids: [2516]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:blockdefault) op:Equal rhs:{(4)} spids:[2519])]
      spids: [2519]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$auto'))} {(Lit_Other '=')} {(DQ (r))} 
              {(Lit_Other ']')}
            )
          ]
          action: [
            (C {(echo)} {(DQ )})
            (C {(echo)} 
              {(DQ (' --- Step 6: Select a block size ---------------------------------------'))}
            )
            (C {(echo)} {(DQ )})
            (C {(echo)} 
              {
                (DQ ('The default file system block size is ') ($ VSub_Name '$blockdefault') (' kB.'))
              }
            )
            (C {(echo)} {(DQ )})
            (WhileUntil
              keyword: <KW_While while>
              cond: [(C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$blocksize'))} {(Lit_Other ']')})]
              body: 
                (DoGroup
                  children: [
                    (Sentence
                      child: 
                        (C {(echo)} {(-n)} 
                          {(DQ ('Block size in kilobytes? [') ($ VSub_Name '$blockdefault') ('] '))}
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(read)} {(blocksize)})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(-z)} {(DQ ($ VSub_Name '$blocksize'))})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:blocksize)
                              op: Equal
                              rhs: {($ VSub_Name '$blockdefault')}
                              spids: [2624]
                            )
                          ]
                          spids: [2624]
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$blocksize'))} {(-lt)} 
                              {($ VSub_Name '$minblocksize')} {(-o)} {(DQ ($ VSub_Name '$blocksize'))} {(-gt)} {($ VSub_Name '$maxblocksize')} {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (C {(warn)} 
                              {
                                (DQ ('At least ') ($ VSub_Name '$minblocksize') (' kB and at most ') 
                                  ($ VSub_Name '$maxblocksize') (' kB please.')
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:blocksize)
                                  op: Equal
                                  rhs: {(DQ )}
                                  spids: [2668]
                                )
                              ]
                              spids: [2668]
                            )
                          ]
                          spids: [16777215 2653]
                        )
                      ]
                      spids: [16777215 2673]
                    )
                  ]
                  spids: [2594 2676]
                )
            )
          ]
          spids: [16777215 2541]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:blocksize)
              op: Equal
              rhs: {($ VSub_Name '$blockdefault')}
              spids: [2681]
            )
          ]
          spids: [2681]
        )
      ]
      spids: [2678 2684]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:blocksizebytes)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(expr)} {($ VSub_Name '$blocksize')} {(SQ <'*'>)} {(1024)})]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [2689 2699]
                )
              )
            }
          spids: [2687]
        )
      ]
      spids: [2687]
    )
    (C {(echo)} 
      {
        (DQ ('\n') ('You have selected to (re)install MINIX 3 in the partition /dev/') 
          ($ VSub_Name '$primary') ('.\n') ('The following subpartitions are now being created on /dev/') ($ VSub_Name '$primary') (':\n') 
          ('\n') ('    Root subpartition:\t/dev/') ($ VSub_Name '$root') ('\t') ($ VSub_Name '$ROOTMB') (' MB\n') 
          ('    /home subpartition:\t/dev/') ($ VSub_Name '$home') ('\t') ($ VSub_Name '$homemb') ('\n') ('    /usr subpartition:\t/dev/') 
          ($ VSub_Name '$usr') ('\trest of ') ($ VSub_Name '$primary') ('\n')
        )
      }
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(installboot)} {(-m)} {(/dev/) ($ VSub_Name '$primary')} {(/usr/mdec/masterboot)}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [
            {(partition)}
            {(/dev/) ($ VSub_Name '$primary')}
            {(1)}
            {(81) (Lit_Other ':') (${ VSub_Name ROOTSECTS) (Lit_Other '*')}
            {(81) (Lit_Other ':') ($ VSub_Name '$homesize')}
            {(81) (Lit_Other ':') (0) (Lit_Other '+')}
          ]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (C {(echo)} {(DQ ('Creating /dev/') ($ VSub_Name '$root') (' for / ..'))})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(mkfs)} {(/dev/) ($ VSub_Name '$root')})
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$nohome'))} {(Lit_Other '=')} {(0)} {(Lit_Other ']')})
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$auto'))} {(Lit_Other '=')} 
                      {(r)} {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('Creating /dev/') ($ VSub_Name '$home') (' for /home ..'))})
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(mkfs)} {(-B)} {($ VSub_Name '$blocksizebytes')} 
                          {(/dev/) ($ VSub_Name '$home')}
                        )
                        (ControlFlow token:<ControlFlow_Exit exit>)
                      ]
                    )
                  ]
                  spids: [16777215 2839]
                )
              ]
              spids: [16777215 2864]
            )
          ]
          spids: [16777215 2819]
        )
      ]
      else_action: [(C {(echo)} {(DQ ('Skipping /home'))})]
      spids: [2866 2874]
    )
    (C {(echo)} {(DQ ('Creating /dev/') ($ VSub_Name '$usr') (' for /usr ..'))})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(mkfs)} {(-B)} {($ VSub_Name '$blocksizebytes')} {(/dev/) ($ VSub_Name '$usr')})
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$nohome'))} {(Lit_Other '=')} {(0)} {(Lit_Other ']')})
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fshome)
                  op: Equal
                  rhs: {(DQ ('home=/dev/') ($ VSub_Name '$home'))}
                  spids: [2916]
                )
              ]
              spids: [2916]
            )
          ]
          spids: [16777215 2913]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fshome) op:Equal rhs:{(DQ )} spids:[2924])]
          spids: [2924]
        )
      ]
      spids: [2922 2928]
    )
    (C {(echo)} {(DQ )})
    (C {(echo)} {(DQ (' --- Step 7: Wait for files to be copied -------------------------------'))})
    (C {(echo)} {(DQ )})
    (C {(echo)} {(DQ ('All files will now be copied to your hard disk. This may take a while.'))})
    (C {(echo)} {(DQ )})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(mount)} {(/dev/) ($ VSub_Name '$usr')} {(/mnt)}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (Subshell
              child: 
                (CommandList
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(cd)} {(/usr)})
                        (ControlFlow
                          token: <ControlFlow_Exit exit>
                          arg_word: {(1)}
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:list)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [(C {(ls)}) (C {(fgrep)} {(-v)} {(install)})]
                                          negated: F
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [2991 3001]
                                )
                              )
                            }
                          spids: [2989]
                        )
                      ]
                      spids: [2989]
                    )
                    (ForEach
                      iter_name: d
                      iter_words: [{($ VSub_Name '$list')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (C {(cpdir)} {(-v)} {($ VSub_Name '$d')} {(/mnt/) ($ VSub_Name '$d')})
                          ]
                          spids: [3014 3028]
                        )
                      spids: [3010 16777215]
                    )
                  ]
                )
              spids: [2977 3030]
            )
            (C {(progressbar)} {(DQ ($ VSub_Name '$USRFILES'))})
          ]
          negated: F
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(umount)} {(/dev/) ($ VSub_Name '$usr')}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(mount)} {(/dev/) ($ VSub_Name '$root')} {(/mnt)}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (C {(cpdir)} {(-vx)} {(/)} {(/mnt)})
            (C {(progressbar)} {(DQ ($ VSub_Name '$ROOTFILES'))})
          ]
          negated: F
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (C {(cp)} {(/mnt/etc/motd.install)} {(/mnt/etc/motd)})
    (C {(rm)} {(/mnt/var/log)})
    (C {(ln)} {(-s)} {(/usr/log)} {(/mnt/var/log)})
    (SimpleCommand
      words: [{(rm)} {(/mnt/etc/issue)} {(/mnt/CD)} {(/mnt/.) (Lit_Other '*')}]
      redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ("# Poor man's File System Table.\n") ('\n') ('root=/dev/') ($ VSub_Name '$root') ('\n') 
            ('usr=/dev/') ($ VSub_Name '$usr') ('\n') ($ VSub_Name '$fshome')
          )
        }
      ]
      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/mnt/etc/fstab)})]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(-n)} {(DQ ($ VSub_Name '$keymap'))})
        (C {(cp)} {(-p)} {(DQ (/usr/lib/keymaps/) ($ VSub_Name '$keymap') (.map))} {(/mnt/etc/keymap)})
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(umount)} {(/dev/) ($ VSub_Name '$root')}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(mount)} {(/dev/) ($ VSub_Name '$usr')} {(/mnt)}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [
            {(installboot)}
            {(-d)}
            {(/dev/) ($ VSub_Name '$root')}
            {(/usr/mdec/bootblock)}
            {(/boot/boot)}
          ]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(edparams)} {(/dev/) ($ VSub_Name '$root')} 
          {
            (DQ ('rootdev=') ($ VSub_Name '$root') ('; ramimagedev=') ($ VSub_Name '$root') 
              (
'; minix(1,Start MINIX 3) { image=/boot/image_big; boot; }; newminix(2,Start Custom MINIX 3) { unset image; boot }; main() { echo By default, MINIX 3 will automatically load in 3 seconds.; echo Press ESC to enter the monitor for special configuration.; trap 3000 boot; menu; }; save'
              )
            )
          }
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pfile)
          op: Equal
          rhs: {(DQ (/mnt/src/tools/fdbootparams))}
          spids: [3255]
        )
      ]
      spids: [3255]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {(DQ ('rootdev=') ($ VSub_Name '$root') ('; ramimagedev=') ($ VSub_Name '$root') ('; save'))}
      ]
      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$pfile')})]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:cddrive)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(mount)})
                            (C {(grep)} {(usr)})
                            (C {(awk)} {(SQ <'{ print $1 }'>)})
                            (C {(sed)} {(SQ <'s/p.*//'>)})
                          ]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [3278 3302]
                )
              )
            }
          spids: [3276]
        )
      ]
      spids: [3276]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('cddrive=') ($ VSub_Name '$cddrive'))}]
      redirects: [(Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(/mnt/etc/rc.package)})]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:bios)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Name '$primary')})
                            (C {(sed)} {(-e)} {(SQ <s/d./dX/g>)} {(-e)} {(SQ <s/c.//g>)})
                          ]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [3319 3339]
                )
              )
            }
          spids: [3317]
        )
      ]
      spids: [3317]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$auto'))} {(Lit_Other '=')} {(DQ (r))} 
              {(Lit_Other ']')}
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (SimpleCommand
                      words: [{(mount)} {(/dev/) ($ VSub_Name '$home')} {(/home)}]
                      redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                    )
                  ]
                  action: [
                    (ForEach
                      iter_name: u
                      iter_words: [{(bin)} {(ast)}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:h)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(eval)} {(echo)} {(DQ ('~') ($ VSub_Name '$u'))})
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [3392 3401]
                                      )
                                    }
                                  spids: [3391]
                                )
                              ]
                              spids: [3391]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [(C {(mkdir)} {($ VSub_Name '$h')})]
                                  action: [
                                    (C {(echo)} 
                                      {
                                        (DQ (' * Creating home directory for ') ($ VSub_Name '$u') 
                                          (' in ') ($ VSub_Name '$h')
                                        )
                                      }
                                    )
                                    (C {(cpdir)} {(/usr/ast)} {($ VSub_Name '$h')})
                                    (C {(chown)} {(-R)} {($ VSub_Name '$u') (Lit_Other ':') (operator)} 
                                      {($ VSub_Name '$h')}
                                    )
                                  ]
                                  spids: [16777215 3411]
                                )
                              ]
                              else_action: [
                                (C {(echo)} {(DQ (" * Couldn't create ") ($ VSub_Name '$h'))})
                              ]
                              spids: [3441 3451]
                            )
                          ]
                          spids: [3389 3454]
                        )
                      spids: [3383 16777215]
                    )
                    (C {(umount)} {(/dev/) ($ VSub_Name '$home')})
                  ]
                  spids: [16777215 3376]
                )
              ]
              spids: [16777215 3463]
            )
          ]
          spids: [16777215 3361]
        )
      ]
      spids: [16777215 3465]
    )
    (C {(echo)} {(DQ ('Saving random data..'))})
    (C {(dd)} {(Lit_VarLike 'if=') (/dev/random)} {(Lit_VarLike 'of=') (/mnt/adm/random.dat)} 
      {(Lit_VarLike 'bs=') (1024)} {(Lit_VarLike 'count=') (1)}
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(umount)} {(/dev/) ($ VSub_Name '$usr')}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (C {(echo)} {(DQ )})
    (C {(echo)} {(DQ (' --- Step 8: Select your Ethernet chip ---------------------------------'))})
    (C {(echo)} {(DQ )})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(mount)} {(/dev/) ($ VSub_Name '$root')} {(/mnt)}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(mount)} {(/dev/) ($ VSub_Name '$usr')} {(/mnt/usr)}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(/bin/netconf)} {(-p)} {(/mnt)})
        (C {(echo)} {(FAILED)} {(TO)} {(CONFIGURE)} {(NETWORK)})
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(umount)} {(/dev/) ($ VSub_Name '$usr')})
        (C {(echo)} {(Unmounted)} {($ VSub_Name '$usr')})
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(umount)} {(/dev/) ($ VSub_Name '$root')})
        (C {(echo)} {(Unmounted)} {($ VSub_Name '$root')})
      ]
    )
    (C {(echo)} 
      {
        (DQ ('\n') ("Please type 'shutdown' to exit MINIX 3 and enter the boot monitor. At\n") 
          ("the boot monitor prompt, type 'boot ") ($ VSub_Name '$bios') ("', where X is the bios drive\n") 
          ('number of the drive you installed on, to try your new MINIX system.\n') ($ VSub_Name '$biosdrivename') ('\n') ('\n') 
          ('This ends the MINIX 3 setup script.  After booting your newly set up system,\n') ('you can run the test suites as indicated in the setup manual.  You also \n') 
          ('may want to take care of local configuration, such as securing your system\n') ('with a password.  Please consult the usage manual for more information. \n') ('\n')
        )
      }
    )
  ]
)