(BraceGroup
  children: [
    (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>})
    (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Survey>)})
    (C {<G_CHECK_ROOT_USER>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SURVEY_VERSION)
          op: assign_op.Equal
          rhs: {<4>}
          spids: [116]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SURVEY_SENTCOUNT)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [120]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OPTED_IN)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [125]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DIETPI_VERSION)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.version'>})
                ) <.> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.version'>})
                )
              )
            }
          spids: [130]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:G_HW_MODEL)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.hw_model'>})
              )
            }
          spids: [154]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:UNIQUE_ID)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<sed>} {<-n>} {<5p>} {<'/DietPi/dietpi/.hw_model'>})
              )
            }
          spids: [166]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FTP_ADDR)
          op: assign_op.Equal
          rhs: {(DQ <dietpi.com>)}
          spids: [179]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FTP_USER)
          op: assign_op.Equal
          rhs: {(DQ <dietpi-survey>)}
          spids: [185]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FTP_PASS)
          op: assign_op.Equal
          rhs: {(DQ <raspberry13>)}
          spids: [191]
        )
      ]
    )
    (command.ShFunction
      name: Update_FileName_Format
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:FILENAME_FORMAT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$SURVEY_VERSION') <-> 
                        ($ Id.VSub_DollarName '$UNIQUE_ID') <-> ($ Id.VSub_DollarName '$DIETPI_VERSION') <-> ($ Id.VSub_DollarName '$G_HW_MODEL') <.txt>
                      )
                    }
                  spids: [204]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_SETTINGS)
          op: assign_op.Equal
          rhs: {(DQ <'/DietPi/dietpi/.dietpi-survey'>)}
          spids: [221]
        )
      ]
    )
    (command.ShFunction
      name: Write_Settings
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<_EOF_>}
                      here_end_span_id: 251
                      stdin_parts: [
                        ($ Id.VSub_DollarName '$OPTED_IN')
                        <'\n'>
                        ($ Id.VSub_DollarName '$SURVEY_SENTCOUNT')
                        <'\n'>
                      ]
                    )
                )
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName '$FP_SETTINGS'))}
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: Read_Settings
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:OPTED_IN)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<1p>} {(DQ ($ Id.VSub_DollarName '$FP_SETTINGS'))})
                      )
                    }
                  spids: [264]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SURVEY_SENTCOUNT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<2p>} {(DQ ($ Id.VSub_DollarName '$FP_SETTINGS'))})
                      )
                    }
                  spids: [278]
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$FP_SETTINGS'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Read_Settings>})]
          spids: [313 326]
        )
      ]
      else_action: [(C {<Write_Settings>})]
    )
    (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 '$OPTED_IN')}
                          right: {<Id.Lit_Digits 1>}
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$FTP_ADDR'))})
            (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_QMark '$?')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<'/DietPi/dietpi/func/obtain_network_details'>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:active_network_adapter)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: (C {<sed>} {<-n>} {<3p>} {<'/DietPi/dietpi/.network'>})
                              )
                            }
                          spids: [412]
                        )
                      ]
                    )
                    (C {<Update_FileName_Format>})
                    (C {<cd>} {<'/tmp'>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 582
                              stdin_parts: [
                                <'-------------------------\n'>
                                <'DietPi-Survey v'>
                                ($ Id.VSub_DollarName '$SURVEY_VERSION')
                                <'\n'>
                                <'-------------------------\n'>
                                <'\n'>
                                <'Upload Count   : '>
                                ($ Id.VSub_DollarName '$SURVEY_SENTCOUNT')
                                <'\n'>
                                <'DietPi Version : '>
                                ($ Id.VSub_DollarName '$DIETPI_VERSION')
                                <'\n'>
                                <'Mac Address    : '>
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<ifconfig>} {<-a>})
                                        (C {<grep>} {<-m1>} 
                                          {(DQ ($ Id.VSub_DollarName '$active_network_adapter'))}
                                        )
                                        (C {<awk>} {(SQ <'{print $NF}'>)})
                                        (C {<sed>} {(SQ <'s/://g'>)})
                                      ]
                                      negated: F
                                    )
                                )
                                <'\n'>
                                <'Hardware Index : '>
                                ($ Id.VSub_DollarName '$G_HW_MODEL')
                                <'\n'>
                                <'Hardware Name  : '>
                                ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION')
                                <'\n'>
                                <'Distro Index   : '>
                                ($ Id.VSub_DollarName '$G_DISTRO')
                                <'\n'>
                                <'Autoboot Index : '>
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<cat>} {<'/DietPi/dietpi/.dietpi-autostart_index'>})
                                )
                                <'\n'>
                                <'Country        : '>
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<curl>} {<--max-time>} {<4>} {<-s>} 
                                          {<http> <Id.Lit_Colon ':'> <'//whatismycountry.com/'>}
                                        )
                                        (C {<sed>} {<-n>} {(SQ <'s|.*,\\(.*\\)</h3>|\\1|p'>)})
                                      ]
                                      negated: F
                                    )
                                )
                                <'\n'>
                                <'Hostname       : '>
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<cat>} {<'/etc/hostname'>})
                                )
                                <'\n'>
                                <'\n'>
                                <'-------------------------\n'>
                                <'DietPi-Software Installed\n'>
                                <'-------------------------\n'>
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<cat>} {<'/DietPi/dietpi/.installed'>})
                                        (C {<grep>} {(SQ <' =2 '>)})
                                      ]
                                      negated: F
                                    )
                                )
                                <'\n'>
                                <'\n'>
                                <'-------------------------\n'>
                                <'FileSystem\n'>
                                <'-------------------------\n'>
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<df>} {<-h>})
                                )
                                <'\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FILENAME_FORMAT'))}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<wput>} {<--timeout> <Id.Lit_Equals '='> <10th-4>} 
                      {<--tries> <Id.Lit_Equals '='> <1>} {<--waitretry> <Id.Lit_Equals '='> <4>} {<-q>} {<-B>} {<-u>} 
                      {(DQ ($ Id.VSub_DollarName '$FILENAME_FORMAT'))} 
                      {<ftp> <Id.Lit_Colon ':'> <'//'> (DQ ($ Id.VSub_DollarName '$FTP_USER')) 
                        <Id.Lit_Colon ':'> (DQ ($ Id.VSub_DollarName '$FTP_PASS')) <Id.Lit_At '@'> (DQ ($ Id.VSub_DollarName '$FTP_ADDR'))
                      }
                    )
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$FILENAME_FORMAT'))})
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike SURVEY_SENTCOUNT>
                        )
                    )
                    (C {<Write_Settings>})
                  ]
                  spids: [387 401]
                )
              ]
            )
          ]
          spids: [358 372]
        )
      ]
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)