(BraceGroup
  left: <Id.Lit_LBrace '{'>
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LANG='> name:LANG)
          op: assign_op.Equal
          rhs: {<en_GB.UTF-8>}
          spids: [91]
        )
      ]
      redirects: []
    )
    (C {<cd>} {(DQ ($ Id.VSub_DollarName HOME))})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_PROGRAM_NAME='> name:G_PROGRAM_NAME)
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [120]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-z>} {($ Id.VSub_DollarName G_USER_INPUTS)} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_USER_INPUTS='> name:G_USER_INPUTS)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [157]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: (bool_expr.Unary op_id:Id.BoolUnary_t child:{<0>})
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'G_USER_INPUTS='>
                              name: G_USER_INPUTS
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [203]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [162 173]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          spids: [142 153]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<alias>} {<Id.Lit_VarLike 'sudo='> (SQ <'sudo '>)})
    (C {<alias>} {<dietpi-process_tool> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-process_tool'>)})
    (C {<alias>} {<dietpi-letsencrypt> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-letsencrypt'>)})
    (C {<alias>} {<dietpi-autostart> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-autostart'>)})
    (C {<alias>} {<dietpi-cron> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-cron'>)})
    (C {<alias>} {<dietpi-launcher> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-launcher'>)})
    (C {<alias>} {<dietpi-cleaner> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-cleaner'>)})
    (C {<alias>} {<dietpi-morsecode> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-morsecode'>)})
    (C {<alias>} {<dietpi-sync> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-sync'>)})
    (C {<alias>} {<dietpi-backup> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-backup'>)})
    (C {<alias>} {<dietpi-bugreport> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-bugreport'>)})
    (C {<alias>} {<dietpi-services> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-services'>)})
    (C {<alias>} {<dietpi-config> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-config'>)})
    (C {<alias>} {<dietpi-software> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-software'>)})
    (C {<alias>} {<dietpi-update> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-update'>)})
    (C {<alias>} 
      {<dietpi-drive_manager> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-drive_manager'>)}
    )
    (C {<alias>} 
      {<Id.Lit_VarLike 'emulationstation='> 
        (SQ <'/opt/retropie/supplementary/emulationstation/emulationstation'>)
      }
    )
    (C {<alias>} {<Id.Lit_VarLike 'cpu='> (SQ <'/DietPi/dietpi/dietpi-cpuinfo'>)})
    (C {<alias>} {<dietpi-logclear> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-logclear'>)})
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} {<'/usr/local/games/opentyrian/run'>} {<Id.Lit_RBracket ']'>})
        (C {<alias>} {<Id.Lit_VarLike 'opentyrian='> (SQ <'/usr/local/games/opentyrian/run'>)})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} {<'/DietPi/dietpi/misc/dietpi-justboom'>} 
          {<Id.Lit_RBracket ']'>}
        )
        (C {<alias>} 
          {<dietpi-justboom> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/misc/dietpi-justboom'>)}
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} 
          {(DQ ($ Id.VSub_DollarName G_FP_DIETPI_USERDATA)) <'/dxx-rebirth/run.sh'>} {<Id.Lit_RBracket ']'>}
        )
        (C {<alias>} 
          {<dxx-rebirth> <Id.Lit_Equals '='> 
            (DQ ($ Id.VSub_DollarName G_FP_DIETPI_USERDATA) <'/dxx-rebirth/run.sh'>)
          }
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} {<'/usr/share/applications/kodi.desktop'>} 
          {<Id.Lit_RBracket ']'>}
        )
        (C {<alias>} {<Id.Lit_VarLike 'startkodi='> (SQ <'/DietPi/dietpi/misc/start_kodi'>)})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/systemd/system/dietpi-cloudshell.service'>} 
          {<Id.Lit_RBracket ']'>}
        )
        (C {<alias>} {<dietpi-cloudshell> <Id.Lit_Equals '='> (SQ <'/DietPi/dietpi/dietpi-cloudshell'>)})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} {<'/var/www/owncloud/occ'>} {<Id.Lit_RBracket ']'>})
        (command.ShFunction
          name: occ
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Sentence
                  child: 
                    (C {<sudo>} {<-u>} {<www-data>} {<php>} {<'/var/www/owncloud/occ'>} 
                      {(DQ ($ Id.VSub_At '@'))}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} {<'/var/www/nextcloud/occ'>} {<Id.Lit_RBracket ']'>})
        (command.ShFunction
          name: ncc
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Sentence
                  child: 
                    (C {<sudo>} {<-u>} {<www-data>} {<php>} {<'/var/www/nextcloud/occ'>} 
                      {(DQ ($ Id.VSub_At '@'))}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
    )
    (command.ShFunction
      name: G_TREESIZE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (C {<du>} {<-k>} {<--max-depth> <Id.Lit_Equals '='> <1>} {($ Id.VSub_Number 1)})
                (C {<sort>} {<-nr>})
                (C {<awk>} 
                  {
                    (SQ <'\n'> <'\t\tBEGIN {\n'> <'\t\t\tsplit("KB,MB,GB,TB", Units, ",");\n'> 
                      <'\t\t}\n'> <'\t\t{\n'> <'\t\t\tu = 1;\n'> <'\t\t\twhile ($1 >= 1024)\n'> <'\t\t\t{\n'> <'\t\t\t\t$1 = $1 / 1024;\n'> 
                      <'\t\t\t\tu += 1;\n'> <'\t\t\t}\n'> <'\t\t\t$1 = sprintf("%.1f %s", $1, Units[u]);\n'> <'\t\t\tprint $0;\n'> <'\t\t}\n'> 
                      <'\t\t'>
                    )
                  }
                )
              ]
              negated: F
              stderr_indices: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_DIETPI-NOTIFY
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'ainput_string='> 
                (sh_array_literal
                  left: <Id.Op_LParen _>
                  words: [{(DQ ($ Id.VSub_At '@'))}]
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'header_line='> 
                (DQ <Id.Lit_BadBackslash '\\'> 
                  <
'e[90m─────────────────────────────────────────────────────'
                  > <Id.Lit_BadBackslash '\\'> <'e[0m'>
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'status_text_ok='> 
                (DQ <Id.Lit_BadBackslash '\\'> <'e[32m  OK  '> <Id.Lit_BadBackslash '\\'> <'e[0m'>)
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'status_text_error='> 
                (DQ <Id.Lit_BadBackslash '\\'> <'e[31mFAILED'> <Id.Lit_BadBackslash '\\'> <'e[0m'>)
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'status_text_info='> 
                (DQ <Id.Lit_BadBackslash '\\'> <'e[0m INFO '> <Id.Lit_BadBackslash '\\'> <'e[0m'>)
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'bracket_string_l='> 
                (DQ <Id.Lit_BadBackslash '\\'> <'e[90m['> <Id.Lit_BadBackslash '\\'> <'e[0m'>)
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'bracket_string_r='> 
                (DQ <Id.Lit_BadBackslash '\\'> <'e[90m]'> <Id.Lit_BadBackslash '\\'> <'e[0m'>)
              }
            )
            (command.ShFunction
              name: Print_Process_Animation
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'bright_dot='> 
                        (DQ <Id.Lit_BadBackslash '\\'> <'e[1;93m.'> <Id.Lit_BadBackslash '\\'> <'e[0m'>)
                      }
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'dimmed_dot='> 
                        (DQ <Id.Lit_BadBackslash '\\'> <'e[2;33m.'> <Id.Lit_BadBackslash '\\'> <'e[0m'>)
                      }
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'aprocess_string='> 
                        (sh_array_literal
                          left: <Id.Op_LParen _>
                          words: [
                            {(DQ ($ Id.VSub_DollarName bright_dot) <'     '>)}
                            {
                              (DQ ($ Id.VSub_DollarName dimmed_dot) ($ Id.VSub_DollarName bright_dot) 
                                <'    '>
                              )
                            }
                            {
                              (DQ <' '> ($ Id.VSub_DollarName dimmed_dot) 
                                ($ Id.VSub_DollarName bright_dot) <'   '>
                              )
                            }
                            {
                              (DQ <'  '> ($ Id.VSub_DollarName dimmed_dot) 
                                ($ Id.VSub_DollarName bright_dot) <'  '>
                              )
                            }
                            {
                              (DQ <'   '> ($ Id.VSub_DollarName dimmed_dot) 
                                ($ Id.VSub_DollarName bright_dot) <' '>
                              )
                            }
                            {
                              (DQ <'    '> ($ Id.VSub_DollarName dimmed_dot) 
                                ($ Id.VSub_DollarName bright_dot)
                              )
                            }
                            {
                              (DQ <'    '> ($ Id.VSub_DollarName bright_dot) 
                                ($ Id.VSub_DollarName dimmed_dot)
                              )
                            }
                            {
                              (DQ <'   '> ($ Id.VSub_DollarName bright_dot) 
                                ($ Id.VSub_DollarName dimmed_dot) <' '>
                              )
                            }
                            {
                              (DQ <'  '> ($ Id.VSub_DollarName bright_dot) 
                                ($ Id.VSub_DollarName dimmed_dot) <'  '>
                              )
                            }
                            {
                              (DQ <' '> ($ Id.VSub_DollarName bright_dot) 
                                ($ Id.VSub_DollarName dimmed_dot) <'   '>
                              )
                            }
                            {
                              (DQ ($ Id.VSub_DollarName bright_dot) ($ Id.VSub_DollarName dimmed_dot) 
                                <'    '>
                              )
                            }
                          ]
                        )
                      }
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike i)
                          right: {<Id.Lit_Digits 0>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LessEqual
                          left: ($ Id.Lit_ArithVarLike i)
                          right: 
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name aprocess_string>
                                var_name: aprocess_string
                                prefix_op: <Id.VSub_Pound '#'>
                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: ($ Id.Lit_ArithVarLike i)
                                      right: {<Id.Lit_Digits 11>}
                                    )
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [971]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DPipe]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {<-f>} {<'/tmp/dietpi-process.pid'>} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                                (C {<echo>} {<-ne>} 
                                  {
                                    (DQ <Id.Lit_BadBackslash '\\'> <r> 
                                      ($ Id.VSub_DollarName bracket_string_l) 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name aprocess_string>
                                        var_name: aprocess_string
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: ($ Id.Lit_ArithVarLike i)
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      ) ($ Id.VSub_DollarName bracket_string_r) <' '>
                                    )
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                            )
                            (C {<sleep>} {<0.15>})
                          ]
                        )
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name: Clean_Process_Animation
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-f>} {<'/tmp/dietpi-process.pid'>} 
                                      {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Simple
                              words: [
                                {<kill>}
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Simple
                                          words: []
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {<'/tmp/dietpi-process.pid'>}
                                            )
                                          ]
                                          more_env: []
                                          do_fork: F
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.Simple
                                  words: [{<rm>} {<'/tmp/dietpi-process.pid'>}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_AndGreat '&>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                                (command.Simple
                                  words: [{<sudo>} {<rm>} {<'/tmp/dietpi-process.pid'>}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_AndGreat '&>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                              ]
                            )
                            (C {<tput>} {<ed>})
                          ]
                          spids: [1029 1040]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<echo>} {<-ne>} 
                      {(DQ <Id.Lit_BadBackslash '\\'> <r> <Id.Lit_BadBackslash '\\'> <'e[K'>)}
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name: Print_Process
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<echo>} {<-ne>} 
                      {(DQ <Id.Lit_BadBackslash '\\'> <r> <Id.Lit_BadBackslash '\\'> <'e[9C'>)}
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name: Print_Ok
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<Clean_Process_Animation>})
                    (C {<echo>} {<-ne>} 
                      {
                        (DQ ($ Id.VSub_DollarName bracket_string_l) 
                          ($ Id.VSub_DollarName status_text_ok) ($ Id.VSub_DollarName bracket_string_r) <' '>
                        )
                      }
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name: Print_Failed
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<Clean_Process_Animation>})
                    (C {<echo>} {<-ne>} 
                      {
                        (DQ ($ Id.VSub_DollarName bracket_string_l) 
                          ($ Id.VSub_DollarName status_text_error) ($ Id.VSub_DollarName bracket_string_r) <' '>
                        )
                      }
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name: Print_Info
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<Clean_Process_Animation>})
                    (C {<echo>} {<-ne>} 
                      {
                        (DQ ($ Id.VSub_DollarName bracket_string_l) 
                          ($ Id.VSub_DollarName status_text_info) ($ Id.VSub_DollarName bracket_string_r) <' '>
                        )
                      }
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name: Print_Input_String
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<local>} {<Id.Lit_VarLike 'i='> <0>})
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike i)
                          right: {($ Id.VSub_Number 1)}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: ($ Id.Lit_ArithVarLike i)
                          right: 
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name ainput_string>
                                var_name: ainput_string
                                prefix_op: <Id.VSub_Pound '#'>
                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<echo>} {<-ne>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name ainput_string>
                                    var_name: ainput_string
                                    bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName i)})
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                )
                              }
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_Number 1)}
                                  right: 
                                    (arith_expr.Unary
                                      op_id: Id.Node_UnaryMinus
                                      child: {<Id.Lit_Digits 1>}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 2))} 
                                      {<Id.Lit_Equals '='>} {(DQ <0>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'ainput_string+='>
                                      name: ainput_string
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [{(DQ <' Completed'>)}]
                                      )
                                    }
                                  spids: [1349]
                                )
                              ]
                              redirects: []
                            )
                            (C {<Print_Ok>})
                            (C {<Print_Input_String>} {<2>})
                            (C {<echo>} {(SQ )})
                          ]
                          spids: [1328 1345]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'ainput_string+='>
                                  name: ainput_string
                                )
                              op: assign_op.PlusEqual
                              rhs: 
                                {
                                  (sh_array_literal
                                    left: <Id.Op_LParen _>
                                    words: [{(DQ <' An issue has occured'>)}]
                                  )
                                }
                              spids: [1376]
                            )
                          ]
                          redirects: []
                        )
                        (C {<Print_Failed>})
                        (C {<Print_Input_String>} {<2>})
                        (C {<echo>} {(SQ )})
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1309 1324]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_Number 1)}
                                  right: 
                                    (arith_expr.Unary
                                      op_id: Id.Node_UnaryMinus
                                      child: {<Id.Lit_Digits 2>}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<Print_Process>})
                    (C {<Print_Input_String>} {<1>})
                    (C {<local>} {<Id.Lit_VarLike 'string='> (DQ ($ Id.VSub_Star '*'))})
                    (C {<local>} {<Id.Lit_VarLike 'lines='> <0>})
                    (command.DParen
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike lines)
                          right: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Slash
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Plus
                                  left: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name string>
                                        var_name: string
                                        prefix_op: <Id.VSub_Pound '#'>
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                  right: {<Id.Lit_Digits 6>}
                                )
                              right: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: (C {<tput>} {<cols>})
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                            )
                        )
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: ($ Id.Lit_ArithVarLike lines)
                                      right: {<Id.Lit_Digits 0>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<tput>} {<cuu1>})
                            (command.DParen
                              child: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDMinus
                                  child: ($ Id.Lit_ArithVarLike lines)
                                )
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                          {<'/tmp/dietpi-process.pid'>} {<Id.Lit_RBracket ']'>}
                        )
                        (C {<touch>} {<'/tmp/dietpi-process.pid'>})
                        (command.Subshell
                          child: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: (C {<Print_Process_Animation>})
                                  terminator: <Id.Op_Amp _>
                                )
                                (command.Simple
                                  words: [{<echo>} {($ Id.VSub_Bang '!')}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/tmp/dietpi-process.pid'>}
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                              ]
                            )
                          redirects: []
                        )
                      ]
                    )
                  ]
                  spids: [1415 1430]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_Number 1)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Print_Ok>}) (C {<Print_Input_String>} {<1>}) (C {<echo>} {(SQ )})]
                  spids: [1563 1577]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_Number 1)}
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Print_Failed>}) (C {<Print_Input_String>} {<1>}) (C {<echo>} {(SQ )})]
                  spids: [1604 1618]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_Number 1)}
                                  right: {<Id.Lit_Digits 2>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<Print_Info>})
                    (C {<echo>} {<-ne>} {(DQ <Id.Lit_BadBackslash '\\'> <'e[90m'>)})
                    (C {<Print_Input_String>} {<1>})
                    (C {<echo>} {<-e>} {(DQ <Id.Lit_BadBackslash '\\'> <'e[0m'>)})
                  ]
                  spids: [1645 1659]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_Number 1)}
                                  right: {<Id.Lit_Digits 3>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {<-e>} 
                      {
                        (DQ <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> <'e[38;5;154m'> 
                          ($ Id.VSub_Number 2) <Id.Lit_BadBackslash '\\'> <'e[0m'>
                        )
                      }
                    )
                    (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName header_line))})
                    (C {<echo>} {<-e>} 
                      {
                        (DQ <' '> <Id.Lit_BadBackslash '\\'> <'e[90mMode: '> <Id.Lit_BadBackslash '\\'> 
                          <'e[0m'> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: (C {<Print_Input_String>} {<2>})
                            right: <Id.Eof_RParen _>
                          ) <Id.Lit_BadBackslash '\\'> <n>
                        )
                      }
                    )
                  ]
                  spids: [1704 1718]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<unset>} {<Print_Process_Animation>})
            (C {<unset>} {<Clean_Process_Animation>})
            (C {<unset>} {<Print_Process>})
            (C {<unset>} {<Print_Ok>})
            (C {<unset>} {<Print_Failed>})
            (C {<unset>} {<Print_Info>})
            (C {<unset>} {<Print_Input_String>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'G_CHECK_ROOT_USER_VERIFIED='>
              name: G_CHECK_ROOT_USER_VERIFIED
            )
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name G_CHECK_ROOT_USER_VERIFIED>
                var_name: G_CHECK_ROOT_USER_VERIFIED
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonEquals _> arg_word:{<0>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
          spids: [1822]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: G_CHECK_ROOT_USER
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: {($ Id.VSub_DollarName G_CHECK_ROOT_USER_VERIFIED)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<-2>} {(SQ <'Checking for (elevated) root access'>)})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_NEqual
                                          left: {($ Id.VSub_DollarName UID)}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<1>} 
                              {
                                (SQ 
                                  <
'Root privileges required. Please run the command with "sudo"\\n'
                                  >
                                )
                              }
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [1866 1880]
                        )
                      ]
                      else_action: [
                        (C {<G_DIETPI-NOTIFY>} {<0>} {(SQ <'Root access verified.'>)})
                        (C {<export>} {<Id.Lit_VarLike 'G_CHECK_ROOT_USER_VERIFIED='> <1>})
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1840 1852]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'G_CHECK_ROOTFS_RW_VERIFIED='>
              name: G_CHECK_ROOTFS_RW_VERIFIED
            )
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name G_CHECK_ROOTFS_RW_VERIFIED>
                var_name: G_CHECK_ROOTFS_RW_VERIFIED
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonEquals _> arg_word:{<0>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
          spids: [1931]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: G_CHECK_ROOTFS_RW
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: {($ Id.VSub_DollarName G_CHECK_ROOTFS_RW_VERIFIED)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<'/DietPi/dietpi/dietpi-drive_manager'>} {<3>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_NEqual
                                          left: {($ Id.VSub_QMark '?')}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<1>} 
                              {(SQ <'RootFS is currently Read Only, unable to continue.\\n'>)}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [1974 1988]
                        )
                      ]
                      else_action: [(C {<export>} {<Id.Lit_VarLike 'G_CHECK_ROOTFS_RW_VERIFIED='> <1>})]
                      redirects: []
                    )
                  ]
                  spids: [1949 1961]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
              name: G_ERROR_HANDLER_EXITCODE
            )
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [2046]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
              name: G_ERROR_HANDLER_COMMAND
            )
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [2054]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_EXIT='>
              name: G_ERROR_HANDLER_ONERROR_EXIT
            )
          op: assign_op.Equal
          rhs: {<1>}
          spids: [2066]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_FPLOGFILE='>
              name: G_ERROR_HANDLER_ONERROR_FPLOGFILE
            )
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [2073]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: G_ERROR_HANDLER_RESET
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<unset>} {<G_ERROR_HANDLER_EXITCODE>})
            (C {<unset>} {<G_ERROR_HANDLER_COMMAND>})
            (C {<unset>} {<G_ERROR_HANDLER_ONERROR_EXIT>})
            (C {<unset>} {<G_ERROR_HANDLER_ONERROR_FPLOGFILE>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: {(SQ )}
                  spids: [2119]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
                      name: G_ERROR_HANDLER_COMMAND
                    )
                  op: assign_op.Equal
                  rhs: {(SQ )}
                  spids: [2124]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_EXIT='>
                      name: G_ERROR_HANDLER_ONERROR_EXIT
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2130]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_FPLOGFILE='>
                      name: G_ERROR_HANDLER_ONERROR_FPLOGFILE
                    )
                  op: assign_op.Equal
                  rhs: {(SQ )}
                  spids: [2134]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_ERROR_HANDLER
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<0>} {(DQ ($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND))})
                  ]
                  spids: [2187 2201]
                )
              ]
              else_action: [
                (C {<local>} 
                  {<Id.Lit_VarLike 'print_hw_info='> 
                    (DQ <'VERSION:v'> 
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.version'>})
                        right: <Id.Eof_RParen _>
                      ) <.> 
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.version'>})
                        right: <Id.Eof_RParen _>
                      ) <' | HW_MODEL:'> ($ Id.VSub_DollarName G_HW_MODEL) <' | HW_ARCH:'> ($ Id.VSub_DollarName G_HW_ARCH) 
                      <' | DISTRO:'> ($ Id.VSub_DollarName G_DISTRO)
                    )
                  }
                )
                (C {<local>} 
                  {<Id.Lit_VarLike 'print_exitcode_info='> 
                    (DQ <'exit_code = '> ($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE))
                  }
                )
                (C {<local>} 
                  {<Id.Lit_VarLike 'print_logfile_info='> 
                    (DQ <'Log file contents:'> <Id.Lit_BadBackslash '\\'> <n> 
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (C {<tail>} {<-50>} {($ Id.VSub_DollarName G_ERROR_HANDLER_ONERROR_FPLOGFILE)})
                        right: <Id.Eof_RParen _>
                      )
                    )
                  }
                )
                (C {<local>} 
                  {<Id.Lit_VarLike 'print_report_to_dietpi_info='> 
                    (SQ 
                      <
'If problems persist, please report this to DietPi for investigation, including a screenshot of this error! (https://github.com/Fourdee/DietPi/issues).'
                      >
                    )
                  }
                )
                (C {<local>} 
                  {<Id.Lit_VarLike 'print_unable_to_continue='> 
                    (SQ <'Unable to continue, the program will now terminate.'>)
                  }
                )
                (C {<echo>} {(SQ )})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-n>} 
                                  {(DQ ($ Id.VSub_DollarName G_PROGRAM_NAME))} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<G_DIETPI-NOTIFY>} {<1>} 
                          {
                            (DQ ($ Id.VSub_DollarName G_PROGRAM_NAME) <': '> 
                              ($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND)
                            )
                          }
                        )
                      ]
                      spids: [2305 2318]
                    )
                  ]
                  else_action: [
                    (C {<G_DIETPI-NOTIFY>} {<1>} {(DQ ($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND))})
                  ]
                  redirects: []
                )
                (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ ($ Id.VSub_DollarName print_exitcode_info))})
                (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ ($ Id.VSub_DollarName print_hw_info))})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-n>} 
                                  {(DQ ($ Id.VSub_DollarName G_ERROR_HANDLER_ONERROR_FPLOGFILE))} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ ($ Id.VSub_DollarName print_logfile_info))})
                      ]
                      spids: [2375 2388]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-n>} 
                                  {(DQ ($ Id.VSub_DollarName G_PROGRAM_NAME))} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<G_DIETPI-NOTIFY>} {<2>} 
                          {(DQ ($ Id.VSub_DollarName print_report_to_dietpi_info))}
                        )
                      ]
                      spids: [2410 2423]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: {($ Id.VSub_DollarName G_USER_INPUTS)}
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<local>} 
                          {<Id.Lit_VarLike 'whip_msg='> 
                            (sh_array_literal
                              left: <Id.Op_LParen _>
                              words: []
                            )
                          }
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName G_PROGRAM_NAME))} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'whip_msg+='>
                                          name: whip_msg
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName G_PROGRAM_NAME) <': '> 
                                            ($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND)
                                          )
                                        }
                                      spids: [2483]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [2466 2479]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'whip_msg+='>
                                      name: whip_msg
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: {(DQ ($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND))}
                                  spids: [2496]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'whip_msg+='>
                                  name: whip_msg
                                )
                              op: assign_op.PlusEqual
                              rhs: {(SQ <'\\n'>)}
                              spids: [2507]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'whip_msg+='>
                                  name: whip_msg
                                )
                              op: assign_op.PlusEqual
                              rhs: {(DQ <' - '> ($ Id.VSub_DollarName print_exitcode_info))}
                              spids: [2513]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'whip_msg+='>
                                  name: whip_msg
                                )
                              op: assign_op.PlusEqual
                              rhs: {(SQ <'\\n'>)}
                              spids: [2520]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'whip_msg+='>
                                  name: whip_msg
                                )
                              op: assign_op.PlusEqual
                              rhs: {(DQ <' - '> ($ Id.VSub_DollarName print_hw_info))}
                              spids: [2526]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'whip_msg+='>
                                  name: whip_msg
                                )
                              op: assign_op.PlusEqual
                              rhs: {(SQ <'\\n\\n'>)}
                              spids: [2533]
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<-n>} 
                                          {
                                            (DQ 
                                              ($ Id.VSub_DollarName G_ERROR_HANDLER_ONERROR_FPLOGFILE)
                                            )
                                          } {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'whip_msg+='>
                                          name: whip_msg
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: {(DQ ($ Id.VSub_DollarName print_logfile_info))}
                                      spids: [2561]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'whip_msg+='>
                                          name: whip_msg
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <'\\n\\n'>)}
                                      spids: [2567]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [2544 2557]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName G_PROGRAM_NAME))} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'whip_msg+='>
                                          name: whip_msg
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: {(DQ ($ Id.VSub_DollarName print_report_to_dietpi_info))}
                                      spids: [2599]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [2582 2595]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: {($ Id.VSub_DollarName G_ERROR_HANDLER_ONERROR_EXIT)}
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'whip_msg+='>
                                          name: whip_msg
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <'\\n\\n'>)}
                                      spids: [2624]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'whip_msg+='>
                                          name: whip_msg
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: {(DQ ($ Id.VSub_DollarName print_unable_to_continue))}
                                      spids: [2630]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [2610 2620]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (C {<whiptail>} {<--title>} {(SQ <'DietPi Error Handler:'>)} {<--msgbox>} 
                          {(DQ ($ Id.VSub_DollarName whip_msg))} {<--scrolltext>} {<22>} {<85>}
                        )
                      ]
                      spids: [2445 2455]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: {($ Id.VSub_DollarName G_ERROR_HANDLER_ONERROR_EXIT)}
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<echo>} {<-e>} 
                          {
                            (DQ <'\n'> <Id.Lit_BadBackslash '\\'> <'e[41m\n'> 
                              <
'--------------------------------------------------------------------\n'
                              > <'- DietPi has encounted an error, and, is unable to continue        -\n'> 
                              <
'- Please create a ticket: https://github.com/Fourdee/DietPi/issues -\n'
                              > <'- Copy and paste the BLUE lines below, into the ticket             -\n'> 
                              <
'--------------------------------------------------------------------\n'
                              > <Id.Lit_BadBackslash '\\'> <'e[0m\n'> <Id.Lit_BadBackslash '\\'> <'e[44m\n'> 
                              <'#### Required Information:\n'> <'- DietPi Version | v'> 
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.version'>})
                                right: <Id.Eof_RParen _>
                              ) <.> 
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.version'>})
                                right: <Id.Eof_RParen _>
                              ) <'\n'> <'- SBC Device     | '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' (index='> 
                              ($ Id.VSub_DollarName G_HW_MODEL) <')\n'> <'- Distro         | '> ($ Id.VSub_DollarName G_DISTRO_NAME) <' (index='> 
                              ($ Id.VSub_DollarName G_DISTRO) <')\n'> <'- Command        | '> ($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND) <'\n'> 
                              <'- Error Handler  | G_ERROR_HANDLER\n'> <'\n'> <'#### Additional Information (if applicable):\n'> <'- Software title | '> 
                              ($ Id.VSub_DollarName G_PROGRAM_NAME) <'\n'> <'\n'> <'#### Expected behaviour:\n'> <'<!-- What SHOULD be happening? -->\n'> <'\n'> 
                              <'#### Actual behaviour:\n'> <'<!-- What IS happening? -->\n'> <'\n'> <'#### Steps to reproduce:\n'> 
                              <'<!-- Explain how to reproduce the issue -->\n'> <'\n'> <'#### Additional logs:\n'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\`'>
                                ch: '`'
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'\n'> 
                              ($ Id.VSub_DollarName print_logfile_info) <'\n'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\`'>
                                ch: '`'
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'\n'> <Id.Lit_BadBackslash '\\'> 
                              <'e[0m\n'> <'\n'> <Id.Lit_BadBackslash '\\'> 
                              <
