(BraceGroup
  left: <Id.Lit_LBrace '{'>
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [79]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_EqualTilde
                          left: {($ Id.VSub_Number 1)}
                          right: 
                            {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> 
                              <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                            }
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [106]
                )
              ]
              redirects: []
            )
          ]
          spids: [83 103]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>})
    (C {<G_CHECK_ROOT_USER>})
    (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Set_nfsclient>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [151]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [155]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'nfsclient_ipaddress='>
              name: nfsclient_ipaddress
            )
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<grep>} {<-m1>} {(SQ <'^CONFIG_NFSCLIENT_ADDRESS='>)} {<'/DietPi/dietpi.txt'>})
                      (C {<sed>} {(SQ <'s/.*=//'>)})
                    ]
                    negated: F
                    stderr_indices: []
                  )
                right: <Id.Eof_RParen _>
              )
            }
          spids: [159]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: Apply_And_Mount
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<sed>} {<-i>} 
              {
                (DQ <'/'> <Id.Lit_BadBackslash '\\'> <'/mnt'> <Id.Lit_BadBackslash '\\'> 
                  <'/nfs_client/c '> ($ Id.VSub_DollarName nfsclient_ipaddress) <':'> <Id.Lit_BadBackslash '\\'> <'/ '> 
                  <Id.Lit_BadBackslash '\\'> <'/mnt'> <Id.Lit_BadBackslash '\\'> <'/nfs_client nfs4 auto,_netdev 0  0'>
                )
              } {<'/etc/fstab'>}
            )
            (C {<mount>} {<-a>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName INPUT)}
                          right: {<Id.Lit_Digits 0>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--inputbox>}
                              {
                                (DQ <'Please enter the NFS server IP address'> 
                                  <Id.Lit_BadBackslash '\\'> <'n - eg: 192.168.0.123'>
                                )
                              }
                              {<9>}
                              {<65>}
                              {(DQ ($ Id.VSub_DollarName nfsclient_ipaddress))}
                              {<--title>}
                              {(DQ <'NFS Client Setup'>)}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [269]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [306]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'nfsclient_ipaddress='>
                              name: nfsclient_ipaddress
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OPTION)}
                          spids: [328]
                        )
                      ]
                      redirects: []
                    )
                    (C {<clear>})
                    (C {<echo>} {<-e>} 
                      {
                        (DQ <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                          <'n Attempting mount, please wait....'>
                        )
                      }
                    )
                    (command.Simple
                      words: [{<umount>} {<'/mnt/nfs_client'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/CONFIG_NFSCLIENT_ADDRESS=/c'> <Id.Lit_BadBackslash '\\'> 
                          <'CONFIG_NFSCLIENT_ADDRESS='> ($ Id.VSub_DollarName nfsclient_ipaddress)
                        )
                      } {<'/DietPi/dietpi.txt'>}
                    )
                    (C {<Apply_And_Mount>})
                  ]
                  spids: [310 324]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          spids: [251 265]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName INPUT)}
                          right: {<Id.Lit_Digits 1>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Apply_And_Mount>})]
          spids: [397 411]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
  ]
  redirects: []
  right: <Id.Lit_RBrace '}'>
)