(CommandList
  children: [
    (BraceGroup
      children: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:INPUT) op:Equal rhs:{(0)} spids:[95])]
          spids: [95]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_EqualTilde
                          left: {($ VSub_Number '$1')}
                          right: 
                            {(Lit_Other '^') (-) (Lit_Other '?') (Lit_Other '[') (0-9) (Lit_Other ']') 
                              (Lit_Other '+') (Lit_Other '$')
                            }
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:INPUT)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [122]
                    )
                  ]
                  spids: [122]
                )
              ]
              spids: [16777215 119]
            )
          ]
          spids: [16777215 126]
        )
        (C {(.)} {(/DietPi/dietpi/func/dietpi-globals)})
        (C {(G_CHECK_ROOT_USER)})
        (C {(G_CHECK_ROOTFS_RW)})
        (C {(export)} {(Lit_VarLike 'G_PROGRAM_NAME=') (SQ <DietPi-Backup>)})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:WHIP_BACKTITLE)
              op: Equal
              rhs: {(SQ <DietPi-Backup>)}
              spids: [170]
            )
          ]
          spids: [170]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:WHIP_TITLE) op:Equal rhs:{(SQ )} spids:[176])]
          spids: [176]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:MENU_LASTITEM) op:Equal rhs:{(SQ )} spids:[181])]
          spids: [181]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:CHOICE) op:Equal rhs:{(0)} spids:[186])]
          spids: [186]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:OPTION) op:Equal rhs:{(0)} spids:[190])]
          spids: [190]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[194])]
          spids: [194]
        )
        (FuncDef
          name: Menu_Main
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:backup_last_completed_system)
                      op: Equal
                      rhs: {(SQ <'System backup not found. Create one.'>)}
                      spids: [212]
                    )
                  ]
                  spids: [210]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-f)} 
                              {
                                (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                  ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                                )
                              } {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:backup_last_completed_system)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {(grep)} {(SQ <Completed>)} 
                                                {
                                                  (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                    ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                                                  )
                                                }
                                              )
                                              (C {(tail)} {(-1)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [238 256]
                                  )
                                }
                              spids: [237]
                            )
                          ]
                          spids: [237]
                        )
                      ]
                      spids: [16777215 233]
                    )
                  ]
                  spids: [16777215 260]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:backup_last_completed_userdata)
                      op: Equal
                      rhs: {(SQ <'User data backup not found (requires "Full" backup mode)'>)}
                      spids: [266]
                    )
                  ]
                  spids: [264]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-f)} 
                              {
                                (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                  ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA')
                                )
                              } {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:backup_last_completed_userdata)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {(grep)} {(SQ <Completed>)} 
                                                {
                                                  (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                    ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA')
                                                  )
                                                }
                                              )
                                              (C {(tail)} {(-1)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [292 310]
                                  )
                                }
                              spids: [291]
                            )
                          ]
                          spids: [291]
                        )
                      ]
                      spids: [16777215 287]
                    )
                  ]
                  spids: [16777215 314]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:text_backup_mode)
                      op: Equal
                      rhs: {(SQ <'System only'>)}
                      spids: [320]
                    )
                  ]
                  spids: [318]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:text_start_mode_desc)
                      op: Equal
                      rhs: {(SQ <system>)}
                      spids: [328]
                    )
                  ]
                  spids: [326]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$BACKUP_MODE')})
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:text_backup_mode)
                              op: Equal
                              rhs: {(SQ <Full>)}
                              spids: [352]
                            )
                          ]
                          spids: [352]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:text_start_mode_desc)
                              op: Equal
                              rhs: {(SQ <'system and user data'>)}
                              spids: [358]
                            )
                          ]
                          spids: [358]
                        )
                      ]
                      spids: [16777215 348]
                    )
                  ]
                  spids: [16777215 365]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:WHIP_TITLE)
                      op: Equal
                      rhs: {(SQ <DietPi-Backup>)}
                      spids: [369]
                    )
                  ]
                  spids: [369]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:OPTION)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [
                                      {(whiptail)}
                                      {(--title)}
                                      {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                      {(--menu)}
                                      {
                                        (DQ ('Current backup and restore location:') (Lit_Other '\\') 
                                          ('n - ') ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') ('n - ') 
                                          ($ VSub_Name '$backup_last_completed_system') (Lit_Other '\\') ('n - ') ($ VSub_Name '$backup_last_completed_userdata')
                                        )
                                      }
                                      {(--cancel-button)}
                                      {(DQ (Exit))}
                                      {(--default-item)}
                                      {(DQ ($ VSub_Name '$MENU_LASTITEM'))}
                                      {(--backtitle)}
                                      {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                      {(16)}
                                      {(80)}
                                      {(5)}
                                      {(DQ (Help))}
                                      {(DQ ('What does DietPi-Backup do?'))}
                                      {(DQ (Location))}
                                      {
                                        (DQ 
                                          (
'Change where your backup will be saved and restored from.'
                                          )
                                        )
                                      }
                                      {(DQ ('Backup mode'))}
                                      {(DQ (': ') ($ VSub_Name '$text_backup_mode'))}
                                      {(DQ (Backup))}
                                      {(DQ ('Create (or update) a backup of this system.'))}
                                      {(DQ (Restore))}
                                      {(DQ ('Restore this system from a previous backup.'))}
                                    ]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 3
                                        arg_word: {(1)}
                                        spids: [475]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 1
                                        arg_word: {(2)}
                                        spids: [478]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 2
                                        arg_word: {(3)}
                                        spids: [481]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [376 483]
                          )
                        }
                      spids: [375]
                    )
                  ]
                  spids: [375]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CHOICE)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [487]
                    )
                  ]
                  spids: [487]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:MENU_LASTITEM)
                              op: Equal
                              rhs: {(DQ ($ VSub_Name '$OPTION'))}
                              spids: [509]
                            )
                          ]
                          spids: [509]
                        )
                        (Case
                          to_match: {(DQ ($ VSub_Name '$OPTION'))}
                          arms: [
                            (case_arm
                              pat_list: [{(Location)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:TARGETMENUID)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [531]
                                    )
                                  ]
                                  spids: [531]
                                )
                              ]
                              spids: [526 527 536 16777215]
                            )
                            (case_arm
                              pat_list: [{(DQ ('Backup mode'))}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:OPTION)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (SimpleCommand
                                                    words: [
                                                      {(whiptail)}
                                                      {(--title)}
                                                      {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                                      {(--menu)}
                                                      {
                                                        (DQ ('Please select a backup mode:') 
                                                          (Lit_Other '\\') (n) (Lit_Other '\\') ('n - System only') (Lit_Other '\\') 
                                                          (
'nOnly the system is backed up and restored, this does not include your DietPi user data ('
                                                          ) ($ VSub_Name '$G_FP_DIETPI_USERDATA') (').') (Lit_Other '\\') (n) (Lit_Other '\\') ('n - Full:') 
                                                          (Lit_Other '\\') ('nSystem and user data (') ($ VSub_Name '$G_FP_DIETPI_USERDATA') (') is backed up and restored.') 
                                                          (Lit_Other '\\') (n) (Lit_Other '\\') ('nMore information on what DietPi user data is:') (Lit_Other '\\') 
                                                          (
'nhttp://dietpi.com/phpbb/viewtopic.php?f=8&t=478#p2087'
                                                          )
                                                        )
                                                      }
                                                      {(--cancel-button)}
                                                      {(DQ (Exit))}
                                                      {(--default-item)}
                                                      {(DQ ($ VSub_Name '$BACKUP_MODE'))}
                                                      {(--backtitle)}
                                                      {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                                      {(20)}
                                                      {(80)}
                                                      {(2)}
                                                      {(DQ (0))}
                                                      {(DQ ('System only'))}
                                                      {(DQ (1))}
                                                      {(DQ ('Full (includes user data)'))}
                                                    ]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_GreatAnd
                                                        fd: 3
                                                        arg_word: {(1)}
                                                        spids: [629]
                                                      )
                                                      (Redir
                                                        op_id: Redir_GreatAnd
                                                        fd: 1
                                                        arg_word: {(2)}
                                                        spids: [632]
                                                      )
                                                      (Redir
                                                        op_id: Redir_GreatAnd
                                                        fd: 2
                                                        arg_word: {(3)}
                                                        spids: [635]
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [548 637]
                                          )
                                        }
                                      spids: [547]
                                    )
                                  ]
                                  spids: [547]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:CHOICE)
                                      op: Equal
                                      rhs: {($ VSub_QMark '$?')}
                                      spids: [640]
                                    )
                                  ]
                                  spids: [640]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                                  right: (ArithWord w:{(Lit_Digits 0)})
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:BACKUP_MODE)
                                              op: Equal
                                              rhs: {($ VSub_Name '$OPTION')}
                                              spids: [662]
                                            )
                                          ]
                                          spids: [662]
                                        )
                                      ]
                                      spids: [16777215 658]
                                    )
                                  ]
                                  spids: [16777215 667]
                                )
                              ]
                              spids: [541 543 671 16777215]
                            )
                            (case_arm
                              pat_list: [{(Help)}]
                              action: [
                                (C {(whiptail)} {(--title)} {(DQ ('DietPi-Backup Help'))} {(--msgbox)} 
                                  {
                                    (DQ 
                                      (
'DietPi-Backup is a program that allows you to Backup and Restore your DietPi system.'
                                      ) (Lit_Other '\\') (n) (Lit_Other '\\') 
                                      (
'nIf you have broken your system, or want to reset your system to an earlier date, this can all be done with DietPi-Backup.'
                                      ) (Lit_Other '\\') (n) (Lit_Other '\\') 
                                      (
'nSimply choose a location where you want to save and restore your backups from, then, select Backup or Restore.'
                                      ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nMore information:') (Lit_Other '\\') 
                                      (
'n - http://dietpi.com/phpbb/viewtopic.php?f=8&t=5&p=256#p255'
                                      )
                                    )
                                  } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(20)} {(75)}
                                )
                              ]
                              spids: [675 676 720 16777215]
                            )
                            (case_arm
                              pat_list: [{(Backup)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:WHIP_TITLE)
                                      op: Equal
                                      rhs: {(SQ <' Start backup? '>)}
                                      spids: [729]
                                    )
                                  ]
                                  spids: [729]
                                )
                                (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} 
                                  {(--yesno)} 
                                  {
                                    (DQ ('Your ') ($ VSub_Name '$text_start_mode_desc') 
                                      (' will be backed up to:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') (n) (Lit_Other '\\') 
                                      ('nDo you wish to continue?')
                                    )
                                  } {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(--backtitle)} 
                                  {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(65)}
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:CHOICE)
                                      op: Equal
                                      rhs: {($ VSub_QMark '$?')}
                                      spids: [783]
                                    )
                                  ]
                                  spids: [783]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                                  right: (ArithWord w:{(Lit_Digits 0)})
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [(C {(Run_Backup)})]
                                      spids: [16777215 801]
                                    )
                                  ]
                                  spids: [16777215 809]
                                )
                              ]
                              spids: [724 725 813 16777215]
                            )
                            (case_arm
                              pat_list: [{(Restore)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:WHIP_TITLE)
                                      op: Equal
                                      rhs: {(SQ <' Start restore? '>)}
                                      spids: [822]
                                    )
                                  ]
                                  spids: [822]
                                )
                                (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} 
                                  {(--yesno)} 
                                  {
                                    (DQ ('Your ') ($ VSub_Name '$text_start_mode_desc') 
                                      (' will be restored from:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') (n) (Lit_Other '\\') 
                                      ('nDo you wish to continue?')
                                    )
                                  } {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(--backtitle)} 
                                  {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(65)}
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:CHOICE)
                                      op: Equal
                                      rhs: {($ VSub_QMark '$?')}
                                      spids: [876]
                                    )
                                  ]
                                  spids: [876]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                                  right: (ArithWord w:{(Lit_Digits 0)})
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [(C {(Run_Restore)})]
                                      spids: [16777215 894]
                                    )
                                  ]
                                  spids: [16777215 902]
                                )
                              ]
                              spids: [817 818 906 16777215]
                            )
                          ]
                          spids: [516 522 910]
                        )
                      ]
                      spids: [16777215 505]
                    )
                  ]
                  else_action: [(C {(Menu_Exit)})]
                  spids: [914 922]
                )
              ]
              spids: [206]
            )
          spids: [203 206]
        )
        (FuncDef
          name: Menu_Exit
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:WHIP_TITLE)
                      op: Equal
                      rhs: {(SQ <' Exit DietPi-Backup? '>)}
                      spids: [937]
                    )
                  ]
                  spids: [937]
                )
                (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yesno)} 
                  {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(--backtitle)} 
                  {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(10)} {(50)}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CHOICE)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [982]
                    )
                  ]
                  spids: [982]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:TARGETMENUID)
                              op: Equal
                              rhs: {(-1)}
                              spids: [1009]
                            )
                          ]
                          spids: [1009]
                        )
                      ]
                      spids: [16777215 1005]
                    )
                  ]
                  spids: [16777215 1014]
                )
              ]
              spids: [933]
            )
          spids: [930 933]
        )
        (FuncDef
          name: Menu_Set_Directory
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:current_directory)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))}
                      spids: [1035]
                    )
                  ]
                  spids: [1033]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:WHIP_TITLE)
                      op: Equal
                      rhs: {(SQ <'Select your backup and restore location'>)}
                      spids: [1042]
                    )
                  ]
                  spids: [1042]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:OPTION)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [
                                      {(whiptail)}
                                      {(--title)}
                                      {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                      {(--menu)}
                                      {
                                        (DQ 
                                          (
'Please select the location where your system backup will be saved, and restored from.'
                                          ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nYour current location:') (Lit_Other '\\') (n) 
                                          ($ VSub_Name '$FP_TARGET_BACKUP')
                                        )
                                      }
                                      {(--cancel-button)}
                                      {(DQ (Back))}
                                      {(--backtitle)}
                                      {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                      {(15)}
                                      {(75)}
                                      {(3)}
                                      {(DQ (Search))}
                                      {(DQ ('Find previous backups in /mnt/*'))}
                                      {(DQ (List))}
                                      {(DQ ('Select from a list of available mounts/drives'))}
                                      {(DQ (Manual))}
                                      {(DQ ('Manually type a directory to use.'))}
                                    ]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 3
                                        arg_word: {(1)}
                                        spids: [1119]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 1
                                        arg_word: {(2)}
                                        spids: [1122]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 2
                                        arg_word: {(3)}
                                        spids: [1125]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [1049 1127]
                          )
                        }
                      spids: [1048]
                    )
                  ]
                  spids: [1048]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CHOICE)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [1130]
                    )
                  ]
                  spids: [1130]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Case
                          to_match: {(DQ ($ VSub_Name '$OPTION'))}
                          arms: [
                            (case_arm
                              pat_list: [{(Search)}]
                              action: [
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:fp_search_results)
                                      op: Equal
                                      rhs: {(DQ (/tmp/.dietpi-backup_search_results))}
                                      spids: [1170]
                                    )
                                  ]
                                  spids: [1168]
                                )
                                (C {(echo)} {(-e)} 
                                  {
                                    (DQ (Lit_Other '\\') (n) (Lit_Other '\\') 
                                      ('nSearching /mnt/* for previous backups, please wait... ') (Lit_Other '\\') ('n ') (Lit_Other '\\') (n)
                                    )
                                  }
                                )
                                (SimpleCommand
                                  words: [
                                    {(find)}
                                    {(/mnt)}
                                    {(-type)}
                                    {(f)}
                                    {(-name)}
                                    {(DQ ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM'))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: {(DQ ($ VSub_Name '$fp_search_results'))}
                                      spids: [1206]
                                    )
                                  ]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_Great
                                                  left: 
                                                    (ArithWord
                                                      w: 
                                                        {
                                                          (CommandSubPart
                                                            command_list: 
                                                              (CommandList
                                                                children: [
                                                                  (Pipeline
                                                                    children: [
                                                                      (C {(cat)} 
                                                                        {
                                                                          (DQ 
                                                                            ($ VSub_Name 
'$fp_search_results'
                                                                            )
                                                                          )
                                                                        }
                                                                      )
                                                                      (C {(wc)} {(-l)})
                                                                    ]
                                                                    negated: F
                                                                  )
                                                                ]
                                                              )
                                                            left_token: <Left_CommandSub '$('>
                                                            spids: [1222 1234]
                                                          )
                                                        }
                                                    )
                                                  right: (ArithWord w:{(Lit_Digits 0)})
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (SimpleCommand
                                          words: [{(readarray)} {(search_results_list)}]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Less
                                              fd: 16777215
                                              arg_word: {(DQ ($ VSub_Name '$fp_search_results'))}
                                              spids: [1252]
                                            )
                                          ]
                                        )
                                        (Assignment
                                          keyword: Assign_Local
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:search_results_whiptail)
                                              op: Equal
                                              rhs: {(ArrayLiteralPart)}
                                              spids: [1265]
                                            )
                                          ]
                                          spids: [1263]
                                        )
                                        (ForExpr
                                          init: 
                                            (BinaryAssign
                                              op_id: Arith_Equal
                                              left: (LhsName name:i)
                                              right: (ArithWord w:{(Lit_Digits 0)})
                                            )
                                          cond: 
                                            (ArithBinary
                                              op_id: Arith_Less
                                              left: (ArithVarRef name:i)
                                              right: 
                                                (ArithWord
                                                  w: 
                                                    {
                                                      (BracedVarSub
                                                        token: <VSub_Name search_results_list>
                                                        prefix_op: VSub_Pound
                                                        bracket_op: (WholeArray op_id:Lit_At)
                                                        spids: [1280 1286]
                                                      )
                                                    }
                                                )
                                            )
                                          update: 
                                            (UnaryAssign
                                              op_id: Node_PostDPlus
                                              child: (LhsName name:i)
                                            )
                                          body: 
                                            (DoGroup
                                              children: [
                                                (Assignment
                                                  keyword: Assign_Local
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:last_backup_date)
                                                      op: Equal
                                                      rhs: 
                                                        {
                                                          (CommandSubPart
                                                            command_list: 
                                                              (CommandList
                                                                children: [
                                                                  (Pipeline
                                                                    children: [
                                                                      (C {(grep)} {(SQ <Completed>)} 
                                                                        {
                                                                          (BracedVarSub
                                                                            token: 
                                                                              <VSub_Name 
search_results_list
                                                                              >
                                                                            bracket_op: 
                                                                              (ArrayIndex
                                                                                expr: 
                                                                                  (ArithWord
                                                                                    w: 
                                                                                      {
                                                                                        ($ VSub_Name 
'$i'
                                                                                        )
                                                                                      }
                                                                                  )
                                                                              )
                                                                            spids: [1310 1315]
                                                                          )
                                                                        }
                                                                      )
                                                                      (C {(tail)} {(-1)})
                                                                      (C {(sed)} {(SQ <'s/.*: //'>)})
                                                                    ]
                                                                    negated: F
                                                                  )
                                                                ]
                                                              )
                                                            left_token: <Left_CommandSub '$('>
                                                            spids: [1302 1331]
                                                          )
                                                        }
                                                      spids: [1301]
                                                    )
                                                  ]
                                                  spids: [1299]
                                                )
                                                (Assignment
                                                  keyword: Assign_Local
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:backup_directory)
                                                      op: Equal
                                                      rhs: 
                                                        {
                                                          (CommandSubPart
                                                            command_list: 
                                                              (CommandList
                                                                children: [
                                                                  (Pipeline
                                                                    children: [
                                                                      (C {(echo)} {(-e)} 
                                                                        {
                                                                          (BracedVarSub
                                                                            token: 
                                                                              <VSub_Name 
search_results_list
                                                                              >
                                                                            bracket_op: 
                                                                              (ArrayIndex
                                                                                expr: 
                                                                                  (ArithWord
                                                                                    w: 
                                                                                      {
                                                                                        ($ VSub_Name 
'$i'
                                                                                        )
                                                                                      }
                                                                                  )
                                                                              )
                                                                            spids: [1346 1351]
                                                                          )
                                                                        }
                                                                      )
                                                                      (C {(sed)} 
                                                                        {(SQ <'s/\\/'>) 
                                                                          (DQ 
                                                                            ($ VSub_Name 
'$BACKUP_STATS_FILENAME_SYSTEM'
                                                                            )
                                                                          ) (SQ <//g>)
                                                                        }
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                  )
                                                                ]
                                                              )
                                                            left_token: <Left_CommandSub '$('>
                                                            spids: [1340 1367]
                                                          )
                                                        }
                                                      spids: [1339]
                                                    )
                                                  ]
                                                  spids: [1337]
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:search_results_whiptail)
                                                      op: PlusEqual
                                                      rhs: 
                                                        {
                                                          (ArrayLiteralPart
                                                            words: [
                                                              {
                                                                (DQ ($ VSub_Name '$backup_directory'))
                                                              }
                                                              {
                                                                (DQ (': ') 
                                                                  ($ VSub_Name '$last_backup_date')
                                                                )
                                                              }
                                                            ]
                                                          )
                                                        }
                                                      spids: [1373]
                                                    )
                                                  ]
                                                  spids: [1373]
                                                )
                                              ]
                                              spids: [1295 1387]
                                            )
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:OPTION)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (CommandSubPart
                                                    command_list: 
                                                      (CommandList
                                                        children: [
                                                          (SimpleCommand
                                                            words: [
                                                              {(whiptail)}
                                                              {(--title)}
                                                              {(DQ ('Backups found.'))}
                                                              {(--menu)}
                                                              {
                                                                (DQ 
                                                                  (
'Please select a previous backup to use:'
                                                                  )
                                                                )
                                                              }
                                                              {(--cancel-button)}
                                                              {(DQ (Back))}
                                                              {(--backtitle)}
                                                              {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                                              {(12)}
                                                              {(70)}
                                                              {(3)}
                                                              {
                                                                (DQ 
                                                                  (BracedVarSub
                                                                    token: 
                                                                      <VSub_Name 
search_results_whiptail
                                                                      >
                                                                    bracket_op: 
                                                                      (WholeArray
                                                                        op_id: Lit_At
                                                                      )
                                                                    spids: [1426 1431]
                                                                  )
                                                                )
                                                              }
                                                            ]
                                                            redirects: [
                                                              (Redir
                                                                op_id: Redir_GreatAnd
                                                                fd: 3
                                                                arg_word: {(1)}
                                                                spids: [1434]
                                                              )
                                                              (Redir
                                                                op_id: Redir_GreatAnd
                                                                fd: 1
                                                                arg_word: {(2)}
                                                                spids: [1437]
                                                              )
                                                              (Redir
                                                                op_id: Redir_GreatAnd
                                                                fd: 2
                                                                arg_word: {(3)}
                                                                spids: [1440]
                                                              )
                                                            ]
                                                          )
                                                        ]
                                                      )
                                                    left_token: <Left_CommandSub '$('>
                                                    spids: [1392 1442]
                                                  )
                                                }
                                              spids: [1391]
                                            )
                                          ]
                                          spids: [1391]
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:CHOICE)
                                              op: Equal
                                              rhs: {($ VSub_QMark '$?')}
                                              spids: [1445]
                                            )
                                          ]
                                          spids: [1445]
                                        )
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (Sentence
                                                  child: 
                                                    (DParen
                                                      child: 
                                                        (ArithBinary
                                                          op_id: Arith_DEqual
                                                          left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                                          right: (ArithWord w:{(Lit_Digits 0)})
                                                        )
                                                    )
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              action: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:FP_TARGET_BACKUP)
                                                      op: Equal
                                                      rhs: {(DQ ($ VSub_Name '$OPTION'))}
                                                      spids: [1467]
                                                    )
                                                  ]
                                                  spids: [1467]
                                                )
                                              ]
                                              spids: [16777215 1463]
                                            )
                                          ]
                                          spids: [16777215 1474]
                                        )
                                        (C {(unset)} {(search_results_list)})
                                        (C {(unset)} {(search_results_whiptail)})
                                        (Sentence
                                          child: (C {(rm)} {(DQ ($ VSub_Name '$fp_search_results'))})
                                          terminator: <Op_Amp '&'>
                                        )
                                        (SimpleCommand
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: 16777215
                                              arg_word: {(/dev/null)}
                                              spids: [1499]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [16777215 1244]
                                    )
                                  ]
                                  else_action: [
                                    (C {(whiptail)} {(--title)} {(DQ ('No results'))} {(--msgbox)} 
                                      {(DQ ('No previous backups were found in /mnt/*'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(10)} {(60)}
                                    )
                                  ]
                                  spids: [1505 1535]
                                )
                              ]
                              spids: [1163 1164 1539 16777215]
                            )
                            (case_arm
                              pat_list: [{(Manual)}]
                              action: [(C {(Input_User_Directory)})]
                              spids: [1543 1544 1552 16777215]
                            )
                            (case_arm
                              pat_list: [{(List)}]
                              action: [
                                (C {(/DietPi/dietpi/dietpi-drive_manager)} {(1)})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:FP_TARGET_BACKUP)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(cat)} {(/tmp/dietpi-drive_manager_selmnt)})
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [1568 1572]
                                            )
                                          )
                                        }
                                      spids: [1566]
                                    )
                                  ]
                                  spids: [1566]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} 
                                              {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))} {(Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:FP_TARGET_BACKUP)
                                              op: Equal
                                              rhs: {(SQ </mnt>)}
                                              spids: [1597]
                                            )
                                          ]
                                          spids: [1597]
                                        )
                                      ]
                                      spids: [16777215 1593]
                                    )
                                  ]
                                  spids: [16777215 1604]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:FP_TARGET_BACKUP)
                                      op: PlusEqual
                                      rhs: {(SQ </dietpi-backup>)}
                                      spids: [1608]
                                    )
                                  ]
                                  spids: [1608]
                                )
                              ]
                              spids: [1556 1557 1615 16777215]
                            )
                          ]
                          spids: [1153 1159 1619]
                        )
                      ]
                      spids: [16777215 1149]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TARGETMENUID)
                          op: Equal
                          rhs: {(0)}
                          spids: [1631]
                        )
                      ]
                      spids: [1631]
                    )
                  ]
                  spids: [1623 1636]
                )
                (C {(Check_Supported_Directory_Location)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$TARGET_DIRECTORY_SUPPORTED')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:FP_TARGET_BACKUP)
                              op: Equal
                              rhs: {(DQ ($ VSub_Name '$current_directory'))}
                              spids: [1665]
                            )
                          ]
                          spids: [1665]
                        )
                      ]
                      spids: [16777215 1661]
                    )
                  ]
                  spids: [16777215 1672]
                )
              ]
              spids: [1029]
            )
          spids: [1026 1029]
        )
        (FuncDef
          name: Input_User_Directory
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:OPTION)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [
                                      {(whiptail)}
                                      {(--inputbox)}
                                      {
                                        (DQ ('Please enter the filepath to your directory. ') 
                                          (Lit_Other '\\') ('neg: /mnt/dietpi-backup') (Lit_Other '\\') ('n - Must be located inside /mnt/* ') (Lit_Other '\\') 
                                          ('n - Must be symlink compatible filesystem (ext2/3/4)')
                                        )
                                      }
                                      {(10)}
                                      {(70)}
                                      {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))}
                                      {(--title)}
                                      {(DQ ('Manual backup directory'))}
                                      {(--backtitle)}
                                      {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                    ]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 3
                                        arg_word: {(1)}
                                        spids: [1723]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 1
                                        arg_word: {(2)}
                                        spids: [1726]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 2
                                        arg_word: {(3)}
                                        spids: [1729]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [1688 1731]
                          )
                        }
                      spids: [1687]
                    )
                  ]
                  spids: [1687]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CHOICE)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [1734]
                    )
                  ]
                  spids: [1734]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:FP_TARGET_BACKUP)
                              op: Equal
                              rhs: {(DQ ($ VSub_Name '$OPTION'))}
                              spids: [1756]
                            )
                          ]
                          spids: [1756]
                        )
                      ]
                      spids: [16777215 1752]
                    )
                  ]
                  spids: [16777215 1763]
                )
              ]
              spids: [1683]
            )
          spids: [1680 1683]
        )
        (FuncDef
          name: Error_Filesystem_Not_Supported
          body: 
            (BraceGroup
              children: [
                (C {(G_DIETPI-NOTIFY)} {(1)} 
                  {(DQ ('Filesystem not supported in ') ($ VSub_Name '$FP_TARGET_BACKUP'))}
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (DParen child:(ArithWord w:{($ VSub_Name '$G_USER_INPUTS')}))
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(whiptail)} {(--title)} {(DQ (Error))} {(--msgbox)} 
                          {
                            (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (' Has a filesystem of: ') 
                              ($ VSub_Name '$TARGET_FILESYSTEM_TYPE') (', and is not supported.') (Lit_Other '\\') (n) (Lit_Other '\\') 
                              ('nThe filesystem must be EXT2/3/4 for symlink compatibility.')
                            )
                          } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(70)}
                        )
                      ]
                      spids: [16777215 1811]
                    )
                  ]
                  spids: [16777215 1848]
                )
              ]
              spids: [1786]
            )
          spids: [1783 1786]
        )
        (FuncDef
          name: Error_Not_Mnt_Directory
          body: 
            (BraceGroup
              children: [
                (C {(G_DIETPI-NOTIFY)} {(1)} 
                  {
                    (DQ ('Target directory is not inside /mnt (') ($ VSub_Name '$FP_TARGET_BACKUP') 
                      (')')
                    )
                  }
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (DParen child:(ArithWord w:{($ VSub_Name '$G_USER_INPUTS')}))
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(whiptail)} {(--title)} {(DQ ('Directory not supported'))} {(--msgbox)} 
                          {
                            (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') (n) (Lit_Other '\\') 
                              ('nYour current location is not supported.') (Lit_Other '\\') ('nThe location must be inside the /mnt/* directory.') (Lit_Other '\\') 
                              ('n - eg: /mnt/dietpi-backup')
                            )
                          } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(70)}
                        )
                      ]
                      spids: [16777215 1885]
                    )
                  ]
                  spids: [16777215 1923]
                )
              ]
              spids: [1859]
            )
          spids: [1856 1859]
        )
        (FuncDef
          name: Error_DietpiUserdata_Directory
          body: 
            (BraceGroup
              children: [
                (C {(G_DIETPI-NOTIFY)} {(1)} 
                  {
                    (DQ ('Target directory can not be contained within DietPi user data location (') 
                      ($ VSub_Name '$FP_TARGET_BACKUP') (')')
                    )
                  }
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (DParen child:(ArithWord w:{($ VSub_Name '$G_USER_INPUTS')}))
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(whiptail)} {(--title)} {(DQ ('Directory not supported'))} {(--msgbox)} 
                          {
                            (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') (n) (Lit_Other '\\') 
                              ('nYour current location is not supported.') (Lit_Other '\\') ('nTarget directory can not be contained within DietPi user data location (') 
                              ($ VSub_Name '$G_FP_DIETPI_USERDATA') (')')
                            )
                          } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(13)} {(70)}
                        )
                      ]
                      spids: [16777215 1960]
                    )
                  ]
                  spids: [16777215 1998]
                )
              ]
              spids: [1934]
            )
          spids: [1931 1934]
        )
        (FuncDef
          name: Error_Rsync_Already_Running
          body: 
            (BraceGroup
              children: [
                (C {(G_DIETPI-NOTIFY)} {(1)} {(DQ ('Another Rsync process is already running.'))})
                (SimpleCommand
                  words: [
                    {(echo)}
                    {(-e)}
                    {
                      (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' failed: ') 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(date)} {(Lit_Other '+') (DQ ('%d-%m-%Y_%H%M'))})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [2030 2037]
                        ) ('. Rsync is already running.')
                      )
                    }
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: 16777215
                      arg_word: 
                        {
                          (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                            ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                          )
                        }
                      spids: [2041]
                    )
                  ]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (DParen child:(ArithWord w:{($ VSub_Name '$G_USER_INPUTS')}))
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Error'))} 
                          {(--msgbox)} {(DQ ('A ') ($ VSub_Name '$RSYNC_MODE_TEXT') (' could not be started as rsync is already running.'))} 
                          {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(13)} {(60)}
                        )
                      ]
                      spids: [16777215 2065]
                    )
                  ]
                  spids: [16777215 2098]
                )
              ]
              spids: [2009]
            )
          spids: [2006 2009]
        )
        (FuncDef
          name: Error_Rsync_Failed
          body: 
            (BraceGroup
              children: [
                (C {(G_DIETPI-NOTIFY)} {(1)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' failed.'))})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (DParen child:(ArithWord w:{($ VSub_Name '$G_USER_INPUTS')}))
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' failed'))} 
                          {(--msgbox)} 
                          {
                            (DQ ('Your ') ($ VSub_Name '$RSYNC_MODE_TEXT') 
                              (' has failed. Please see the Log file for more information:') (Lit_Other '\\') (n) (Lit_Other '\\') (n) ($ VSub_Name '$LOGFILE')
                            )
                          } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(12)} {(60)}
                        )
                      ]
                      spids: [16777215 2138]
                    )
                  ]
                  spids: [16777215 2176]
                )
              ]
              spids: [2109]
            )
          spids: [2106 2109]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:RSYNC_MODE_TEXT) op:Equal rhs:{(0)} spids:[2196])]
          spids: [2196]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:BACKUP_MODE) op:Equal rhs:{(1)} spids:[2200])]
          spids: [2200]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:LOGFILE)
              op: Equal
              rhs: {(SQ </var/log/dietpi-backup.log>)}
              spids: [2212]
            )
          ]
          spids: [2212]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:FP_SOURCE_SYSTEM)
              op: Equal
              rhs: {(SQ </>)}
              spids: [2223]
            )
          ]
          spids: [2223]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:FP_TARGET_BACKUP)
              op: Equal
              rhs: {(SQ </mnt/dietpi-backup>)}
              spids: [2229]
            )
          ]
          spids: [2229]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:G_FP_DIETPI_USERDATA_ACTUAL)
              op: Equal
              rhs: 
                {
                  (DQ 
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(readlink)} {(-f)} {(/mnt/dietpi_userdata)})]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [2237 2243]
                    )
                  )
                }
              spids: [2235]
            )
          ]
          spids: [2235]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:BACKUP_STATS_FILENAME_SYSTEM)
              op: Equal
              rhs: {(SQ <.dietpi-backup_system_stats>)}
              spids: [2252]
            )
          ]
          spids: [2252]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:BACKUP_STATS_FILENAME_USERDATA)
              op: Equal
              rhs: {(SQ <.dietpi-backup_userdata_stats>)}
              spids: [2258]
            )
          ]
          spids: [2258]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP)
              op: Equal
              rhs: {(SQ </tmp/.dietpi-backup_filter_inc_exc>)}
              spids: [2269]
            )
          ]
          spids: [2269]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:FP_EXCLUDE_USER)
              op: Equal
              rhs: {(SQ </DietPi/dietpi/.dietpi-backup_exclude>)}
              spids: [2275]
            )
          ]
          spids: [2275]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:FP_INCLUDE_USER)
              op: Equal
              rhs: {(SQ </DietPi/dietpi/.dietpi-backup_include>)}
              spids: [2281]
            )
          ]
          spids: [2281]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:TARGET_FILESYSTEM_TYPE)
              op: Equal
              rhs: {(0)}
              spids: [2292]
            )
          ]
          spids: [2292]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:TARGET_DIRECTORY_SUPPORTED)
              op: Equal
              rhs: {(0)}
              spids: [2296]
            )
          ]
          spids: [2296]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:aSUPPORTED_FILESYSTEMS)
              op: Equal
              rhs: 
                {
                  (ArrayLiteralPart
                    words: [
                      {(SQ <ext4>)}
                      {(SQ <ext3>)}
                      {(SQ <ext2>)}
                      {(SQ <nfs>)}
                      {(SQ <nfs4>)}
                      {(SQ <btrfs>)}
                    ]
                  )
                }
              spids: [2300]
            )
          ]
          spids: [2300]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:RSYNC_RUN_OPTIONS_SYSTEM_BACKUP)
              op: Equal
              rhs: 
                {
                  (DQ ('-alHpvP --delete --log-file=') ($ VSub_Name '$LOGFILE') (' --include-from=') 
                    ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP')
                  )
                }
              spids: [2342]
            )
          ]
          spids: [2342]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:RSYNC_RUN_OPTIONS_USERDATA_BACKUP)
              op: Equal
              rhs: {(DQ ('-alHpvP --delete --log-file=') ($ VSub_Name '$LOGFILE'))}
              spids: [2351]
            )
          ]
          spids: [2351]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:BACKUP_RESTORE_FAILED)
              op: Equal
              rhs: {(0)}
              spids: [2363]
            )
          ]
          spids: [2363]
        )
        (FuncDef
          name: Print_Date
          body: 
            (BraceGroup
              children: [
                (C {(echo)} {(-e)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(date)} {(Lit_Other '+') (DQ ('%d-%m-%Y %H:%M'))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [2384 2391]
                      )
                    )
                  }
                )
              ]
              spids: [2375]
            )
          spids: [2372 2375]
        )
        (FuncDef
          name: Create_Filter_Include_Exclude
          body: 
            (BraceGroup
              children: [
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (HereDoc
                      op_id: Redir_DLess
                      fd: 16777215
                      body: {(DQ ('#INCLUDE\n') ('#Global - Folders\n') ('#+ /example/\n'))}
                      do_expansion: True
                      here_end: _EOF_
                      was_filled: T
                      spids: [2413]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))}
                      spids: [2417]
                    )
                  ]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FP_INCLUDE_USER'))} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (SimpleCommand
                          words: [{(echo)} {(-e)} {(DQ (Lit_Other '\\') ('n#User include file'))}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))}
                              spids: [2459]
                            )
                          ]
                        )
                        (While
                          cond: [(C {(read)} {(-r)} {(line)})]
                          body: 
                            (DoGroup
                              children: [
                                (SimpleCommand
                                  words: [{(echo)} {(-e)} {(DQ ('+ ') ($ VSub_Name '$line'))}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_DGreat
                                      fd: 16777215
                                      arg_word: 
                                        {
                                          (DQ 
                                            ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP')
                                          )
                                        }
                                      spids: [2489]
                                    )
                                  ]
                                )
                              ]
                              spids: [2476 2497]
                            )
                          redirects: [
                            (Redir
                              op_id: Redir_Less
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$FP_INCLUDE_USER'))}
                              spids: [2499]
                            )
                          ]
                        )
                      ]
                      spids: [16777215 2446]
                    )
                  ]
                  spids: [16777215 2507]
                )
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (HereDoc
                      op_id: Redir_DLess
                      fd: 16777215
                      body: 
                        {
                          (DQ ('\n') ('#EXCLUDE\n') ('#Global - Folders\n') ('- ') 
                            ($ VSub_Name '$FP_TARGET_BACKUP') ('/\n') ('- /mnt/\n') ('- /media/\n') ('- /dev/\n') ('- /proc/\n') ('- /sys/\n') ('- /tmp/\n') ('- /run/\n') 
                            ('\n') ('#Apt package cache (.deb)\n') ('- /var/cache/apt/archives/\n') ('\n') ('#Manpages / Docs\n') 
                            ('- /usr/share/man/\n') ('- /usr/share/doc/\n') ('\n') ('#Global - Files\n') ('- ') ($ VSub_Name '$LOGFILE') ('\n') ('- ') 
                            ($ VSub_Name '$FP_DIETPIBACKUP_SETTINGS') ('\n') ('- ') ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM') ('\n') ('- ') 
                            ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA') ('\n') ('- /var/swap\n') ('- fake-hwclock.data\n') ('- *.tmp\n') ('\n') ('#MS Windows specific\n') 
                            ('- Thumbs.db\n') ('- desktop.ini\n')
                          )
                        }
                      do_expansion: True
                      here_end: _EOF_
                      was_filled: T
                      spids: [2517]
                    )
                    (Redir
                      op_id: Redir_DGreat
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))}
                      spids: [2521]
                    )
                  ]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FP_EXCLUDE_USER'))} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (SimpleCommand
                          words: [{(echo)} {(-e)} {(DQ (Lit_Other '\\') ('n#User exclude file'))}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))}
                              spids: [2601]
                            )
                          ]
                        )
                        (While
                          cond: [(C {(read)} {(-r)} {(line)})]
                          body: 
                            (DoGroup
                              children: [
                                (SimpleCommand
                                  words: [{(echo)} {(-e)} {(DQ ('- ') ($ VSub_Name '$line'))}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_DGreat
                                      fd: 16777215
                                      arg_word: 
                                        {
                                          (DQ 
                                            ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP')
                                          )
                                        }
                                      spids: [2630]
                                    )
                                  ]
                                )
                              ]
                              spids: [2617 2638]
                            )
                          redirects: [
                            (Redir
                              op_id: Redir_Less
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_USER'))}
                              spids: [2640]
                            )
                          ]
                        )
                      ]
                      spids: [16777215 2588]
                    )
                  ]
                  spids: [16777215 2648]
                )
                (C {(cp)} {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))} 
                  {(/tmp/.dietpi-backup_inc_exc_list)}
                )
              ]
              spids: [2403]
            )
          spids: [2400 2403]
        )
        (FuncDef
          name: Services_Stop
          body: (BraceGroup children:[(C {(/DietPi/dietpi/dietpi-services)} {(stop)})] spids:[2673])
          spids: [2670 2673]
        )
        (FuncDef
          name: Services_Start
          body: (BraceGroup children:[(C {(/DietPi/dietpi/dietpi-services)} {(start)})] spids:[2688])
          spids: [2685 2688]
        )
        (FuncDef
          name: Run_Backup
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:RSYNC_MODE_TEXT)
                      op: Equal
                      rhs: {(DQ (Backup))}
                      spids: [2707]
                    )
                  ]
                  spids: [2707]
                )
                (C {(G_DIETPI-NOTIFY)} {(3)} {(DietPi-Backup)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT'))})
                (C {(Check_Supported_Directory_Location)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$TARGET_DIRECTORY_SUPPORTED')})
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))})
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                                      {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(whiptail)} {(--title)} 
                                          {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' failed.'))} {(--msgbox)} {(DQ ('Unable to create ') ($ VSub_Name '$FP_TARGET_BACKUP'))} {(--backtitle)} 
                                          {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(10)} {(60)}
                                        )
                                      ]
                                      spids: [16777215 2803]
                                    )
                                  ]
                                  spids: [16777215 2835]
                                )
                              ]
                              spids: [16777215 2789]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: 
                                            (ArithWord
                                              w: 
                                                {
                                                  (CommandSubPart
                                                    command_list: 
                                                      (CommandList
                                                        children: [
                                                          (Pipeline
                                                            children: [
                                                              (C {(ps)} {(aux)})
                                                              (C {(grep)} {(-ci)} {(-m1)} 
                                                                {(DQ ('[r]sync'))}
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                        ]
                                                      )
                                                    left_token: <Left_CommandSub '$('>
                                                    spids: [2847 2863]
                                                  )
                                                }
                                            )
                                          right: (ArithWord w:{(Lit_Digits 1)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(Error_Rsync_Already_Running)})]
                              spids: [2843 2873]
                            )
                          ]
                          else_action: [
                            (SimpleCommand
                              words: [
                                {(echo)}
                                {(-e)}
                                {
                                  (DQ ('DietPi-Backup Log File. ') 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (C {(date)} {(Lit_Other '+') (DQ ('%d-%m-%Y_%H%M'))})
                                          ]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [2896 2903]
                                    ) (Lit_Other '\\') (n) (Lit_Other '\\') (n)
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$LOGFILE'))}
                                  spids: [2910]
                                )
                              ]
                            )
                            (C {(Create_Filter_Include_Exclude)})
                            (C {(Services_Stop)})
                            (C {(G_DIETPI-NOTIFY)} {(2)} 
                              {(DQ ('Backing up to: ') ($ VSub_Name '$FP_TARGET_BACKUP'))}
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:BACKUP_RESTORE_FAILED)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [2941]
                                )
                              ]
                              spids: [2941]
                            )
                            (While
                              cond: [(C {(true)})]
                              body: 
                                (DoGroup
                                  children: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:RSYNC_MODE_TEXT)
                                          op: Equal
                                          rhs: {(SQ <'Backup (system)'>)}
                                          spids: [2959]
                                        )
                                      ]
                                      spids: [2959]
                                    )
                                    (C {(rsync)} {($ VSub_Name '$RSYNC_RUN_OPTIONS_SYSTEM_BACKUP')} 
                                      {(DQ ($ VSub_Name '$FP_SOURCE_SYSTEM'))} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP')) (/dietpi-backup_system/)}
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DParen
                                                  child: 
                                                    (ArithBinary
                                                      op_id: Arith_DEqual
                                                      left: (ArithWord w:{($ VSub_QMark '$?')})
                                                      right: (ArithWord w:{(Lit_Digits 0)})
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(G_DIETPI-NOTIFY)} {(0)} 
                                              {
                                                (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Completed.') 
                                                  (Lit_Other '\\') (n)
                                                )
                                              }
                                            )
                                            (SimpleCommand
                                              words: [
                                                {(echo)}
                                                {(-e)}
                                                {
                                                  (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                                    (' Completed    : ') 
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [(C {(Print_Date)})]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [3018 3020]
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_DGreat
                                                  fd: 16777215
                                                  arg_word: 
                                                    {
                                                      (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                        ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                                                      )
                                                    }
                                                  spids: [3023]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [16777215 2994]
                                        )
                                      ]
                                      else_action: [
                                        (C {(G_DIETPI-NOTIFY)} {(1)} 
                                          {
                                            (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' FAILED.') 
                                              (Lit_Other '\\') (n)
                                            )
                                          }
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                                (' FAILED       : ') 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [(C {(Print_Date)})]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [3056 3058]
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_DGreat
                                              fd: 16777215
                                              arg_word: 
                                                {
                                                  (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                    ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                                                  )
                                                }
                                              spids: [3061]
                                            )
                                          ]
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:BACKUP_RESTORE_FAILED)
                                              op: Equal
                                              rhs: {(1)}
                                              spids: [3070]
                                            )
                                          ]
                                          spids: [3070]
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Break break>
                                        )
                                      ]
                                      spids: [3033 3078]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:RSYNC_MODE_TEXT)
                                          op: Equal
                                          rhs: {(SQ <'Backup (user data)'>)}
                                          spids: [3086]
                                        )
                                      ]
                                      spids: [3086]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DParen
                                                  child: 
                                                    (ArithBinary
                                                      op_id: Arith_DEqual
                                                      left: 
                                                        (ArithWord
                                                          w: {($ VSub_Name '$BACKUP_MODE')}
                                                        )
                                                      right: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(rsync)} 
                                              {($ VSub_Name '$RSYNC_RUN_OPTIONS_USERDATA_BACKUP')} {(DQ ($ VSub_Name '$G_FP_DIETPI_USERDATA_ACTUAL')) (/)} 
                                              {(DQ ($ VSub_Name '$FP_TARGET_BACKUP')) 
                                                (/dietpi-backup_userdata/)
                                              }
                                            )
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (DParen
                                                          child: 
                                                            (ArithBinary
                                                              op_id: Arith_DEqual
                                                              left: (ArithWord w:{($ VSub_QMark '$?')})
                                                              right: (ArithWord w:{(Lit_Digits 0)})
                                                            )
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {(G_DIETPI-NOTIFY)} {(0)} 
                                                      {
                                                        (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                                          (' Completed.') (Lit_Other '\\') (n)
                                                        )
                                                      }
                                                    )
                                                    (SimpleCommand
                                                      words: [
                                                        {(echo)}
                                                        {(-e)}
                                                        {
                                                          (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                                            (' Completed : ') 
                                                            (CommandSubPart
                                                              command_list: 
                                                                (CommandList
                                                                  children: [(C {(Print_Date)})]
                                                                )
                                                              left_token: <Left_CommandSub '$('>
                                                              spids: [3164 3166]
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op_id: Redir_DGreat
                                                          fd: 16777215
                                                          arg_word: 
                                                            {
                                                              (DQ ($ VSub_Name '$FP_TARGET_BACKUP') 
                                                                (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA')
                                                              )
                                                            }
                                                          spids: [3169]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [16777215 3140]
                                                )
                                              ]
                                              else_action: [
                                                (C {(G_DIETPI-NOTIFY)} {(1)} 
                                                  {
                                                    (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' FAILED.') 
                                                      (Lit_Other '\\') (n)
                                                    )
                                                  }
                                                )
                                                (SimpleCommand
                                                  words: [
                                                    {(echo)}
                                                    {(-e)}
                                                    {
                                                      (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                                        (' FAILED    : ') 
                                                        (CommandSubPart
                                                          command_list: 
                                                            (CommandList
                                                              children: [(C {(Print_Date)})]
                                                            )
                                                          left_token: <Left_CommandSub '$('>
                                                          spids: [3202 3204]
                                                        )
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op_id: Redir_DGreat
                                                      fd: 16777215
                                                      arg_word: 
                                                        {
                                                          (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                            ($ VSub_Name 
'$BACKUP_STATS_FILENAME_USERDATA'
                                                            )
                                                          )
                                                        }
                                                      spids: [3207]
                                                    )
                                                  ]
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:BACKUP_RESTORE_FAILED)
                                                      op: Equal
                                                      rhs: {(1)}
                                                      spids: [3216]
                                                    )
                                                  ]
                                                  spids: [3216]
                                                )
                                                (ControlFlow
                                                  token: <ControlFlow_Break break>
                                                )
                                              ]
                                              spids: [3179 3224]
                                            )
                                          ]
                                          spids: [16777215 3107]
                                        )
                                      ]
                                      spids: [16777215 3228]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [2951 3240]
                                )
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: (ArithWord w:{($ VSub_Name '$BACKUP_RESTORE_FAILED')})
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(Error_Rsync_Failed)})]
                                  spids: [16777215 3254]
                                )
                              ]
                              else_action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:RSYNC_MODE_TEXT)
                                              op: Equal
                                              rhs: {(SQ <Backup>)}
                                              spids: [3280]
                                            )
                                          ]
                                          spids: [3280]
                                        )
                                        (C {(whiptail)} {(--title)} 
                                          {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' completed'))} {(--msgbox)} 
                                          {
                                            (DQ ('Your ') ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                              (' was saved to:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') (n) (Lit_Other '\\') 
                                              ('nLog file: ') ($ VSub_Name '$LOGFILE')
                                            )
                                          } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(60)}
                                        )
                                      ]
                                      spids: [16777215 3276]
                                    )
                                  ]
                                  spids: [16777215 3323]
                                )
                              ]
                              spids: [3262 3327]
                            )
                            (C {(Services_Start)})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TARGETMENUID)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [3339]
                                )
                              ]
                              spids: [3339]
                            )
                          ]
                          spids: [2881 3344]
                        )
                      ]
                      spids: [16777215 2752]
                    )
                  ]
                  spids: [16777215 3347]
                )
              ]
              spids: [2703]
            )
          spids: [2700 2703]
        )
        (FuncDef
          name: Run_Restore
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:RSYNC_MODE_TEXT)
                      op: Equal
                      rhs: {(DQ (Restore))}
                      spids: [3362]
                    )
                  ]
                  spids: [3362]
                )
                (C {(G_DIETPI-NOTIFY)} {(3)} {(DietPi-Backup)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT'))})
                (C {(Check_Supported_Directory_Location)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$TARGET_DIRECTORY_SUPPORTED')})
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} 
                                      {
                                        (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                          ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                                        )
                                      } {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(G_DIETPI-NOTIFY)} {(2)} 
                                  {
                                    (DQ ('No Backup was found in ') ($ VSub_Name '$FP_TARGET_BACKUP'))
                                  }
                                )
                                (C {(G_DIETPI-NOTIFY)} {(1)} 
                                  {
                                    (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Failed.') (Lit_Other '\\') 
                                      (n)
                                    )
                                  }
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(whiptail)} {(--title)} 
                                          {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' failed'))} {(--msgbox)} 
                                          {
                                            (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                              ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM') (' does not exist') (Lit_Other '\\') (n) (Lit_Other '\\') ('nHave you created a backup?')
                                            )
                                          } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(70)}
                                        )
                                      ]
                                      spids: [16777215 3468]
                                    )
                                  ]
                                  spids: [16777215 3506]
                                )
                              ]
                              spids: [16777215 3432]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: 
                                            (ArithWord
                                              w: 
                                                {
                                                  (CommandSubPart
                                                    command_list: 
                                                      (CommandList
                                                        children: [
                                                          (Pipeline
                                                            children: [
                                                              (C {(ps)} {(aux)})
                                                              (C {(grep)} {(-ci)} {(-m1)} 
                                                                {(DQ ('[r]sync'))}
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                        ]
                                                      )
                                                    left_token: <Left_CommandSub '$('>
                                                    spids: [3518 3534]
                                                  )
                                                }
                                            )
                                          right: (ArithWord w:{(Lit_Digits 1)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(Error_Rsync_Already_Running)})]
                              spids: [3514 3544]
                            )
                          ]
                          else_action: [
                            (C {(Create_Filter_Include_Exclude)})
                            (C {(Services_Stop)})
                            (C {(G_DIETPI-NOTIFY)} {(2)} 
                              {(DQ ('Restoring from: ') ($ VSub_Name '$FP_TARGET_BACKUP'))}
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:BACKUP_RESTORE_FAILED)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [3583]
                                )
                              ]
                              spids: [3583]
                            )
                            (While
                              cond: [(C {(true)})]
                              body: 
                                (DoGroup
                                  children: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:RSYNC_MODE_TEXT)
                                          op: Equal
                                          rhs: {(SQ <'Restore (system)'>)}
                                          spids: [3601]
                                        )
                                      ]
                                      spids: [3601]
                                    )
                                    (C {(rsync)} {($ VSub_Name '$RSYNC_RUN_OPTIONS_SYSTEM_BACKUP')} 
                                      {(DQ ($ VSub_Name '$FP_TARGET_BACKUP')) 
                                        (/dietpi-backup_system/)
                                      } {(DQ ($ VSub_Name '$FP_SOURCE_SYSTEM'))}
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DParen
                                                  child: 
                                                    (ArithBinary
                                                      op_id: Arith_DEqual
                                                      left: (ArithWord w:{($ VSub_QMark '$?')})
                                                      right: (ArithWord w:{(Lit_Digits 0)})
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(G_DIETPI-NOTIFY)} {(0)} 
                                              {
                                                (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Completed.') 
                                                  (Lit_Other '\\') (n)
                                                )
                                              }
                                            )
                                            (SimpleCommand
                                              words: [
                                                {(echo)}
                                                {(-e)}
                                                {
                                                  (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                                    (' Completed    : ') 
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [(C {(Print_Date)})]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [3659 3661]
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_DGreat
                                                  fd: 16777215
                                                  arg_word: 
                                                    {
                                                      (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                        ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                                                      )
                                                    }
                                                  spids: [3664]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [16777215 3636]
                                        )
                                      ]
                                      else_action: [
                                        (C {(G_DIETPI-NOTIFY)} {(1)} 
                                          {
                                            (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' FAILED.') 
                                              (Lit_Other '\\') (n)
                                            )
                                          }
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                                (' FAILED       : ') 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [(C {(Print_Date)})]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [3697 3699]
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_DGreat
                                              fd: 16777215
                                              arg_word: 
                                                {
                                                  (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                    ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                                                  )
                                                }
                                              spids: [3702]
                                            )
                                          ]
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:BACKUP_RESTORE_FAILED)
                                              op: Equal
                                              rhs: {(1)}
                                              spids: [3711]
                                            )
                                          ]
                                          spids: [3711]
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Break break>
                                        )
                                      ]
                                      spids: [3674 3719]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:RSYNC_MODE_TEXT)
                                          op: Equal
                                          rhs: {(SQ <'Restore (user data)'>)}
                                          spids: [3727]
                                        )
                                      ]
                                      spids: [3727]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DParen
                                                  child: 
                                                    (ArithBinary
                                                      op_id: Arith_DEqual
                                                      left: 
                                                        (ArithWord
                                                          w: {($ VSub_Name '$BACKUP_MODE')}
                                                        )
                                                      right: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (C {(Lit_Other '[')} {(-f)} 
                                                          {
                                                            (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                              ($ VSub_Name 
'$BACKUP_STATS_FILENAME_USERDATA'
                                                              )
                                                            )
                                                          } {(Lit_Other ']')}
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {(rsync)} 
                                                      {
                                                        ($ VSub_Name 
'$RSYNC_RUN_OPTIONS_USERDATA_BACKUP'
                                                        )
                                                      } {(DQ ($ VSub_Name '$FP_TARGET_BACKUP')) (/dietpi-backup_userdata/)} 
                                                      {
                                                        (DQ 
                                                          ($ VSub_Name '$G_FP_DIETPI_USERDATA_ACTUAL')
                                                        ) (/)
                                                      }
                                                    )
                                                    (If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (Sentence
                                                              child: 
                                                                (DParen
                                                                  child: 
                                                                    (ArithBinary
                                                                      op_id: Arith_DEqual
                                                                      left: 
                                                                        (ArithWord
                                                                          w: {($ VSub_QMark '$?')}
                                                                        )
                                                                      right: 
                                                                        (ArithWord
                                                                          w: {(Lit_Digits 0)}
                                                                        )
                                                                    )
                                                                )
                                                              terminator: <Op_Semi ';'>
                                                            )
                                                          ]
                                                          action: [
                                                            (C {(G_DIETPI-NOTIFY)} {(0)} 
                                                              {
                                                                (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                                                  (' Completed.') (Lit_Other '\\') (n)
                                                                )
                                                              }
                                                            )
                                                            (SimpleCommand
                                                              words: [
                                                                {(echo)}
                                                                {(-e)}
                                                                {
                                                                  (DQ 
                                                                    ($ VSub_Name '$RSYNC_MODE_TEXT') (' Completed : ') 
                                                                    (CommandSubPart
                                                                      command_list: 
                                                                        (CommandList
                                                                          children: [(C {(Print_Date)})]
                                                                        )
                                                                      left_token: 
                                                                        <Left_CommandSub '$('>
                                                                      spids: [3827 3829]
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op_id: Redir_DGreat
                                                                  fd: 16777215
                                                                  arg_word: 
                                                                    {
                                                                      (DQ 
                                                                        ($ VSub_Name 
'$FP_TARGET_BACKUP'
                                                                        ) (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA')
                                                                      )
                                                                    }
                                                                  spids: [3832]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [16777215 3804]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {(G_DIETPI-NOTIFY)} {(1)} 
                                                          {
                                                            (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                                              (' FAILED.') (Lit_Other '\\') (n)
                                                            )
                                                          }
                                                        )
                                                        (SimpleCommand
                                                          words: [
                                                            {(echo)}
                                                            {(-e)}
                                                            {
                                                              (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                                                (' FAILED    : ') 
                                                                (CommandSubPart
                                                                  command_list: 
                                                                    (CommandList
                                                                      children: [(C {(Print_Date)})]
                                                                    )
                                                                  left_token: <Left_CommandSub '$('>
                                                                  spids: [3865 3867]
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op_id: Redir_DGreat
                                                              fd: 16777215
                                                              arg_word: 
                                                                {
                                                                  (DQ 
                                                                    ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA')
                                                                  )
                                                                }
                                                              spids: [3870]
                                                            )
                                                          ]
                                                        )
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (LhsName
                                                                  name: BACKUP_RESTORE_FAILED
                                                                )
                                                              op: Equal
                                                              rhs: {(1)}
                                                              spids: [3879]
                                                            )
                                                          ]
                                                          spids: [3879]
                                                        )
                                                        (ControlFlow
                                                          token: <ControlFlow_Break break>
                                                        )
                                                      ]
                                                      spids: [3842 3887]
                                                    )
                                                  ]
                                                  spids: [16777215 3771]
                                                )
                                              ]
                                              else_action: [
                                                (C {(G_DIETPI-NOTIFY)} {(2)} 
                                                  {
                                                    (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                                      (': No backup exists, skipping...') (Lit_Other '\\') (n)
                                                    )
                                                  }
                                                )
                                              ]
                                              spids: [3891 3908]
                                            )
                                          ]
                                          spids: [16777215 3748]
                                        )
                                      ]
                                      spids: [16777215 3912]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [3593 3924]
                                )
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: (ArithWord w:{($ VSub_Name '$BACKUP_RESTORE_FAILED')})
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(Error_Rsync_Failed)})]
                                  spids: [16777215 3938]
                                )
                              ]
                              else_action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:RSYNC_MODE_TEXT)
                                              op: Equal
                                              rhs: {(SQ <Restore>)}
                                              spids: [3964]
                                            )
                                          ]
                                          spids: [3964]
                                        )
                                        (C {(whiptail)} {(--title)} 
                                          {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' completed'))} {(--msgbox)} 
                                          {
                                            (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' completed from:') 
                                              (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') (n) (Lit_Other '\\') ('nLog file: ') 
                                              ($ VSub_Name '$LOGFILE') (Lit_Other '\\') (n) (Lit_Other '\\') ('nA Reboot is required.')
                                            )
                                          } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(13)} {(60)}
                                        )
                                      ]
                                      spids: [16777215 3960]
                                    )
                                  ]
                                  spids: [16777215 4010]
                                )
                              ]
                              spids: [3946 4014]
                            )
                            (C {(Services_Start)})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TARGETMENUID)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [4026]
                                )
                              ]
                              spids: [4026]
                            )
                          ]
                          spids: [3556 4031]
                        )
                      ]
                      spids: [16777215 3407]
                    )
                  ]
                  spids: [16777215 4035]
                )
              ]
              spids: [3358]
            )
          spids: [3355 3358]
        )
        (FuncDef
          name: Check_Install_PreReqs
          body: (BraceGroup children:[(C {(G_AG_CHECK_INSTALL_PREREQ)} {(rsync)})] spids:[4046])
          spids: [4043 4046]
        )
        (FuncDef
          name: Check_Supported_Directory_Location
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGET_DIRECTORY_SUPPORTED)
                      op: Equal
                      rhs: {(0)}
                      spids: [4067]
                    )
                  ]
                  spids: [4067]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))}
                                      right: 
                                        {(DQ ($ VSub_Name '$G_FP_DIETPI_USERDATA')) (Lit_Other '*')}
                                    )
                                )
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))}
                                      right: 
                                        {(DQ ($ VSub_Name '$G_FP_DIETPI_USERDATA_ACTUAL')) 
                                          (Lit_Other '*')
                                        }
                                    )
                                )
                              ]
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [(C {(Error_DietpiUserdata_Directory)})]
                      spids: [16777215 4112]
                    )
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))}
                                  right: {(DQ (/mnt/)) (Lit_Other '*')}
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:directory_generated)
                              op: Equal
                              rhs: {(0)}
                              spids: [4152]
                            )
                          ]
                          spids: [4150]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                                      {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:directory_generated)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [4184]
                                    )
                                  ]
                                  spids: [4184]
                                )
                              ]
                              spids: [16777215 4171]
                            )
                          ]
                          spids: [16777215 4189]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:TARGET_FILESYSTEM_TYPE)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Pipeline
                                              children: [
                                                (C {(df)} {(-T)} {($ VSub_Name '$FP_TARGET_BACKUP')})
                                                (C {(sed)} {(-n)} {(SQ <2p>)})
                                                (C {(awk)} {(SQ <'{print $2}'>)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [4195 4220]
                                    )
                                  )
                                }
                              spids: [4193]
                            )
                          ]
                          spids: [4193]
                        )
                        (ForExpr
                          init: 
                            (BinaryAssign
                              op_id: Arith_Equal
                              left: (LhsName name:i)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          cond: 
                            (ArithBinary
                              op_id: Arith_Less
                              left: (ArithVarRef name:i)
                              right: 
                                (ArithWord
                                  w: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name aSUPPORTED_FILESYSTEMS>
                                        prefix_op: VSub_Pound
                                        bracket_op: (WholeArray op_id:Lit_At)
                                        spids: [4234 4240]
                                      )
                                    }
                                )
                            )
                          update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                          body: 
                            (DoGroup
                              children: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} 
                                              {(DQ ($ VSub_Name '$TARGET_FILESYSTEM_TYPE'))} {(Lit_Other '=')} 
                                              {
                                                (DQ 
                                                  (BracedVarSub
                                                    token: <VSub_Name aSUPPORTED_FILESYSTEMS>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{($ VSub_Name '$i')})
                                                      )
                                                    spids: [4264 4269]
                                                  )
                                                )
                                              } {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:TARGET_DIRECTORY_SUPPORTED)
                                              op: Equal
                                              rhs: {(1)}
                                              spids: [4279]
                                            )
                                          ]
                                          spids: [4279]
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Break break>
                                        )
                                      ]
                                      spids: [16777215 4275]
                                    )
                                  ]
                                  spids: [16777215 4287]
                                )
                              ]
                              spids: [4249 4291]
                            )
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$directory_generated')})
                                          right: (ArithWord w:{(Lit_Digits 1)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(rm)} {(-R)} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))})]
                              spids: [16777215 4313]
                            )
                          ]
                          spids: [16777215 4327]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: 
                                            (ArithWord
                                              w: {($ VSub_Name '$TARGET_DIRECTORY_SUPPORTED')}
                                            )
                                          right: (ArithWord w:{(Lit_Digits 0)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(Error_Filesystem_Not_Supported)})]
                              spids: [16777215 4349]
                            )
                          ]
                          spids: [16777215 4357]
                        )
                      ]
                      spids: [4124 4142]
                    )
                  ]
                  else_action: [(C {(Error_Not_Mnt_Directory)})]
                  spids: [4365 4373]
                )
              ]
              spids: [4063]
            )
          spids: [4060 4063]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:FP_DIETPIBACKUP_SETTINGS)
              op: Equal
              rhs: {(DQ (/DietPi/dietpi/.dietpi-backup_settings))}
              spids: [4397]
            )
          ]
          spids: [4397]
        )
        (FuncDef
          name: Write_Settings_File
          body: 
            (BraceGroup
              children: [
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (HereDoc
                      op_id: Redir_DLess
                      fd: 16777215
                      body: 
                        {
                          (DQ ('FP_TARGET_BACKUP=') ($ VSub_Name '$FP_TARGET_BACKUP') ('\n') 
                            ('BACKUP_MODE=') ($ VSub_Name '$BACKUP_MODE') ('\n')
                          )
                        }
                      do_expansion: True
                      here_end: _EOF_
                      was_filled: T
                      spids: [4413]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$FP_DIETPIBACKUP_SETTINGS'))}
                      spids: [4417]
                    )
                  ]
                )
              ]
              spids: [4407]
            )
          spids: [4404 4407]
        )
        (FuncDef
          name: Read_Settings_File
          body: 
            (BraceGroup
              children: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FP_DIETPIBACKUP_SETTINGS'))} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [(C {(.)} {(DQ ($ VSub_Name '$FP_DIETPIBACKUP_SETTINGS'))})]
                      spids: [16777215 4456]
                    )
                  ]
                  spids: [16777215 4468]
                )
              ]
              spids: [4439]
            )
          spids: [4436 4439]
        )
        (C {(Check_Install_PreReqs)})
        (C {(Read_Settings_File)})
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')})
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:FP_TARGET_BACKUP)
                      op: Equal
                      rhs: {($ VSub_Number '$2')}
                      spids: [4526]
                    )
                  ]
                  spids: [4526]
                )
              ]
              spids: [16777215 4522]
            )
          ]
          spids: [16777215 4531]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_DEqual
                          left: (ArithWord w:{($ VSub_Name '$INPUT')})
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [(C {(Run_Backup)})]
              spids: [16777215 4557]
            )
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_DEqual
                          left: (ArithWord w:{($ VSub_Name '$INPUT')})
                          right: (ArithUnary op_id:Node_UnaryMinus child:(ArithWord w:{(Lit_Digits 1)}))
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [(C {(Run_Restore)})]
              spids: [4569 4584]
            )
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_DEqual
                          left: (ArithWord w:{($ VSub_Name '$INPUT')})
                          right: (ArithWord w:{(Lit_Digits 0)})
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (While
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Great
                              left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                              right: 
                                (ArithUnary
                                  op_id: Node_UnaryMinus
                                  child: (ArithWord w:{(Lit_Digits 1)})
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  body: 
                    (DoGroup
                      children: [
                        (C {(clear)})
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                          right: (ArithWord w:{(Lit_Digits 0)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(Menu_Main)})]
                              spids: [16777215 4655]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                          right: (ArithWord w:{(Lit_Digits 1)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(Menu_Set_Directory)})]
                              spids: [4663 4677]
                            )
                          ]
                          spids: [16777215 4685]
                        )
                      ]
                      spids: [4633 4689]
                    )
                )
                (C {(Write_Settings_File)})
              ]
              spids: [4600 4614]
            )
          ]
          spids: [16777215 4700]
        )
        (Sentence
          child: (C {(rm)} {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))})
          terminator: <Op_Amp '&'>
        )
        (SimpleCommand
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[4719])]
        )
        (C {(unset)} {(aSUPPORTED_FILESYSTEMS)})
        (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
      ]
      spids: [3]
    )
  ]
)