'e[41m--------------------------------------------------------------------'
                              > <Id.Lit_BadBackslash '\\'> <'e[0m\n'>
                            )
                          }
                        )
                        (C {<G_DIETPI-NOTIFY>} {<1>} 
                          {(DQ ($ Id.VSub_DollarName print_unable_to_continue))}
                        )
                        (C {<G_ERROR_HANDLER_RESET>})
                        (C {<kill>} {<-INT>} {($ Id.VSub_Dollar '$')})
                      ]
                      spids: [2671 2681]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE)}
            )
            (C {<G_ERROR_HANDLER_RESET>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_RUN_CMD
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
                      name: G_ERROR_HANDLER_COMMAND
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_At '@'))}
                  spids: [2858]
                )
              ]
              redirects: []
            )
            (C {<G_DIETPI-NOTIFY>} {<-2>} 
              {(DQ <'Running command: '> ($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND))}
            )
            (command.Simple
              words: [{($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND)}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/tmp/G_ERROR_HANDLER_COMMAND'>}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [2883]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_FPLOGFILE='>
                      name: G_ERROR_HANDLER_ONERROR_FPLOGFILE
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'/tmp/G_ERROR_HANDLER_COMMAND'>)}
                  spids: [2887]
                )
              ]
              redirects: []
            )
            (C {<G_ERROR_HANDLER>})
            (command.Simple
              words: [{<rm>} {<'/tmp/G_ERROR_HANDLER_COMMAND'>}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              more_env: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_FILE_EXISTS
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
                      name: G_ERROR_HANDLER_COMMAND
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_At '@'))}
                  spids: [2927]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2933]
                )
              ]
              redirects: []
            )
            (C {<G_DIETPI-NOTIFY>} {<-2>} 
              {(DQ <'Checking for existance: '> ($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND))}
            )
            (C {<local>} {<Id.Lit_VarLike 'string='> (SQ )})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {(DQ ($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'string='> name:string)
                          op: assign_op.Equal
                          rhs: {(DQ <'File exists'>)}
                          spids: [2974]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2957 2970]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-d>} 
                              {(DQ ($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'string='> name:string)
                          op: assign_op.Equal
                          rhs: {(DQ <'Folder exists'>)}
                          spids: [2998]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2981 2994]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'string='> name:string)
                      op: assign_op.Equal
                      rhs: {(DQ <'File/folder does not exist'>)}
                      spids: [3009]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                          name: G_ERROR_HANDLER_EXITCODE
                        )
                      op: assign_op.Equal
                      rhs: {<1>}
                      spids: [3015]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'string+='> name:string)
                  op: assign_op.PlusEqual
                  rhs: {(DQ <' | '> ($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND))}
                  spids: [3024]
                )
              ]
              redirects: []
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName string))}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/tmp/G_ERROR_HANDLER_COMMAND'>}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_FPLOGFILE='>
                      name: G_ERROR_HANDLER_ONERROR_FPLOGFILE
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'/tmp/G_ERROR_HANDLER_COMMAND'>)}
                  spids: [3045]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
                      name: G_ERROR_HANDLER_COMMAND
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName string))}
                  spids: [3051]
                )
              ]
              redirects: []
            )
            (C {<G_ERROR_HANDLER>})
            (command.Simple
              words: [{<rm>} {<'/tmp/G_ERROR_HANDLER_COMMAND'>}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              more_env: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'G_DIETPI_INSTALL_STAGE='>
              name: G_DIETPI_INSTALL_STAGE
            )
          op: assign_op.Equal
          rhs: {<-2>}
          spids: [3092]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-f>} {<'/DietPi/dietpi/.install_stage'>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_DIETPI_INSTALL_STAGE='>
                      name: G_DIETPI_INSTALL_STAGE
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<cat>} {<'/DietPi/dietpi/.install_stage'>})
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [3111]
                )
              ]
              redirects: []
            )
          ]
          spids: [3096 3107]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_MODEL='> name:G_HW_MODEL)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name G_HW_MODEL>
                var_name: G_HW_MODEL
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<0>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
          spids: [3136]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'G_HW_MODEL_DESCRIPTION='>
              name: G_HW_MODEL_DESCRIPTION
            )
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name G_HW_MODEL_DESCRIPTION>
                var_name: G_HW_MODEL_DESCRIPTION
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<NULL>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
          spids: [3144]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_ARCH='> name:G_HW_ARCH)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name G_HW_ARCH>
                var_name: G_HW_ARCH
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<0>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
          spids: [3152]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_CPU_CORES='> name:G_HW_CPU_CORES)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name G_HW_CPU_CORES>
                var_name: G_HW_CPU_CORES
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<1>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
          spids: [3160]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_CPUID='> name:G_HW_CPUID)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name G_HW_CPUID>
                var_name: G_HW_CPUID
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<0>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
          spids: [3168]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO='> name:G_DISTRO)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name G_DISTRO>
                var_name: G_DISTRO
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<0>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
          spids: [3177]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO_NAME='> name:G_DISTRO_NAME)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name G_DISTRO_NAME>
                var_name: G_DISTRO_NAME
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<NULL>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
          spids: [3185]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-f>} {<'/DietPi/dietpi/.hw_model'>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_MODEL='> name:G_HW_MODEL)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.hw_model'>})
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [3217]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_HW_MODEL_DESCRIPTION='>
                      name: G_HW_MODEL_DESCRIPTION
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.hw_model'>})
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [3229]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_ARCH='> name:G_HW_ARCH)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<6p>} {<'/DietPi/dietpi/.hw_model'>})
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [3241]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_CPU_CORES='> name:G_HW_CPU_CORES)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<nproc>} {<--all>})
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [3253]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_CPUID='> name:G_HW_CPUID)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<9p>} {<'/DietPi/dietpi/.hw_model'>})
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [3261]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO='> name:G_DISTRO)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<3p>} {<'/DietPi/dietpi/.hw_model'>})
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [3274]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO_NAME='> name:G_DISTRO_NAME)
                  op: assign_op.Equal
                  rhs: {(SQ <jessie>)}
                  spids: [3286]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName G_DISTRO)}
                                  right: {<Id.Lit_Digits 4>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'G_DISTRO_NAME='>
                              name: G_DISTRO_NAME
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <stretch>)}
                          spids: [3310]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3292 3306]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName G_DISTRO)}
                                  right: {<Id.Lit_Digits 5>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'G_DISTRO_NAME='>
                              name: G_DISTRO_NAME
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <buster>)}
                          spids: [3335]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3317 3331]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          spids: [3202 3213]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShFunction
      name: G_OBTAIN_CPU_TEMP
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'afp_temperature='>
                      name: afp_temperature
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(SQ <'/sys/class/thermal/thermal_zone0/temp'>)}
                          {(SQ <'/sys/devices/platform/sunxi-i2c.0/i2c-0/0-0034/temp1_input'>)}
                          {(SQ <'/sys/class/hwmon/hwmon0/device/temp_label'>)}
                        ]
                      )
                    }
                  spids: [3365]
                )
              ]
              redirects: []
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: ($ Id.Lit_ArithVarLike i)
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: ($ Id.Lit_ArithVarLike i)
                  right: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name afp_temperature>
                        var_name: afp_temperature
                        prefix_op: <Id.VSub_Pound '#'>
                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-f>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name afp_temperature>
                                            var_name: afp_temperature
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName i)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        )
                                      } {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DPipe
                                                  left: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: {($ Id.VSub_DollarName G_HW_MODEL)}
                                                      right: {<Id.Lit_Digits 70>}
                                                    )
                                                  right: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: {($ Id.VSub_DollarName G_HW_MODEL)}
                                                      right: {<Id.Lit_Digits 52>}
                                                    )
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'cpu_temp_current='>
                                              name: cpu_temp_current
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (C {<cat>} 
                                                    {<'/sys/class/thermal/thermal_zone1/temp'>}
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                          spids: [3475]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [3449 3471]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'cpu_temp_current='>
                                          name: cpu_temp_current
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: 
                                              (C {<cat>} 
                                                {
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name afp_temperature>
                                                    var_name: afp_temperature
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: {($ Id.VSub_DollarName i)}
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                              )
                                            right: <Id.Eof_RParen _>
                                          )
                                        }
                                      spids: [3488]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DPipe
                                                  left: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DPipe
                                                      left: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DPipe
                                                          left: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_DPipe
                                                              left: 
                                                                (arith_expr.Binary
                                                                  op_id: Id.Arith_DEqual
                                                                  left: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
G_HW_MODEL
                                                                      )
                                                                    }
                                                                  right: {<Id.Lit_Digits 40>}
                                                                )
                                                              right: 
                                                                (arith_expr.Binary
                                                                  op_id: Id.Arith_DEqual
                                                                  left: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
G_HW_MODEL
                                                                      )
                                                                    }
                                                                  right: {<Id.Lit_Digits 61>}
                                                                )
                                                            )
                                                          right: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_DEqual
                                                              left: 
                                                                {($ Id.VSub_DollarName G_HW_MODEL)}
                                                              right: {<Id.Lit_Digits 62>}
                                                            )
                                                        )
                                                      right: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DAmp
                                                          left: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_DEqual
                                                              left: 
                                                                {($ Id.VSub_DollarName G_HW_CPUID)}
                                                              right: {<Id.Lit_Digits 1>}
                                                            )
                                                          right: 
                                                            {
                                                              (command_sub
                                                                left_token: 
                                                                  <Id.Left_DollarParen '$('>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (C {<uname>} {<-r>})
                                                                      (C {<grep>} {<-ci>} {<-m1>} 
                                                                        {(SQ <'^3.'>)}
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                    stderr_indices: []
                                                                  )
                                                                right: <Id.Eof_RParen _>
                                                              )
                                                            }
                                                        )
                                                    )
                                                  right: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DAmp
                                                      left: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DEqual
                                                          left: {($ Id.VSub_DollarName G_HW_MODEL)}
                                                          right: {<Id.Lit_Digits 32>}
                                                        )
                                                      right: 
                                                        {
                                                          (command_sub
                                                            left_token: <Id.Left_DollarParen '$('>
                                                            child: 
                                                              (command.Pipeline
                                                                children: [
                                                                  (C {<uname>} {<-r>})
                                                                  (C {<grep>} {<-ci>} {<-m1>} 
                                                                    {(SQ <'^3.'>)}
                                                                  )
                                                                ]
                                                                negated: F
                                                                stderr_indices: []
                                                              )
                                                            right: <Id.Eof_RParen _>
                                                          )
                                                        }
                                                    )
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Simple
                                      words: [{<echo>} {<-e>} {(DQ <'Do nothing'>)}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_AndGreat '&>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [3530 3628]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'cpu_temp_current='>
                                          name: cpu_temp_current
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (C {<echo>} {<-e>} 
                                                    {(DQ ($ Id.VSub_DollarName cpu_temp_current))}
                                                  )
                                                  (C {<awk>} {(SQ <'{print $1/1000}'>)})
                                                  (C {<xargs>} {<printf>} {(DQ <'%0.0f'>)})
                                                ]
                                                negated: F
                                                stderr_indices: []
                                              )
                                            right: <Id.Eof_RParen _>
                                          )
                                        }
                                      spids: [3650]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [3423 3441]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (C {<unset>} {<afp_temperature>})
            (C {<echo>} {($ Id.VSub_DollarName cpu_temp_current)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_OBTAIN_CPU_USAGE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<Id.Lit_VarLike 'cpu_usage='> <0>})
            (C {<local>} {<Id.Lit_VarLike 'fp_temp='> (SQ <'/tmp/.cpu_usage_cpuinfo'>)})
            (command.Pipeline
              children: [
                (C {<ps>} {<-axo>} {<Id.Lit_Other '%'> <cpu>})
                (C {<sed>} {(SQ <1d>)})
                (command.Simple
                  words: [{<sed>} {(SQ <'s/ //'>)}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {(DQ ($ Id.VSub_DollarName fp_temp))}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              negated: F
              stderr_indices: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: (condition.Shell commands:[(C {<read>} {<line>})])
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cpu_usage='> name:cpu_usage)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<echo>} 
                                        {
                                          (DQ <'scale=1;'> ($ Id.VSub_DollarName cpu_usage) <' + '> 
                                            ($ Id.VSub_DollarName line)
                                          )
                                        }
                                      )
                                      (C {<bc>} {<-l>})
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [3786]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName fp_temp))}
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cpu_usage='> name:cpu_usage)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<echo>} 
                                {
                                  (DQ <'scale=1;'> ($ Id.VSub_DollarName cpu_usage) <' / '> 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: (C {<nproc>} {<--all>})
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              )
                              (C {<bc>} {<-l>})
                            ]
                            negated: F
                            stderr_indices: []
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [3822]
                )
              ]
              redirects: []
            )
            (C {<echo>} {($ Id.VSub_DollarName cpu_usage)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'G_FP_DIETPI_USERDATA='>
              name: G_FP_DIETPI_USERDATA
            )
          op: assign_op.Equal
          rhs: {(SQ <'/mnt/dietpi_userdata'>)}
          spids: [3873]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: G_CHECK_URL
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<Id.Lit_VarLike 'string='> (DQ ($ Id.VSub_At '@'))})
            (C {<local>} {<Id.Lit_VarLike 'timeout='> <10>})
            (C {<local>} {<Id.Lit_VarLike 'retry_max='> <5>})
            (C {<local>} {<Id.Lit_VarLike 'error_connection_failed='> <0>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3954]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
                      name: G_ERROR_HANDLER_COMMAND
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <'Connection test: '> ($ Id.VSub_DollarName string))}
                  spids: [3958]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_FPLOGFILE='>
                      name: G_ERROR_HANDLER_ONERROR_FPLOGFILE
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'/tmp/G_CHECK_URL'>)}
                  spids: [3965]
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: (condition.Shell commands:[(C {<true>})])
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: {($ Id.VSub_DollarName G_USER_INPUTS)}
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_EXIT='>
                                      name: G_ERROR_HANDLER_ONERROR_EXIT
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [3999]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: {($ Id.VSub_DollarName error_connection_failed)}
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<whiptail>} {<--title>} {(DQ <'URL Connection Test Failed'>)} 
                                      {<--yesno>} 
                                      {
                                        (DQ <'DietPi was unable to establish a connection:'> 
                                          <Id.Lit_BadBackslash '\\'> <'n - '> ($ Id.VSub_DollarName string) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                          <
'nIf problems persist, the URL may be offline/unreachable.'
                                          > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                          <
'nWould you like to configure network settings and try again?'
                                          >
                                        )
                                      } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Exit>)} {<--defaultno>} {<--backtitle>} 
                                      {(DQ ($ Id.VSub_DollarName G_PROGRAM_NAME))} {<15>} {<80>}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'CHOICE='>
                                              name: CHOICE
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '?')}
                                          spids: [4072]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DParen
                                                      child: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DEqual
                                                          left: {($ Id.VSub_DollarName CHOICE)}
                                                          right: {<Id.Lit_Digits 0>}
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<whiptail>} {<--title>} 
                                              {(DQ <'Launching DietPi-Config'>)} {<--msgbox>} 
                                              {
                                                (DQ <'DietPi-Config will now be started.'> 
                                                  <Id.Lit_BadBackslash '\\'> <'nUse the Network Options menu to change and test your network settings.'> <Id.Lit_BadBackslash '\\'> 
                                                  <n> <Id.Lit_BadBackslash '\\'> <'nWhen completed, exit DietPi-Config to resume.'>
                                                )
                                              } {<--backtitle>} {(DQ <'Launching DietPi-Config'>)} {<14>} {<60>}
                                            )
                                            (C {<'/DietPi/dietpi/dietpi-config'>} {<8>} {<1>})
                                          ]
                                          spids: [4081 4095]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: 
                                                    <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_EXIT='>
                                                  name: G_ERROR_HANDLER_ONERROR_EXIT
                                                )
                                              op: assign_op.Equal
                                              rhs: {<1>}
                                              spids: [4146]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                                                  name: G_ERROR_HANDLER_EXITCODE
                                                )
                                              op: assign_op.Equal
                                              rhs: {<1>}
                                              spids: [4150]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'G_USER_INPUTS='>
                                                  name: G_USER_INPUTS
                                                )
                                              op: assign_op.Equal
                                              rhs: {<0>}
                                              spids: [4154]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (C {<G_ERROR_HANDLER>})
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [4004 4014]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [3985 3995]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_EXIT='>
                                  name: G_ERROR_HANDLER_ONERROR_EXIT
                                )
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [4185]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike i)
                          right: {<Id.Lit_Digits 1>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LessEqual
                          left: ($ Id.Lit_ArithVarLike i)
                          right: {($ Id.VSub_DollarName retry_max)}
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<G_DIETPI-NOTIFY>} {<-2>} 
                              {
                                (DQ <'('> ($ Id.VSub_DollarName i) <'/'> 
                                  ($ Id.VSub_DollarName retry_max) <') Testing connection to '> ($ Id.VSub_DollarName string) <', please wait...'>
                                )
                              }
                            )
                            (command.Simple
                              words: [
                                {<wget>}
                                {<--spider>}
                                {<--timeout> <Id.Lit_Equals '='> ($ Id.VSub_DollarName timeout)}
                                {<--tries> <Id.Lit_Equals '='> <1>}
                                {(DQ ($ Id.VSub_DollarName string))}
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/tmp/G_CHECK_URL'>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                                      name: G_ERROR_HANDLER_EXITCODE
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                  spids: [4254]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    {($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE)}
                                                  right: {<Id.Lit_Digits 0>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                                  spids: [4262 4276]
                                )
                              ]
                              else_action: [
                                (C {<sleep>} {<2>})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'error_connection_failed='>
                                          name: error_connection_failed
                                        )
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [4297]
                                    )
                                  ]
                                  redirects: []
                                )
                                (C {<G_DIETPI-NOTIFY>} {<-2>} 
                                  {
                                    (DQ <'Failed connection attempt ('> ($ Id.VSub_DollarName i) <'/'> 
                                      ($ Id.VSub_DollarName retry_max) <'), retrying...'>
                                    )
                                  }
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (C {<G_ERROR_HANDLER>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE)}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                          spids: [4335 4349]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (C {<rm>} {<'/tmp/G_CHECK_URL'>})
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_FP_LOG_APT='> name:G_FP_LOG_APT)
          op: assign_op.Equal
          rhs: {(SQ <'/var/tmp/dietpi/logs/dietpi-software_apt.log'>)}
          spids: [4393]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: G_AGI
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<Id.Lit_VarLike 'string='> (DQ ($ Id.VSub_At '@'))})
            (C {<local>} {<Id.Lit_VarLike 'force_options='> (SQ )})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName G_DISTRO)}
                                  right: {<Id.Lit_Digits 4>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'force_options='>
                              name: force_options
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'--allow-downgrades --allow-remove-essential --allow-change-held-packages --allow-unauthenticated'
                                >
                              )
                            }
                          spids: [4472]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [4454 4468]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'force_options='>
                          name: force_options
                        )
                      op: assign_op.Equal
                      rhs: {(SQ <--force-yes>)}
                      spids: [4483]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4494]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
                      name: G_ERROR_HANDLER_COMMAND
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <'G_AGI: '> ($ Id.VSub_DollarName string))}
                  spids: [4498]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_FPLOGFILE='>
                      name: G_ERROR_HANDLER_ONERROR_FPLOGFILE
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))}
                  spids: [4505]
                )
              ]
              redirects: []
            )
            (C {<G_DIETPI-NOTIFY>} {<2>} 
              {(DQ <'APT installation for: '> ($ Id.VSub_DollarName string) <', please wait...'>)}
            )
            (command.Pipeline
              children: [
                (command.Simple
                  words: [
                    {<apt-get>}
                    {<install>}
                    {<-y>}
                    {<-qq>}
                    {($ Id.VSub_DollarName force_options)}
                    {($ Id.VSub_DollarName string)}
                  ]
                  redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  more_env: [(env_pair name:DEBIAN_FRONTEND val:{<noninteractive>} spids:[4529])]
                  do_fork: T
                )
                (C {<tee>} {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))})
              ]
              negated: F
              stderr_indices: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PIPESTATUS>
                        var_name: PIPESTATUS
                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  spids: [4556]
                )
              ]
              redirects: []
            )
            (C {<G_ERROR_HANDLER>})
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_AGP
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<Id.Lit_VarLike 'string='> (DQ ($ Id.VSub_At '@'))})
            (C {<local>} {<Id.Lit_VarLike 'options='> (SQ )})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName G_DISTRO)}
                                  right: {<Id.Lit_Digits 4>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options+='> name:options)
                          op: assign_op.PlusEqual
                          rhs: {(SQ <' --allow-change-held-packages'>)}
                          spids: [4628]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [4610 4624]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4639]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
                      name: G_ERROR_HANDLER_COMMAND
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <'G_AGP: '> ($ Id.VSub_DollarName string))}
                  spids: [4643]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_FPLOGFILE='>
                      name: G_ERROR_HANDLER_ONERROR_FPLOGFILE
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))}
                  spids: [4650]
                )
              ]
              redirects: []
            )
            (C {<G_DIETPI-NOTIFY>} {<2>} 
              {(DQ <'APT removal for: '> ($ Id.VSub_DollarName string) <', please wait...'>)}
            )
            (command.Pipeline
              children: [
                (command.Simple
                  words: [
                    {<apt-get>}
                    {<purge>}
                    {<-y>}
                    {($ Id.VSub_DollarName string)}
                    {($ Id.VSub_DollarName options)}
                  ]
                  redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  more_env: [(env_pair name:DEBIAN_FRONTEND val:{<noninteractive>} spids:[4669])]
                  do_fork: T
                )
                (C {<tee>} {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))})
              ]
              negated: F
              stderr_indices: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PIPESTATUS>
                        var_name: PIPESTATUS
                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  spids: [4694]
                )
              ]
              redirects: []
            )
            (C {<G_ERROR_HANDLER>})
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_AGA
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4733]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
                      name: G_ERROR_HANDLER_COMMAND
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <G_AGA>)}
                  spids: [4737]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_FPLOGFILE='>
                      name: G_ERROR_HANDLER_ONERROR_FPLOGFILE
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))}
                  spids: [4743]
                )
              ]
              redirects: []
            )
            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'APT autoremove + purge, please wait...'>)})
            (command.Pipeline
              children: [
                (command.Simple
                  words: [{<apt-get>} {<autoremove>} {<--purge>} {<-y>}]
                  redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  more_env: [(env_pair name:DEBIAN_FRONTEND val:{<noninteractive>} spids:[4760])]
                  do_fork: T
                )
                (C {<tee>} {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))})
              ]
              negated: F
              stderr_indices: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PIPESTATUS>
                        var_name: PIPESTATUS
                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  spids: [4783]
                )
              ]
              redirects: []
            )
            (C {<G_ERROR_HANDLER>})
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_AGF
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4822]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
                      name: G_ERROR_HANDLER_COMMAND
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <G_AGF>)}
                  spids: [4826]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_FPLOGFILE='>
                      name: G_ERROR_HANDLER_ONERROR_FPLOGFILE
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))}
                  spids: [4832]
                )
              ]
              redirects: []
            )
            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'APT fix, please wait...'>)})
            (command.Pipeline
              children: [
                (command.Simple
                  words: [{<apt-get>} {<install>} {<-f>} {<-y>}]
                  redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  more_env: [(env_pair name:DEBIAN_FRONTEND val:{<noninteractive>} spids:[4849])]
                  do_fork: T
                )
                (C {<tee>} {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))})
              ]
              negated: F
              stderr_indices: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PIPESTATUS>
                        var_name: PIPESTATUS
                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  spids: [4872]
                )
              ]
              redirects: []
            )
            (C {<G_ERROR_HANDLER>})
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_AGUP
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4911]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
                      name: G_ERROR_HANDLER_COMMAND
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <G_AGUP>)}
                  spids: [4915]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_FPLOGFILE='>
                      name: G_ERROR_HANDLER_ONERROR_FPLOGFILE
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))}
                  spids: [4921]
                )
              ]
              redirects: []
            )
            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'APT update, please wait...'>)})
            (command.Pipeline
              children: [
                (command.Simple
                  words: [{<apt-get>} {<clean>}]
                  redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  more_env: [(env_pair name:DEBIAN_FRONTEND val:{<noninteractive>} spids:[4938])]
                  do_fork: T
                )
                (C {<tee>} {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))})
              ]
              negated: F
              stderr_indices: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  words: [{<apt-get>} {<update>}]
                  redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  more_env: [(env_pair name:DEBIAN_FRONTEND val:{<noninteractive>} spids:[4957])]
                  do_fork: T
                )
                (C {<tee>} {<-a>} {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))})
              ]
              negated: F
              stderr_indices: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PIPESTATUS>
                        var_name: PIPESTATUS
                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  spids: [4978]
                )
              ]
              redirects: []
            )
            (C {<G_ERROR_HANDLER>})
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_AGUG
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [5017]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
                      name: G_ERROR_HANDLER_COMMAND
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <G_AGUG>)}
                  spids: [5021]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_FPLOGFILE='>
                      name: G_ERROR_HANDLER_ONERROR_FPLOGFILE
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))}
                  spids: [5027]
                )
              ]
              redirects: []
            )
            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'APT upgrade, please wait...'>)})
            (command.Pipeline
              children: [
                (command.Simple
                  words: [{<apt-get>} {<upgrade>} {<-y>}]
                  redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  more_env: [(env_pair name:DEBIAN_FRONTEND val:{<noninteractive>} spids:[5044])]
                  do_fork: T
                )
                (C {<tee>} {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))})
              ]
              negated: F
              stderr_indices: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PIPESTATUS>
                        var_name: PIPESTATUS
                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  spids: [5065]
                )
              ]
              redirects: []
            )
            (C {<G_ERROR_HANDLER>})
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_AGDUG
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [5104]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='>
                      name: G_ERROR_HANDLER_COMMAND
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <G_AGDUG>)}
                  spids: [5108]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_ONERROR_FPLOGFILE='>
                      name: G_ERROR_HANDLER_ONERROR_FPLOGFILE
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))}
                  spids: [5114]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName G_DISTRO)}
                                  right: {<Id.Lit_Digits 4>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'force_options='>
                              name: force_options
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'--allow-downgrades --allow-remove-essential --allow-change-held-packages --allow-unauthenticated'
                                >
                              )
                            }
                          spids: [5139]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5121 5135]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'force_options='>
                          name: force_options
                        )
                      op: assign_op.Equal
                      rhs: {(SQ <--force-yes>)}
                      spids: [5150]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'APT dist-upgrade, please wait...'>)})
            (command.Pipeline
              children: [
                (command.Simple
                  words: [{<apt-get>} {<dist-upgrade>} {<-y>}]
                  redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  more_env: [(env_pair name:DEBIAN_FRONTEND val:{<noninteractive>} spids:[5171])]
                  do_fork: T
                )
                (C {<tee>} {(DQ ($ Id.VSub_DollarName G_FP_LOG_APT))})
              ]
              negated: F
              stderr_indices: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='>
                      name: G_ERROR_HANDLER_EXITCODE
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PIPESTATUS>
                        var_name: PIPESTATUS
                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  spids: [5192]
                )
              ]
              redirects: []
            )
            (C {<G_ERROR_HANDLER>})
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName G_ERROR_HANDLER_EXITCODE)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_AG_CHECK_INSTALL_PREREQ
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<Id.Lit_VarLike 'fp_temp='> (SQ <'/tmp/.G_AG_CHECK_INSTALL_PREREQ'>)})
            (C {<local>} {<Id.Lit_VarLike 'exit_code='> <0>})
            (C {<local>} 
              {<Id.Lit_VarLike 'string='> 
                (sh_array_literal
                  left: <Id.Op_LParen _>
                  words: [{(DQ ($ Id.VSub_At '@'))}]
                )
              }
            )
            (C {<local>} {<Id.Lit_VarLike 'packages_to_install='> (SQ )})
            (C {<G_DIETPI-NOTIFY>} {<2>} 
              {
                (DQ <'Checking for pre-req APT packages: '> 
                  (braced_var_sub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name string>
                    var_name: string
                    bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star)
                    right: <Id.Right_DollarBrace '}'>
                  )
                )
              }
            )
            (command.Simple
              words: [{<dpkg>} {<--get-selections>}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName fp_temp))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.ForEach
              iter_names: [i]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (DQ 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name string>
                          var_name: string
                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (C {<grep>} {<-ci>} {<-m1>} 
                                                    {
                                                      (DQ <'^'> ($ Id.VSub_DollarName i) 
                                                        <'[[:space:]]'>
                                                      )
                                                    } {(DQ ($ Id.VSub_DollarName fp_temp))}
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {
                                (DQ <'('> ($ Id.VSub_DollarName i) 
                                  <') | Not found, flagged for installation'>
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'packages_to_install+='>
                                      name: packages_to_install
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: {(DQ <' '> ($ Id.VSub_DollarName i))}
                                  spids: [5359]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [5316 5344]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                              {(DQ ($ Id.VSub_DollarName packages_to_install))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<-2>} {(DQ <'Installing pre-req APT packages'>)})
                    (C {<G_AGI>} {($ Id.VSub_DollarName packages_to_install)})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_code='> name:exit_code)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                          spids: [5406]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5375 5388]
                )
              ]
              else_action: [(C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Pre-req APT packages are installed'>)})]
              redirects: []
            )
            (C {<rm>} {(DQ ($ Id.VSub_DollarName fp_temp))})
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName exit_code)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: G_RPI_UPDATE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_DollarName G_HW_MODEL)}
                                  right: {<Id.Lit_Digits 10>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_AG_CHECK_INSTALL_PREREQ>} {<rpi-update>})
                    (C {<export>} {<Id.Lit_VarLike 'SKIP_BACKUP='> <1>})
                    (C {<G_RUN_CMD>} {<rpi-update>})
                    (C {<apt-mark>} {<hold>} {<raspberrypi-bootloader>} {<raspberrypi-kernel>} 
                      {<libraspberrypi-bin>}
                    )
                  ]
                  spids: [5483 5497]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
  redirects: []
  right: <Id.Lit_RBrace '}'>
)