(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: [71] ) ] 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: [99] ) ] redirects: [] ) ] spids: [75 95] ) ] else_action: [] redirects: [] ) (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>}) (C {<G_CHECK_ROOT_USER>}) (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-CPU_info>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 20>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'nNotice: CPU information is not available for VM.'> <Id.Lit_BadBackslash '\\'> <n> ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] spids: [137 151] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPU_GOV_CURRENT='> name:CPU_GOV_CURRENT) op: assign_op.Equal rhs: {(SQ <Unknown>)} spids: [179] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aCPU_CURRENT_FREQ='> name:aCPU_CURRENT_FREQ) op: assign_op.Equal rhs: {<0>} spids: [186] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aCPU_MIN_FREQ='> name:aCPU_MIN_FREQ) op: assign_op.Equal rhs: {<0>} spids: [190] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aCPU_MAX_FREQ='> name:aCPU_MAX_FREQ) op: assign_op.Equal rhs: {<0>} spids: [194] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aCPU_SCALINGAVAILABLE_FREQ='> name: aCPU_SCALINGAVAILABLE_FREQ ) op: assign_op.Equal rhs: {<0>} spids: [198] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CPU_SCALINGSUPPORTED='> name: CPU_SCALINGSUPPORTED ) op: assign_op.Equal rhs: {<1>} spids: [202] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'FP_CPU_SCALINGAVAILABLE_FREQ='> name: FP_CPU_SCALINGAVAILABLE_FREQ ) op: assign_op.Equal rhs: {(SQ <'/tmp/dietpi-available_cpu_freqs'>)} spids: [206] ) ] redirects: [] ) (command.ShFunction name: Obtain_Cpu_Freq body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<nproc>} {<--all>}) right: <Id.Eof_RParen _> ) } ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i)) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) <'/cpufreq/scaling_cur_freq'> } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'aCPU_CURRENT_FREQ['> name: aCPU_CURRENT_FREQ index: {($ Id.VSub_DollarName i)} ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) <'/cpufreq/scaling_cur_freq'> } ) right: <Id.Eof_RParen _> ) } spids: [263] ) ] redirects: [] ) ] spids: [246 259] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) <'/cpufreq/scaling_min_freq'> } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'aCPU_MIN_FREQ['> name: aCPU_MIN_FREQ index: {($ Id.VSub_DollarName i)} ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) <'/cpufreq/scaling_min_freq'> } ) right: <Id.Eof_RParen _> ) } spids: [299] ) ] redirects: [] ) ] spids: [282 295] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) <'/cpufreq/scaling_max_freq'> } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'aCPU_MAX_FREQ['> name: aCPU_MAX_FREQ index: {($ Id.VSub_DollarName i)} ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) <'/cpufreq/scaling_max_freq'> } ) right: <Id.Eof_RParen _> ) } spids: [335] ) ] redirects: [] ) ] spids: [318 331] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} { < '/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies' > } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<nproc>} {<--all>}) right: <Id.Eof_RParen _> ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'aCPU_SCALINGAVAILABLE_FREQ['> name: aCPU_SCALINGAVAILABLE_FREQ index: {($ Id.VSub_DollarName i)} ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) <'/cpufreq/scaling_available_frequencies'> } ) (C {<tr>} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {<sed>} {<-e>} {(SQ <'s/[^0-9]//g'>)}) (C {<sed>} {(SQ <'/^$/d'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [408] ) ] redirects: [] ) ] ) redirects: [] ) ] spids: [366 377] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/sys/devices/system/cpu/cpufreq/mp-cpufreq/cpu_freq_table'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'aCPU_SCALINGAVAILABLE_FREQ['> name: aCPU_SCALINGAVAILABLE_FREQ index: {<Id.Lit_Digits 0>} ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} { < '/sys/devices/system/cpu/cpufreq/mp-cpufreq/cpu_freq_table' > } ) (C {<tr>} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {<sed>} {<-e>} {(SQ <'s/[^0-9]//g'>)}) (C {<sed>} {(SQ <'/^$/d'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [476] ) ] redirects: [] ) ] spids: [461 472] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CPU_SCALINGSUPPORTED='> name: CPU_SCALINGSUPPORTED ) op: assign_op.Equal rhs: {<0>} spids: [523] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPU_TEMP_CURRENT='> name:CPU_TEMP_CURRENT) op: assign_op.Equal rhs: {(SQ <Unknown>)} spids: [536] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPU_TEMP_PRINT='> name:CPU_TEMP_PRINT) op: assign_op.Equal rhs: {(SQ <Unknown>)} spids: [542] ) ] redirects: [] ) (command.ShFunction name: Obtain_Cpu_Temp body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CPU_TEMP_CURRENT='> name: CPU_TEMP_CURRENT ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<G_OBTAIN_CPU_TEMP>}) right: <Id.Eof_RParen _> ) } spids: [557] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'cpu_temp_current_f='> (SQ <Unknown>)}) (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_DollarName CPU_TEMP_CURRENT)} 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 'cpu_temp_current_f='> name: cpu_temp_current_f ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)} right: {<Id.Lit_Digits 9>} ) right: {<Id.Lit_Digits 5>} ) right: {<Id.Lit_Digits 32>} ) ) } spids: [596] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)} right: {<Id.Lit_Digits 70>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='> name: CPU_TEMP_PRINT ) op: assign_op.Equal rhs: { (DQ <Id.Lit_BadBackslash '\\'> <'e[91mWarning: '> ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c : '> ($ Id.VSub_DollarName cpu_temp_current_f) <'\'f | Reducing the life of your device.'> <Id.Lit_BadBackslash '\\'> <'e[0m'> ) } spids: [639] ) ] redirects: [] ) ] spids: [621 635] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)} right: {<Id.Lit_Digits 60>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='> name: CPU_TEMP_PRINT ) op: assign_op.Equal rhs: { (DQ <Id.Lit_BadBackslash '\\'> <'e[38;5;202m'> ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c : '> ($ Id.VSub_DollarName cpu_temp_current_f) <'\'f'> <Id.Lit_BadBackslash '\\'> <'e[90m | Running hot, not recommended.'> <Id.Lit_BadBackslash '\\'> <'e[0m'> ) } spids: [671] ) ] redirects: [] ) ] spids: [653 667] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)} right: {<Id.Lit_Digits 50>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='> name: CPU_TEMP_PRINT ) op: assign_op.Equal rhs: { (DQ <Id.Lit_BadBackslash '\\'> <'e[93m'> ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c : '> ($ Id.VSub_DollarName cpu_temp_current_f) <'\'f'> <Id.Lit_BadBackslash '\\'> <'e[0m '> <Id.Lit_BadBackslash '\\'> <'e[90m | Running warm, but safe.'> <Id.Lit_BadBackslash '\\'> <'e[0m'> ) } spids: [705] ) ] redirects: [] ) ] spids: [687 701] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)} right: {<Id.Lit_Digits 40>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='> name: CPU_TEMP_PRINT ) op: assign_op.Equal rhs: { (DQ <Id.Lit_BadBackslash '\\'> <'e[92m'> ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c : '> ($ Id.VSub_DollarName cpu_temp_current_f) <'\'f'> <Id.Lit_BadBackslash '\\'> <'e[0m'> <Id.Lit_BadBackslash '\\'> <'e[90m | Optimal temperature.'> <Id.Lit_BadBackslash '\\'> <'e[0m'> ) } spids: [741] ) ] redirects: [] ) ] spids: [723 737] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)} right: {<Id.Lit_Digits 30>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='> name: CPU_TEMP_PRINT ) op: assign_op.Equal rhs: { (DQ <Id.Lit_BadBackslash '\\'> <'e[96m'> ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c : '> ($ Id.VSub_DollarName cpu_temp_current_f) <'\'f'> <Id.Lit_BadBackslash '\\'> <'e[0m'> <Id.Lit_BadBackslash '\\'> <'e[90m | Cool runnings.'> <Id.Lit_BadBackslash '\\'> <'e[0m'> ) } spids: [777] ) ] redirects: [] ) ] spids: [759 773] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='> name: CPU_TEMP_PRINT ) op: assign_op.Equal rhs: { (DQ <Id.Lit_BadBackslash '\\'> <'e[96m'> ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c : '> ($ Id.VSub_DollarName cpu_temp_current_f) <'\'f '> <Id.Lit_BadBackslash '\\'> <'e[0m '> <Id.Lit_BadBackslash '\\'> <'e[90m| Who put me in the freezer!'> <Id.Lit_BadBackslash '\\'> <'e[0m'> ) } spids: [799] ) ] redirects: [] ) ] redirects: [] ) ] spids: [572 592] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='> name: CPU_TEMP_PRINT ) op: assign_op.Equal rhs: { (DQ <Id.Lit_BadBackslash '\\'> <'e[91mKERNELERR: '> ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c'> <Id.Lit_BadBackslash '\\'> <'e[0m'> ) } spids: [825] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Obtain_Cpu_Gov body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CPU_GOV_CURRENT='> name: CPU_GOV_CURRENT ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'>} ) right: <Id.Eof_RParen _> ) } spids: [867] ) ] redirects: [] ) ] spids: [852 863] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Print_Stats body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<echo>} {<-e>} {(DQ )}) (C {<echo>} {<-e>} { (DQ <' '> <Id.Lit_BadBackslash '\\'> < 'e[38;5;154m─────────────────────────────────────────────────────' > <Id.Lit_BadBackslash '\\'> <'e[0m'> <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> <'e[1mDietPi CPU Info'> <Id.Lit_BadBackslash '\\'> <'e[0m'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'e[90m Use dietpi-config to change CPU / performance options'> <Id.Lit_BadBackslash '\\'> <'e[0m'> <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> < 'e[38;5;154m─────────────────────────────────────────────────────' > <Id.Lit_BadBackslash '\\'> <'e[0m'> ) } ) (C {<echo>} {<-e>} { (DQ <' Architecture '> <Id.Lit_BadBackslash '\\'> <'e[90m|'> <Id.Lit_BadBackslash '\\'> <'e[0m '> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<uname>} {<-m>}) right:<Id.Eof_RParen _>) ) } ) (C {<echo>} {<-e>} { (DQ <' Temp '> <Id.Lit_BadBackslash '\\'> <'e[90m|'> <Id.Lit_BadBackslash '\\'> <'e[0m '> ($ Id.VSub_DollarName CPU_TEMP_PRINT) ) } ) (C {<echo>} {<-e>} { (DQ <' Governor '> <Id.Lit_BadBackslash '\\'> <'e[90m|'> <Id.Lit_BadBackslash '\\'> <'e[0m '> ($ Id.VSub_DollarName CPU_GOV_CURRENT) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName CPU_GOV_CURRENT))} {<Id.Lit_Equals '='>} {(DQ <ondemand>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName CPU_GOV_CURRENT))} {<Id.Lit_Equals '='>} {(DQ <conservative>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<-e>} { (DQ <' Throttle up '> <Id.Lit_BadBackslash '\\'> <'e[90m|'> <Id.Lit_BadBackslash '\\'> <'e[0m '> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_USAGE_THROTTLE_UP='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) <'% CPU usage'> ) } ) ] spids: [992 1026] ) ] else_action: [] redirects: [] ) (C {<echo>} {<-e>} {(DQ )}) (C {<echo>} {<-e>} { (DQ <' '> <Id.Lit_BadBackslash '\\'> <'e[90m Current Freq Min Freq Max Freq'> <Id.Lit_BadBackslash '\\'> <'e[0m'> ) } ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name aCPU_CURRENT_FREQ> var_name: aCPU_CURRENT_FREQ prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i)) body: (command.DoGroup children: [ (C {<echo>} {<-e>} { (DQ <' '> <Id.Lit_BadBackslash '\\'> <'e[90mCPU'> ($ Id.VSub_DollarName i) <Id.Lit_BadBackslash '\\'> <'e[0m '> <Id.Lit_BadBackslash '\\'> <'e[90m|'> <Id.Lit_BadBackslash '\\'> <'e[0m '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name aCPU_CURRENT_FREQ> var_name: aCPU_CURRENT_FREQ bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 1000>} ) ) <' MHz '> <Id.Lit_BadBackslash '\\'> <'e[90m'> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name aCPU_MIN_FREQ> var_name: aCPU_MIN_FREQ bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 1000>} ) ) <' MHz '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name aCPU_MAX_FREQ> var_name: aCPU_MAX_FREQ bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 1000>} ) ) <' MHz'> <Id.Lit_BadBackslash '\\'> <'e[0m'> ) } ) ] ) redirects: [] ) (C {<echo>} {<-e>} {(DQ )}) (C {<G_DIETPI-NOTIFY>} {<2>} { (SQ < 'CPU current frequency, may be affected by this script, due to the processing required to run it.\\n' > ) } ) ] 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 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Obtain_Cpu_Freq>}) (command.Simple words: [{<rm>} {(DQ ($ Id.VSub_DollarName FP_CPU_SCALINGAVAILABLE_FREQ))}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName CPU_SCALINGSUPPORTED)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name aCPU_SCALINGAVAILABLE_FREQ> var_name: aCPU_SCALINGAVAILABLE_FREQ prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name aCPU_SCALINGAVAILABLE_FREQ> var_name: aCPU_SCALINGAVAILABLE_FREQ bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName FP_CPU_SCALINGAVAILABLE_FREQ))} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (C {<sort>} {<-u>} {<-n>} {(DQ ($ Id.VSub_DollarName FP_CPU_SCALINGAVAILABLE_FREQ))} {<-o>} {(DQ ($ Id.VSub_DollarName FP_CPU_SCALINGAVAILABLE_FREQ))} ) ] spids: [1287 1297] ) ] else_action: [] redirects: [] ) ] spids: [1249 1263] ) ] else_action: [ (C {<Obtain_Cpu_Freq>}) (C {<Obtain_Cpu_Temp>}) (C {<Obtain_Cpu_Gov>}) (C {<Print_Stats>}) ] redirects: [] ) (C {<unset>} {<aCPU_CURRENT_FREQ>}) (C {<unset>} {<aCPU_MIN_FREQ>}) (C {<unset>} {<aCPU_MAX_FREQ>}) (C {<unset>} {<aCPU_SCALINGAVAILABLE_FREQ>}) (C {<unset>} {<afp_temperature>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] redirects: [] right: <Id.Lit_RBrace '}'> )