(BraceGroup children: [ (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:INPUT) op:assign_op.Equal rhs:{<0>} spids:[71])] ) (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 '$'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INPUT) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [99] ) ] ) ] spids: [75 95] ) ] ) (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>} ) ) 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] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_GOV_CURRENT) op: assign_op.Equal rhs: {(SQ <Unknown>)} spids: [179] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aCPU_CURRENT_FREQ) op: assign_op.Equal rhs: {<0>} spids: [186] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aCPU_MIN_FREQ) op: assign_op.Equal rhs: {<0>} spids: [190] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aCPU_MAX_FREQ) op: assign_op.Equal rhs: {<0>} spids: [194] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aCPU_SCALINGAVAILABLE_FREQ) op: assign_op.Equal rhs: {<0>} spids: [198] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_SCALINGSUPPORTED) op: assign_op.Equal rhs: {<1>} spids: [202] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_CPU_SCALINGAVAILABLE_FREQ) op: assign_op.Equal rhs: {(SQ <'/tmp/dietpi-available_cpu_freqs'>)} spids: [206] ) ] ) (command.ShFunction name: Obtain_Cpu_Freq body: (BraceGroup 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>}))} ) 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 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'> } ) ) } spids: [263] ) ] ) ] spids: [246 259] ) ] ) (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 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'> } ) ) } spids: [299] ) ] ) ] spids: [282 295] ) ] ) (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 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'> } ) ) } spids: [335] ) ] ) ] spids: [318 331] ) ] ) ] ) ) (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>}) ) } ) 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 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 ) ) } spids: [408] ) ] ) ] ) ) ] 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 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 ) ) } spids: [476] ) ] ) ] spids: [461 472] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_SCALINGSUPPORTED) op: assign_op.Equal rhs: {<0>} spids: [523] ) ] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_CURRENT) op: assign_op.Equal rhs: {(SQ <Unknown>)} spids: [536] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_PRINT) op: assign_op.Equal rhs: {(SQ <Unknown>)} spids: [542] ) ] ) (command.ShFunction name: Obtain_Cpu_Temp body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_CURRENT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<G_OBTAIN_CPU_TEMP>}) ) } spids: [557] ) ] ) (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 '$'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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] ) ] ) ] 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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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] ) ] ) ] 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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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] ) ] ) ] 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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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] ) ] ) ] 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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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] ) ] ) ] spids: [759 773] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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] ) ] ) ] ) ] spids: [572 592] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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] ) ] ) ] ) ] ) ) (command.ShFunction name: Obtain_Cpu_Gov body: (BraceGroup 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 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'>} ) ) } spids: [867] ) ] ) ] spids: [852 863] ) ] ) ] ) ) (command.ShFunction name: Print_Stats body: (BraceGroup 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>})) ) } ) (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 ) ) <'% CPU usage'> ) } ) ] spids: [992 1026] ) ] ) (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 token: <Id.VSub_Name aCPU_CURRENT_FREQ> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) 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 token: <Id.VSub_Name aCPU_CURRENT_FREQ> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) } 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 token: <Id.VSub_Name aCPU_MIN_FREQ> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) } right: {<Id.Lit_Digits 1000>} ) ) <' MHz '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub token: <Id.VSub_Name aCPU_MAX_FREQ> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) } right: {<Id.Lit_Digits 1000>} ) ) <' MHz'> <Id.Lit_BadBackslash '\\'> <'e[0m'> ) } ) ] ) ) (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' > ) } ) ] ) ) (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>} ) ) 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'>} ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$CPU_SCALINGSUPPORTED')} ) 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 token: <Id.VSub_Name aCPU_SCALINGAVAILABLE_FREQ> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) 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 token: <Id.VSub_Name aCPU_SCALINGAVAILABLE_FREQ> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_CPU_SCALINGAVAILABLE_FREQ'))} ) ] do_fork: T ) ] ) ) (C {<sort>} {<-u>} {<-n>} {(DQ ($ Id.VSub_DollarName '$FP_CPU_SCALINGAVAILABLE_FREQ'))} {<-o>} {(DQ ($ Id.VSub_DollarName '$FP_CPU_SCALINGAVAILABLE_FREQ'))} ) ] spids: [1287 1297] ) ] ) ] spids: [1249 1263] ) ] else_action: [ (C {<Obtain_Cpu_Freq>}) (C {<Obtain_Cpu_Temp>}) (C {<Obtain_Cpu_Gov>}) (C {<Print_Stats>}) ] ) (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>) ] )