(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)})
                            )
                          spids: [336 345]
                        )
                      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: <Redir_GreatAnd '3>&'>
                                    fd: 3
                                    arg_word: {(1)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '1>&'>
                                    fd: 1
                                    arg_word: {(2)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '2>&'>
                                    fd: 2
                                    arg_word: {(3)}
                                  )
                                ]
                              )
                            ]
                          )
                        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)})
                            )
                          spids: [493 502]
                        )
                      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: <Redir_GreatAnd '3>&'>
                                                    fd: 3
                                                    arg_word: {(1)}
                                                  )
                                                  (Redir
                                                    op: <Redir_GreatAnd '1>&'>
                                                    fd: 1
                                                    arg_word: {(2)}
                                                  )
                                                  (Redir
                                                    op: <Redir_GreatAnd '2>&'>
                                                    fd: 2
                                                    arg_word: {(3)}
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        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)})
                                            )
                                          spids: [646 655]
                                        )
                                      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: [540 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)})
                                            )
                                          spids: [789 798]
                                        )
                                      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)})
                                            )
                                          spids: [882 891]
                                        )
                                      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)})
                            )
                          spids: [993 1002]
                        )
                      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: <Redir_GreatAnd '3>&'>
                                    fd: 3
                                    arg_word: {(1)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '1>&'>
                                    fd: 1
                                    arg_word: {(2)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '2>&'>
                                    fd: 2
                                    arg_word: {(3)}
                                  )
                                ]
                              )
                            ]
                          )
                        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)})
                            )
                          spids: [1137 1146]
                        )
                      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: <Redir_Great '>'>
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$fp_search_results'))}
                                )
                              ]
                            )
                            (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)})
                                            )
                                          spids: [1220 1241]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (SimpleCommand
                                      words: [{(readarray)} {(search_results_list)}]
                                      redirects: [
                                        (Redir
                                          op: <Redir_Less '<'>
                                          fd: 16777215
                                          arg_word: {(DQ ($ VSub_Name '$fp_search_results'))}
                                        )
                                      ]
                                    )
                                    (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: <Redir_GreatAnd '3>&'>
                                                            fd: 3
                                                            arg_word: {(1)}
                                                          )
                                                          (Redir
                                                            op: <Redir_GreatAnd '1>&'>
                                                            fd: 1
                                                            arg_word: {(2)}
                                                          )
                                                          (Redir
                                                            op: <Redir_GreatAnd '2>&'>
                                                            fd: 2
                                                            arg_word: {(3)}
                                                          )
                                                        ]
                                                      )
                                                    ]
                                                  )
                                                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)})
                                                    )
                                                  spids: [1451 1460]
                                                )
                                              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)})
                                    (SimpleCommand
                                      words: [{(rm)} {(DQ ($ VSub_Name '$fp_search_results'))}]
                                      redirects: [
                                        (Redir
                                          op: <Redir_AndGreat '&>'>
                                          fd: 16777215
                                          arg_word: {(/dev/null)}
                                        )
                                      ]
                                    )
                                  ]
                                  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: [1504 1534]
                            )
                          ]
                          spids: [1163 1164 1538 16777215]
                        )
                        (case_arm
                          pat_list: [{(Manual)}]
                          action: [(C {(Input_User_Directory)})]
                          spids: [1542 1543 1551 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: [1567 1571]
                                        )
                                      )
                                    }
                                  spids: [1565]
                                )
                              ]
                              spids: [1565]
                            )
                            (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: [1596]
                                        )
                                      ]
                                      spids: [1596]
                                    )
                                  ]
                                  spids: [16777215 1592]
                                )
                              ]
                              spids: [16777215 1603]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:FP_TARGET_BACKUP)
                                  op: PlusEqual
                                  rhs: {(SQ </dietpi-backup>)}
                                  spids: [1607]
                                )
                              ]
                              spids: [1607]
                            )
                          ]
                          spids: [1555 1556 1614 16777215]
                        )
                      ]
                      spids: [1153 1159 1618]
                    )
                  ]
                  spids: [16777215 1149]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGETMENUID)
                      op: Equal
                      rhs: {(0)}
                      spids: [1630]
                    )
                  ]
                  spids: [1630]
                )
              ]
              spids: [1622 1635]
            )
            (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)})
                            )
                          spids: [1648 1657]
                        )
                      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: [1664]
                        )
                      ]
                      spids: [1664]
                    )
                  ]
                  spids: [16777215 1660]
                )
              ]
              spids: [16777215 1671]
            )
          ]
          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: <Redir_GreatAnd '3>&'>
                                    fd: 3
                                    arg_word: {(1)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '1>&'>
                                    fd: 1
                                    arg_word: {(2)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '2>&'>
                                    fd: 2
                                    arg_word: {(3)}
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1687 1730]
                      )
                    }
                  spids: [1686]
                )
              ]
              spids: [1686]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [1733]
                )
              ]
              spids: [1733]
            )
            (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)})
                            )
                          spids: [1739 1748]
                        )
                      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: [1755]
                        )
                      ]
                      spids: [1755]
                    )
                  ]
                  spids: [16777215 1751]
                )
              ]
              spids: [16777215 1762]
            )
          ]
          spids: [1682]
        )
      spids: [1679 1682]
    )
    (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')})
                          spids: [1802 1807]
                        )
                      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 1810]
                )
              ]
              spids: [16777215 1847]
            )
          ]
          spids: [1785]
        )
      spids: [1782 1785]
    )
    (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')})
                          spids: [1876 1881]
                        )
                      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 1884]
                )
              ]
              spids: [16777215 1922]
            )
          ]
          spids: [1858]
        )
      spids: [1855 1858]
    )
    (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')})
                          spids: [1951 1956]
                        )
                      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 1959]
                )
              ]
              spids: [16777215 1997]
            )
          ]
          spids: [1933]
        )
      spids: [1930 1933]
    )
    (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: [2029 2036]
                    ) ('. Rsync is already running.')
                  )
                }
              ]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: 
                    {
                      (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                        ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                      )
                    }
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})
                          spids: [2056 2061]
                        )
                      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 2064]
                )
              ]
              spids: [16777215 2097]
            )
          ]
          spids: [2008]
        )
      spids: [2005 2008]
    )
    (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')})
                          spids: [2129 2134]
                        )
                      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 2137]
                )
              ]
              spids: [16777215 2175]
            )
          ]
          spids: [2108]
        )
      spids: [2105 2108]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:RSYNC_MODE_TEXT) op:Equal rhs:{(0)} spids:[2195])]
      spids: [2195]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:BACKUP_MODE) op:Equal rhs:{(1)} spids:[2199])]
      spids: [2199]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LOGFILE)
          op: Equal
          rhs: {(SQ </var/log/dietpi-backup.log>)}
          spids: [2211]
        )
      ]
      spids: [2211]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:FP_SOURCE_SYSTEM) op:Equal rhs:{(SQ </>)} spids:[2222])]
      spids: [2222]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_TARGET_BACKUP)
          op: Equal
          rhs: {(SQ </mnt/dietpi-backup>)}
          spids: [2228]
        )
      ]
      spids: [2228]
    )
    (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: [2236 2242]
                )
              )
            }
          spids: [2234]
        )
      ]
      spids: [2234]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BACKUP_STATS_FILENAME_SYSTEM)
          op: Equal
          rhs: {(SQ <.dietpi-backup_system_stats>)}
          spids: [2251]
        )
      ]
      spids: [2251]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BACKUP_STATS_FILENAME_USERDATA)
          op: Equal
          rhs: {(SQ <.dietpi-backup_userdata_stats>)}
          spids: [2257]
        )
      ]
      spids: [2257]
    )
    (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: [2268]
        )
      ]
      spids: [2268]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_EXCLUDE_USER)
          op: Equal
          rhs: {(SQ </DietPi/dietpi/.dietpi-backup_exclude>)}
          spids: [2274]
        )
      ]
      spids: [2274]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_INCLUDE_USER)
          op: Equal
          rhs: {(SQ </DietPi/dietpi/.dietpi-backup_include>)}
          spids: [2280]
        )
      ]
      spids: [2280]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:TARGET_FILESYSTEM_TYPE) op:Equal rhs:{(0)} spids:[2291])]
      spids: [2291]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TARGET_DIRECTORY_SUPPORTED)
          op: Equal
          rhs: {(0)}
          spids: [2295]
        )
      ]
      spids: [2295]
    )
    (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: [2299]
        )
      ]
      spids: [2299]
    )
    (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: [2341]
        )
      ]
      spids: [2341]
    )
    (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: [2350]
        )
      ]
      spids: [2350]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:BACKUP_RESTORE_FAILED) op:Equal rhs:{(0)} spids:[2362])]
      spids: [2362]
    )
    (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: [2383 2390]
                  )
                )
              }
            )
          ]
          spids: [2374]
        )
      spids: [2371 2374]
    )
    (FuncDef
      name: Create_Filter_Include_Exclude
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(_EOF_)}
                  here_end_span_id: 2426
                  stdin_parts: [('#INCLUDE\n') ('#Global - Folders\n') ('#+ /example/\n')]
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))}
                )
              ]
            )
            (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: <Redir_DGreat '>>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))}
                        )
                      ]
                    )
                    (WhileUntil
                      keyword: <KW_While while>
                      cond: [(C {(read)} {(-r)} {(line)})]
                      body: 
                        (DoGroup
                          children: [
                            (SimpleCommand
                              words: [{(echo)} {(-e)} {(DQ ('+ ') ($ VSub_Name '$line'))}]
                              redirects: [
                                (Redir
                                  op: <Redir_DGreat '>>'>
                                  fd: 16777215
                                  arg_word: 
                                    {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))}
                                )
                              ]
                            )
                          ]
                          spids: [2476 2497]
                        )
                      redirects: [
                        (Redir
                          op: <Redir_Less '<'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$FP_INCLUDE_USER'))}
                        )
                      ]
                    )
                  ]
                  spids: [16777215 2446]
                )
              ]
              spids: [16777215 2507]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(_EOF_)}
                  here_end_span_id: 2569
                  stdin_parts: [
                    ('\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')
                  ]
                )
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))}
                )
              ]
            )
            (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: <Redir_DGreat '>>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))}
                        )
                      ]
                    )
                    (WhileUntil
                      keyword: <KW_While while>
                      cond: [(C {(read)} {(-r)} {(line)})]
                      body: 
                        (DoGroup
                          children: [
                            (SimpleCommand
                              words: [{(echo)} {(-e)} {(DQ ('- ') ($ VSub_Name '$line'))}]
                              redirects: [
                                (Redir
                                  op: <Redir_DGreat '>>'>
                                  fd: 16777215
                                  arg_word: 
                                    {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))}
                                )
                              ]
                            )
                          ]
                          spids: [2618 2639]
                        )
                      redirects: [
                        (Redir
                          op: <Redir_Less '<'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_USER'))}
                        )
                      ]
                    )
                  ]
                  spids: [16777215 2589]
                )
              ]
              spids: [16777215 2649]
            )
            (C {(cp)} {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))} 
              {(/tmp/.dietpi-backup_inc_exc_list)}
            )
          ]
          spids: [2402]
        )
      spids: [2399 2402]
    )
    (FuncDef
      name: Services_Stop
      body: (BraceGroup children:[(C {(/DietPi/dietpi/dietpi-services)} {(stop)})] spids:[2674])
      spids: [2671 2674]
    )
    (FuncDef
      name: Services_Start
      body: (BraceGroup children:[(C {(/DietPi/dietpi/dietpi-services)} {(start)})] spids:[2689])
      spids: [2686 2689]
    )
    (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: [2708]
                )
              ]
              spids: [2708]
            )
            (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)})
                            )
                          spids: [2741 2750]
                        )
                      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')})
                                          spids: [2796 2801]
                                        )
                                      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 2804]
                                )
                              ]
                              spids: [16777215 2836]
                            )
                          ]
                          spids: [16777215 2790]
                        )
                        (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: [2848 2864]
                                              )
                                            }
                                        )
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                  spids: [2846 2871]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Error_Rsync_Already_Running)})]
                          spids: [2844 2874]
                        )
                      ]
                      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: [2897 2904]
                                ) (Lit_Other '\\') (n) (Lit_Other '\\') (n)
                              )
                            }
                          ]
                          redirects: [
                            (Redir
                              op: <Redir_Great '>'>
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$LOGFILE'))}
                            )
                          ]
                        )
                        (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: [2942]
                            )
                          ]
                          spids: [2942]
                        )
                        (WhileUntil
                          keyword: <KW_While 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: [2960]
                                    )
                                  ]
                                  spids: [2960]
                                )
                                (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)})
                                                )
                                              spids: [2983 2992]
                                            )
                                          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: [3019 3021]
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Redir_DGreat '>>'>
                                              fd: 16777215
                                              arg_word: 
                                                {
                                                  (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                    ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                                                  )
                                                }
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [16777215 2995]
                                    )
                                  ]
                                  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: [3057 3059]
                                            )
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Redir_DGreat '>>'>
                                          fd: 16777215
                                          arg_word: 
                                            {
                                              (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                                              )
                                            }
                                        )
                                      ]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:BACKUP_RESTORE_FAILED)
                                          op: Equal
                                          rhs: {(1)}
                                          spids: [3071]
                                        )
                                      ]
                                      spids: [3071]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [3034 3079]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:RSYNC_MODE_TEXT)
                                      op: Equal
                                      rhs: {(SQ <'Backup (user data)'>)}
                                      spids: [3087]
                                    )
                                  ]
                                  spids: [3087]
                                )
                                (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)})
                                                )
                                              spids: [3096 3105]
                                            )
                                          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)})
                                                        )
                                                      spids: [3129 3138]
                                                    )
                                                  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: [3165 3167]
                                                        )
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Redir_DGreat '>>'>
                                                      fd: 16777215
                                                      arg_word: 
                                                        {
                                                          (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                            ($ VSub_Name 
'$BACKUP_STATS_FILENAME_USERDATA'
                                                            )
                                                          )
                                                        }
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [16777215 3141]
                                            )
                                          ]
                                          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: [3203 3205]
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Redir_DGreat '>>'>
                                                  fd: 16777215
                                                  arg_word: 
                                                    {
                                                      (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                        ($ VSub_Name 
'$BACKUP_STATS_FILENAME_USERDATA'
                                                        )
                                                      )
                                                    }
                                                )
                                              ]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:BACKUP_RESTORE_FAILED)
                                                  op: Equal
                                                  rhs: {(1)}
                                                  spids: [3217]
                                                )
                                              ]
                                              spids: [3217]
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [3180 3225]
                                        )
                                      ]
                                      spids: [16777215 3108]
                                    )
                                  ]
                                  spids: [16777215 3229]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                              spids: [2952 3241]
                            )
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: (ArithWord w:{($ VSub_Name '$BACKUP_RESTORE_FAILED')})
                                      spids: [3247 3252]
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(Error_Rsync_Failed)})]
                              spids: [16777215 3255]
                            )
                          ]
                          else_action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})
                                          spids: [3269 3274]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:RSYNC_MODE_TEXT)
                                          op: Equal
                                          rhs: {(SQ <Backup>)}
                                          spids: [3281]
                                        )
                                      ]
                                      spids: [3281]
                                    )
                                    (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 3277]
                                )
                              ]
                              spids: [16777215 3324]
                            )
                          ]
                          spids: [3263 3328]
                        )
                        (C {(Services_Start)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:TARGETMENUID)
                              op: Equal
                              rhs: {(0)}
                              spids: [3340]
                            )
                          ]
                          spids: [3340]
                        )
                      ]
                      spids: [2882 3345]
                    )
                  ]
                  spids: [16777215 2753]
                )
              ]
              spids: [16777215 3348]
            )
          ]
          spids: [2704]
        )
      spids: [2701 2704]
    )
    (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: [3363]
                )
              ]
              spids: [3363]
            )
            (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)})
                            )
                          spids: [3396 3405]
                        )
                      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')})
                                          spids: [3461 3466]
                                        )
                                      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 3469]
                                )
                              ]
                              spids: [16777215 3507]
                            )
                          ]
                          spids: [16777215 3433]
                        )
                        (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: [3519 3535]
                                              )
                                            }
                                        )
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                  spids: [3517 3542]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Error_Rsync_Already_Running)})]
                          spids: [3515 3545]
                        )
                      ]
                      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: [3584]
                            )
                          ]
                          spids: [3584]
                        )
                        (WhileUntil
                          keyword: <KW_While 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: [3602]
                                    )
                                  ]
                                  spids: [3602]
                                )
                                (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)})
                                                )
                                              spids: [3625 3634]
                                            )
                                          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: [3660 3662]
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Redir_DGreat '>>'>
                                              fd: 16777215
                                              arg_word: 
                                                {
                                                  (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                    ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                                                  )
                                                }
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [16777215 3637]
                                    )
                                  ]
                                  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: [3698 3700]
                                            )
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Redir_DGreat '>>'>
                                          fd: 16777215
                                          arg_word: 
                                            {
                                              (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) 
                                                ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM')
                                              )
                                            }
                                        )
                                      ]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:BACKUP_RESTORE_FAILED)
                                          op: Equal
                                          rhs: {(1)}
                                          spids: [3712]
                                        )
                                      ]
                                      spids: [3712]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [3675 3720]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:RSYNC_MODE_TEXT)
                                      op: Equal
                                      rhs: {(SQ <'Restore (user data)'>)}
                                      spids: [3728]
                                    )
                                  ]
                                  spids: [3728]
                                )
                                (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)})
                                                )
                                              spids: [3737 3746]
                                            )
                                          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)})
                                                                )
                                                              spids: [3793 3802]
                                                            )
                                                          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: [3828 3830]
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Redir_DGreat '>>'>
                                                              fd: 16777215
                                                              arg_word: 
                                                                {
                                                                  (DQ 
                                                                    ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA')
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [16777215 3805]
                                                    )
                                                  ]
                                                  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: [3866 3868]
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Redir_DGreat '>>'>
                                                          fd: 16777215
                                                          arg_word: 
                                                            {
                                                              (DQ ($ VSub_Name '$FP_TARGET_BACKUP') 
                                                                (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA')
                                                              )
                                                            }
                                                        )
                                                      ]
                                                    )
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:BACKUP_RESTORE_FAILED)
                                                          op: Equal
                                                          rhs: {(1)}
                                                          spids: [3880]
                                                        )
                                                      ]
                                                      spids: [3880]
                                                    )
                                                    (ControlFlow
                                                      token: <ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [3843 3888]
                                                )
                                              ]
                                              spids: [16777215 3772]
                                            )
                                          ]
                                          else_action: [
                                            (C {(G_DIETPI-NOTIFY)} {(2)} 
                                              {
                                                (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') 
                                                  (': No backup exists, skipping...') (Lit_Other '\\') (n)
                                                )
                                              }
                                            )
                                          ]
                                          spids: [3892 3909]
                                        )
                                      ]
                                      spids: [16777215 3749]
                                    )
                                  ]
                                  spids: [16777215 3913]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                              spids: [3594 3925]
                            )
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: (ArithWord w:{($ VSub_Name '$BACKUP_RESTORE_FAILED')})
                                      spids: [3931 3936]
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(Error_Rsync_Failed)})]
                              spids: [16777215 3939]
                            )
                          ]
                          else_action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})
                                          spids: [3953 3958]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:RSYNC_MODE_TEXT)
                                          op: Equal
                                          rhs: {(SQ <Restore>)}
                                          spids: [3965]
                                        )
                                      ]
                                      spids: [3965]
                                    )
                                    (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 3961]
                                )
                              ]
                              spids: [16777215 4011]
                            )
                          ]
                          spids: [3947 4015]
                        )
                        (C {(Services_Start)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:TARGETMENUID)
                              op: Equal
                              rhs: {(0)}
                              spids: [4027]
                            )
                          ]
                          spids: [4027]
                        )
                      ]
                      spids: [3557 4032]
                    )
                  ]
                  spids: [16777215 3408]
                )
              ]
              spids: [16777215 4036]
            )
          ]
          spids: [3359]
        )
      spids: [3356 3359]
    )
    (FuncDef
      name: Check_Install_PreReqs
      body: (BraceGroup children:[(C {(G_AG_CHECK_INSTALL_PREREQ)} {(rsync)})] spids:[4047])
      spids: [4044 4047]
    )
    (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: [4068]
                )
              ]
              spids: [4068]
            )
            (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 4113]
                )
                (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: [4153]
                        )
                      ]
                      spids: [4151]
                    )
                    (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: [4185]
                                )
                              ]
                              spids: [4185]
                            )
                          ]
                          spids: [16777215 4172]
                        )
                      ]
                      spids: [16777215 4190]
                    )
                    (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: [4196 4221]
                                )
                              )
                            }
                          spids: [4194]
                        )
                      ]
                      spids: [4194]
                    )
                    (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: [4235 4241]
                                  )
                                }
                            )
                        )
                      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: [4265 4270]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:TARGET_DIRECTORY_SUPPORTED)
                                          op: Equal
                                          rhs: {(1)}
                                          spids: [4280]
                                        )
                                      ]
                                      spids: [4280]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [16777215 4276]
                                )
                              ]
                              spids: [16777215 4288]
                            )
                          ]
                          spids: [4250 4292]
                        )
                    )
                    (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)})
                                    )
                                  spids: [4302 4311]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(rm)} {(-R)} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))})]
                          spids: [16777215 4314]
                        )
                      ]
                      spids: [16777215 4328]
                    )
                    (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)})
                                    )
                                  spids: [4338 4347]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Error_Filesystem_Not_Supported)})]
                          spids: [16777215 4350]
                        )
                      ]
                      spids: [16777215 4358]
                    )
                  ]
                  spids: [4125 4143]
                )
              ]
              else_action: [(C {(Error_Not_Mnt_Directory)})]
              spids: [4366 4374]
            )
          ]
          spids: [4064]
        )
      spids: [4061 4064]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_DIETPIBACKUP_SETTINGS)
          op: Equal
          rhs: {(DQ (/DietPi/dietpi/.dietpi-backup_settings))}
          spids: [4398]
        )
      ]
      spids: [4398]
    )
    (FuncDef
      name: Write_Settings_File
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(_EOF_)}
                  here_end_span_id: 4431
                  stdin_parts: [
                    ('FP_TARGET_BACKUP=')
                    ($ VSub_Name '$FP_TARGET_BACKUP')
                    ('\n')
                    ('BACKUP_MODE=')
                    ($ VSub_Name '$BACKUP_MODE')
                    ('\n')
                  ]
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_DIETPIBACKUP_SETTINGS'))}
                )
              ]
            )
          ]
          spids: [4408]
        )
      spids: [4405 4408]
    )
    (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 4458]
                )
              ]
              spids: [16777215 4470]
            )
          ]
          spids: [4441]
        )
      spids: [4438 4441]
    )
    (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: [4528]
                )
              ]
              spids: [4528]
            )
          ]
          spids: [16777215 4524]
        )
      ]
      spids: [16777215 4533]
    )
    (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)})
                    )
                  spids: [4547 4556]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(Run_Backup)})]
          spids: [16777215 4559]
        )
        (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)}))
                    )
                  spids: [4573 4583]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(Run_Restore)})]
          spids: [4571 4586]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$INPUT')})
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  spids: [4604 4613]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (WhileUntil
              keyword: <KW_While 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)}))
                        )
                      spids: [4622 4632]
                    )
                  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)})
                                    )
                                  spids: [4645 4654]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Menu_Main)})]
                          spids: [16777215 4657]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                  spids: [4667 4676]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Menu_Set_Directory)})]
                          spids: [4665 4679]
                        )
                      ]
                      spids: [16777215 4687]
                    )
                  ]
                  spids: [4635 4691]
                )
            )
            (C {(Write_Settings_File)})
          ]
          spids: [4602 4616]
        )
      ]
      spids: [16777215 4702]
    )
    (SimpleCommand
      words: [{(rm)} {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (C {(unset)} {(aSUPPORTED_FILESYSTEMS)})
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
  spids: [3]
)