(BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_SCRIPT) op: assign_op.Equal rhs: {(SQ <'/DietPi/dietpi/func/dietpi-set_hardware'>)} spids: [46] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:AVAIABLE_COMMANDS) op: assign_op.Equal rhs: { (DQ <'\n'> <'Available commands\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\trpi3_usb_boot\t\tenable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\trpi-camera\t\t\tenable/disable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\tgpumemsplit\t\t\t64/128/256 #RPi only\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\tremoteir\t\t\todroid_remote/justboom_ir_remote\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\tkernel\t\t\t\t??see sourcode\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\teth-forcespeed\t\t10/100/1000/disable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\trpi-opengl\t\t\tenable/disable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\ti2c\t\t\t\t\tenable/disable/khz\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\twificountrycode\t\tcode\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\twifimodules\t\t\tenable/disable/onboard_enable/onboard_disable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') < ' \t\twificreds\t\t\tset | Generates wpa_supplicant.conf from dietpi.txt globals\n' > ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\tpreferipversion\t\tauto/ipv4/ipv6\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\tbluetooth \t\t\tenable/disable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\tserialconsole\t\tenable/disable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') < ' \t\tsoundcard \t\t\ttarget_card (non-matching name for reset to default) add \'-eq\' to target_card string, enable alsa eq on card. HW:x,x (specify target card and device index eg: HW:9,1)\n' > ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\tlcdpanel \t\t\ttarget_panel (none to remove all)\n'> ) } spids: [52] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_NAME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_Number '$1'))}) (C {<tr>} {(SQ <'[:upper:]'>)} {(SQ <'[:lower:]'>)}) ] negated: F ) ) } spids: [100] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_VALUE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_Number '$2'))}) (C {<tr>} {(SQ <'[:upper:]'>)} {(SQ <'[:lower:]'>)}) ] negated: F ) ) } spids: [124] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <1>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_VALUE) op: assign_op.Equal rhs: {(SQ <enable>)} spids: [173] ) ] ) ] spids: [152 169] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <0>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_VALUE) op: assign_op.Equal rhs: {(SQ <disable>)} spids: [201] ) ] ) ] spids: [180 197] ) ] ) (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>}) (C {<G_CHECK_ROOT_USER>}) (C {<G_CHECK_ROOTFS_RW>}) (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Set_Hardware>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_RPI_CONFIG) op: assign_op.Equal rhs: {(SQ <'/DietPi/config.txt'>)} spids: [244] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_RPI_CONFIG) op: assign_op.Equal rhs: {(SQ <'/boot/config.txt'>)} spids: [269] ) ] ) ] spids: [250 265] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXIT_CODE) op: assign_op.Equal rhs: {<0>} spids: [280] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HW_ONBOARD_WIFI) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<10p>} {<'/DietPi/dietpi/.hw_model'>}) ) } spids: [285] ) ] ) (command.ShFunction name: Unknown_Input_Name body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXIT_CODE) op: assign_op.Equal rhs: {<1>} spids: [305] ) ] ) (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Unknown input name ('> ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME') <'). Nothing has been applied.'> ) } ) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$AVAIABLE_COMMANDS'))}) ] ) ) (command.ShFunction name: Unknown_Input_Mode body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXIT_CODE) op: assign_op.Equal rhs: {<1>} spids: [342] ) ] ) (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Unknown input value ('> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') <'). Nothing has been applied.'> ) } ) ] ) ) (command.ShFunction name: RPi_Camera_Main body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/start_x=/c\\start_x=1'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<grep>} {<-m1>} {(SQ <gpu_mem_>)}) (C {<sed>} {(SQ <'s/.*=//g'>)}) ] negated: F ) ) } right: {<Id.Lit_Digits 128>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<gpumemsplit>} {<128>}) ] spids: [428 466] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/modules'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^bcm2835-v4l2'>)}) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {<-e>} {(DQ <bcm2835-v4l2>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) ] spids: [486 514] ) ] ) ] spids: [385 402] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/start_x=/c\\start_x=0'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/bcm2835-v4l2/d'>)} {<'/etc/modules'>}) ] spids: [536 553] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) ] ) ) (command.ShFunction name: RPi_USB_Boot_Main body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/program_usb_boot_mode=/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (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: 665 stdin_parts: [<'program_usb_boot_mode=1\n'>] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) (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: 712 stdin_parts: [ <'[Unit]\n'> <'Description=dietpi-rm_program_usb_boot_mode.service\n'> <'After=dietpi-boot.service\n'> <'\n'> <'[Service]\n'> <'Type=simple\n'> <'RemainAfterExit=yes\n'> <'ExecStartPre='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<which>} {<sed>}) ) <' -i \'/program_usb_boot_mode=/d\' '> ($ Id.VSub_DollarName '$FP_RPI_CONFIG') <'\n'> <'ExecStartPre='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<which>} {<systemctl>}) ) <' disable dietpi-rm_program_usb_boot_mode.service\n'> <'ExecStart='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<which>} {<systemctl>}) ) <' daemon-reload\n'> <'\n'> <'[Install]\n'> <'WantedBy=multi-user.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/dietpi-rm_program_usb_boot_mode.service'>} ) ] do_fork: T ) (C {<systemctl>} {<daemon-reload>}) (C {<systemctl>} {<enable>} {<dietpi-rm_program_usb_boot_mode.service>}) ] spids: [617 634] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/program_usb_boot_mode=/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] spids: [725 742] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) ] ) ) (command.ShFunction name: Gpu_Memory_Split_Main body: (BraceGroup children: [ (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 '$INPUT_DEVICE_VALUE')} 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: [ (C {<sed>} {<-i>} { (DQ <'/gpu_mem_256=/c'> <Id.Lit_BadBackslash '\\'> <'gpu_mem_256='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} { (DQ <'/gpu_mem_512=/c'> <Id.Lit_BadBackslash '\\'> <'gpu_mem_512='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} { (DQ <'/gpu_mem_1024=/c'> <Id.Lit_BadBackslash '\\'> <'gpu_mem_1024='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] spids: [799 819] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) ] ) ) (command.ShFunction name: RemoteIR_Prereqs body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^lirc'>)}) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_AGI>} {<lirc>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '$?')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<1>} {(DQ <'apt-get install lirc'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXIT_CODE) op: assign_op.Equal rhs: {<1>} spids: [975] ) ] ) ] spids: [948 962] ) ] ) ] spids: [911 939] ) ] ) ] ) ) (command.ShFunction name: RemoteIR_Reset_All body: (BraceGroup children: [ (C {<systemctl>} {<stop>} {<odroid-remote>}) (C {<systemctl>} {<disable>} {<odroid-remote>}) (C {<rm>} {<'/etc/systemd/system/odroid-remote.service'>}) (C {<systemctl>} {<stop>} {<justboom-ir-mpd.service>}) (C {<systemctl>} {<disable>} {<justboom-ir-mpd.service>}) (C {<rm>} {<'/etc/systemd/system/justboom-ir-mpd.service'>}) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=lirc-rpi/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtparam=gpio_in_pin=25/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] ) ) (command.ShFunction name: RemoteIR_Main body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <odroid_remote>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<RemoteIR_Prereqs>}) (command.Simple words: [{<RemoteIR_Reset_All>}] 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: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 11>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'string='> (DQ <'options gpioplug_ir_recv gpio_nr=24 active_low=1'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} { < '/etc/modprobe.d/odroid-cloudshell.conf' > } ) (C {<grep>} {<-ci>} {<-m1>} { (DQ <'^'> ($ Id.VSub_DollarName '$string') ) } ) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$string'))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/odroid-cloudshell.conf'>} ) ] do_fork: T ) ] spids: [1151 1180] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:string) op: assign_op.Equal rhs: {(DQ <gpio-ir-recv>)} spids: [1200] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/modules'>}) (C {<grep>} {<-ci>} {<-m1>} { (DQ <'^'> ($ Id.VSub_DollarName '$string') ) } ) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$string'))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) ] spids: [1206 1235] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:string) op: assign_op.Equal rhs: {(DQ <gpioplug-ir-recv>)} spids: [1255] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/modules'>}) (C {<grep>} {<-ci>} {<-m1>} { (DQ <'^'> ($ Id.VSub_DollarName '$string') ) } ) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$string'))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) ] spids: [1261 1290] ) ] ) ] spids: [1121 1135] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 12>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/modules'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^meson_ir'>)} ) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {<-e>} {(DQ <meson_ir>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) ] spids: [1344 1372] ) ] ) ] spids: [1314 1336] ) ] ) (C {<systemctl>} {<disable>} {<lirc>}) (C {<rm>} {<'/etc/init.d/lirc'>}) (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: 1439 stdin_parts: [ <'[Unit]\n'> <'Description=Odroid Remote C1/C2/XU4\n'> <'\n'> <'[Service]\n'> <'Type=forking\n'> <'ExecStartPre=/bin/bash -c \'mkdir -p /var/run/lirc\'\n'> < 'ExecStart=/usr/sbin/lircd --output=/run/lirc/lircd --driver=default --device=/dev/lirc0 --uinput\n' > <'\n'> <'[Install]\n'> <'WantedBy=multi-user.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/odroid-remote.service'>} ) ] do_fork: T ) (C {<systemctl>} {<daemon-reload>}) (C {<systemctl>} {<enable>} {<odroid-remote.service>}) (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: 1503 stdin_parts: [ <'begin remote\n'> <'\n'> <' name lircd.conf\n'> <' bits 16\n'> <' flags SPACE_ENC|CONST_LENGTH\n'> <' eps 30\n'> <' aeps 100\n'> <'\n'> <' header 9000 4500\n'> <' one 563 1688\n'> <' zero 563 564\n'> <' ptrail 563\n'> <' pre_data_bits 16\n'> <' pre_data 0x4DB2\n'> <' repeat 9000 2250\n'> <' toggle_bit_mask 0x0\n'> <' begin codes\n'> <'\n'> <' KEY_LEFT 0x9966\n'> <' KEY_RIGHT 0x837C\n'> <' KEY_UP 0x53AC\n'> <' KEY_DOWN 0x4BB4\n'> <' KEY_ENTER 0x738C\n'> <' KEY_HOME 0x41BE\n'> <' KEY_MUTE 0x11EE\n'> <' KEY_MENU 0xA35C\n'> <' KEY_BACK 0x59A6\n'> <' KEY_VOLUMEDOWN 0x817E\n'> <' KEY_VOLUMEUP 0x01FE\n'> <' KEY_POWER 0x3BC4\n'> <'\n'> <' end codes\n'> <'\n'> <'end remote\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/lirc/lircd.conf'>} ) ] do_fork: T ) ] spids: [1085 1102] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <justboom_ir_remote>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<RemoteIR_Prereqs>}) (command.Simple words: [{<RemoteIR_Reset_All>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (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: 1553 stdin_parts: [<'dtoverlay=lirc-rpi\n'> <'dtparam=gpio_in_pin=25\n'>] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) (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: 1596 stdin_parts: [ <'LIRCD_ARGS='> <Id.Right_DoubleQuote '"'> <--uinput> <Id.Right_DoubleQuote '"'> <'\n'> <'LOAD_MODULES=true\n'> <'DRIVER='> <Id.Right_DoubleQuote '"'> <default> <Id.Right_DoubleQuote '"'> <'\n'> <'DEVICE='> <Id.Right_DoubleQuote '"'> <'/dev/lirc0'> <Id.Right_DoubleQuote '"'> <'\n'> <'MODULES='> <Id.Right_DoubleQuote '"'> <lirc_rpi> <Id.Right_DoubleQuote '"'> <'\n'> <'LIRCD_CONF='> <Id.Right_DoubleQuote '"'> <Id.Right_DoubleQuote '"'> <'\n'> <'LIRCMD_CONF='> <Id.Right_DoubleQuote '"'> <Id.Right_DoubleQuote '"'> <'\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/lirc/hardware.conf'>} ) ] do_fork: T ) (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: 1647 stdin_parts: [ <'begin remote\n'> <'\n'> <' name lircd.conf\n'> <' bits 5\n'> <' flags RC5|CONST_LENGTH\n'> <' eps 30\n'> <' aeps 100\n'> <'\n'> <' one 921 855\n'> <' zero 921 855\n'> <' plead 936\n'> <' pre_data_bits 8\n'> <' pre_data 0xA0\n'> <' gap 114211\n'> <' toggle_bit_mask 0x800\n'> <'\n'> <' suppress_repeat 5\n'> <' duty_cycle 300\n'> <'\n'> <' begin codes\n'> <'\n'> <' KEY_HOME 0x10\n'> <' KEY_POWER 0x11\n'> <' KEY_MUTE 0x12\n'> <' KEY_LEFT 0x13\n'> <' KEY_RIGHT 0x14\n'> <' KEY_ENTER 0x15\n'> <' KEY_MENU 0x16\n'> <' KEY_BACK 0x17\n'> <' KEY_VOLUMEDOWN 0x18\n'> <' KEY_VOLUMEUP 0x19\n'> <' KEY_UP 0x1A\n'> <' KEY_DOWN 0x1B\n'> <'\n'> <' end codes\n'> <'\n'> <'end remote\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/lirc/lircd.conf'>} ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^mpc[[:space:]]'>)} ) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGI>} {<mpc>})] spids: [1654 1682] ) ] ) (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: 1753 stdin_parts: [ <'begin\n'> <'prog = irexec\n'> <'button = KEY_ENTER\n'> <'config = mpc toggle\n'> <'end\n'> <'begin\n'> <'prog = irexec\n'> <'button = KEY_VOLUMEUP\n'> <'config = mpc volume +2\n'> <'end\n'> <'begin\n'> <'prog = irexec\n'> <'button = KEY_VOLUMEDOWN\n'> <'config = mpc volume -2\n'> <'end\n'> <'begin\n'> <'prog = irexec\n'> <'button = KEY_RIGHT\n'> <'config = mpc next\n'> <'end\n'> <'begin\n'> <'prog = irexec\n'> <'button = KEY_LEFT\n'> <'config = mpc prev\n'> <'end\n'> <'begin\n'> <'prog = irexec\n'> <'button = KEY_UP\n'> <'config = mpc seek +00:00:10\n'> <'end\n'> <'begin\n'> <'prog = irexec\n'> <'button = KEY_DOWN\n'> <'config = mpc seek -00:00:10\n'> <'end\n'> <'begin\n'> <'prog = irexec\n'> <'button = KEY_BACK\n'> <'config = mpc repeat on\n'> <'end\n'> <'begin\n'> <'prog = irexec\n'> <'button = KEY_MENU\n'> <'config = mpc repeat off\n'> <'end\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/.lircrc'>} ) ] do_fork: T ) (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: 1785 stdin_parts: [ <'[Unit]\n'> <'Description=justboom-ir-mpd\n'> <'After=sound.target lirc.service\n'> <'\n'> <'[Service]\n'> <'User='> ($ Id.VSub_DollarName '$USER') <'\n'> <'Type=simple\n'> <'\n'> <'ExecStart=/usr/bin/irexec\n'> <'\n'> <'[Install]\n'> <'WantedBy=default.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/justboom-ir-mpd.service'>} ) ] do_fork: T ) (C {<systemctl>} {<enable>} {<justboom-ir-mpd.service>}) (C {<systemctl>} {<daemon-reload>}) (C {<systemctl>} {<start>} {<justboom-ir-mpd.service>}) ] spids: [1506 1523] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <none>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<RemoteIR_Reset_All>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] spids: [1807 1824] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) ] ) ) (command.ShFunction name: Eth_Force_Speed_Main body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'eth_force_speed='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') } ) (C {<local>} {<Id.Lit_VarLike 'eth_adapter='> (DQ <eth> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.network'>}) ) ) } ) (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: 1940 stdin_parts: [ <'[Unit]\n'> <'Description=ethtool force speed\n'> <'After=network-online.target\n'> <'\n'> <'[Service]\n'> <'Type=oneshot\n'> <'ExecStart=/sbin/ethtool -s '> ($ Id.VSub_DollarName '$eth_adapter') <' speed '> ($ Id.VSub_DollarName '$eth_force_speed') <' duplex full autoneg off\n'> <'\n'> <'[Install]\n'> <'WantedBy=ifup@'> ($ Id.VSub_DollarName '$eth_adapter') <'.service\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/ethtool_force_speed.service'>} ) ] do_fork: T ) (C {<systemctl>} {<enable>} {<ethtool_force_speed.service>}) (C {<systemctl>} {<start>} {<ethtool_force_speed.service>}) ] spids: [1871 1885] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<rm>} {<'/etc/systemd/system/ethtool_force_speed.service'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<systemctl>} {<daemon-reload>}) ] spids: [1957 1974] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) ] ) ) (command.ShFunction name: RPi_OpenGL_Main body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 2>} ) right: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<6>}) (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Installing additional OpenGL packages, please wait...'> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<sleep>} {<1>}) (C {<G_AGI>} {<libgl1-mesa-dri>} {<mesa-utils>}) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=vc4-kms-v3d/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (command.Simple words: [ {<echo>} {<-e>} {(DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay=vc4-kms-v3d'>)} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) ] spids: [2056 2078] ) ] else_action: [ (C {<G_DIETPI-NOTIFY>} {<1>} {(DQ <'OpenGL requires a RPi 2 or higher'>)}) (C {<sleep>} {<2>}) ] ) ] spids: [2031 2048] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/dtoverlay=vc4-kms-v3d/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] spids: [2180 2197] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) ] ) ) (command.ShFunction name: Lcd_Panel_Not_Available_For_Device body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXIT_CODE) op: assign_op.Equal rhs: {<1>} spids: [2250] ) ] ) (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') <' is not available for this device. Nothing has been applied.'> ) } ) ] ) ) (command.ShFunction name: Lcd_Panel_Main body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'update_dietpitxt='> <1>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <odroid-lcd35>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Lcd_Panel_OdroidLCD35_Enable>})] spids: [2283 2300] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <waveshare32>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Lcd_Panel_Waveshare32_Enable>})] spids: [2308 2325] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <odroid-cloudshell>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Lcd_Panel_Odroidcloudshell_Enable>})] spids: [2333 2350] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <none>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Lcd_Panel_Waveshare32_Disable>}) (C {<Lcd_Panel_Odroidcloudshell_Disable>}) (C {<Lcd_Panel_OdroidLCD35_Disable>}) ] spids: [2362 2379] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:update_dietpitxt) op: assign_op.Equal rhs: {<0>} spids: [2397] ) ] ) (C {<Unknown_Input_Mode>}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child:{($ Id.VSub_DollarName '$update_dietpitxt')}) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/^CONFIG_LCDPANEL=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_LCDPANEL='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } {<'/DietPi/dietpi.txt'>} ) ] spids: [2413 2423] ) ] ) ] ) ) (command.ShFunction name: Lcd_Panel_Xorg_All_Enable body: (BraceGroup children: [ (C {<G_AGI>} {<xinput-calibrator>}) (C {<mkdir>} {<-p>} {<'/etc/X11/xorg.conf.d'>}) (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$HOME')) <'/Desktop'>}) (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: 2513 stdin_parts: [ <'[Desktop Entry]\n'> <'Version=1.0\n'> <'Name=xinput_calibrator\n'> <'Type=Application\n'> <'Comment=xinput_calibrator\n'> <'Terminal=true\n'> <'Exec=xinput_calibrator\n'> <'#Icon=/DietPi/dietpi/conf/desktop/dietpi-icon.png\n'> <'Categories=System;\n'> <'GenericName=xinput_calibrator\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$HOME')) <'/Desktop/xinput_calibrator.desktop'>} ) ] do_fork: T ) ] ) ) (command.ShFunction name: Lcd_Panel_Waveshare32_Enable_X11 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: 2577 stdin_parts: [ <'Section '> <Id.Right_DoubleQuote '"'> <Device> <Id.Right_DoubleQuote '"'> <'\n'> <' Identifier '> <Id.Right_DoubleQuote '"'> <'Allwinner A10/A13 FBDEV'> <Id.Right_DoubleQuote '"'> <'\n'> <' Driver '> <Id.Right_DoubleQuote '"'> <fbturbo> <Id.Right_DoubleQuote '"'> <'\n'> <' Option '> <Id.Right_DoubleQuote '"'> <fbdev> <Id.Right_DoubleQuote '"'> <' '> <Id.Right_DoubleQuote '"'> <'/dev/fb1'> <Id.Right_DoubleQuote '"'> <'\n'> <'\n'> <' Option '> <Id.Right_DoubleQuote '"'> <SwapbuffersWait> <Id.Right_DoubleQuote '"'> <' '> <Id.Right_DoubleQuote '"'> <true> <Id.Right_DoubleQuote '"'> <'\n'> <'EndSection\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/X11/xorg.conf.d/99-waveshare32_xorg.conf'>} ) ] do_fork: T ) (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: 2625 stdin_parts: [ <'Section '> <Id.Right_DoubleQuote '"'> <InputClass> <Id.Right_DoubleQuote '"'> <'\n'> <' Identifier '> <Id.Right_DoubleQuote '"'> <calibration> <Id.Right_DoubleQuote '"'> <'\n'> <' MatchProduct '> <Id.Right_DoubleQuote '"'> <'ADS7846 Touchscreen'> <Id.Right_DoubleQuote '"'> <'\n'> <' Option '> <Id.Right_DoubleQuote '"'> <Calibration> <Id.Right_DoubleQuote '"'> <' '> <Id.Right_DoubleQuote '"'> <'219 3835 3984 219'> <Id.Right_DoubleQuote '"'> <'\n'> <' Option '> <Id.Right_DoubleQuote '"'> <SwapAxes> <Id.Right_DoubleQuote '"'> <' '> <Id.Right_DoubleQuote '"'> <1> <Id.Right_DoubleQuote '"'> <'\n'> <'EndSection\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/X11/xorg.conf.d/99-waveshare32_calibration.conf'>} ) ] do_fork: T ) ] ) ) (command.ShFunction name: Lcd_Panel_Waveshare32_Enable body: (BraceGroup children: [ (C {<Lcd_Panel_Waveshare32_Disable>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Lcd_Panel_Xorg_All_Enable>}) (C {<Lcd_Panel_Waveshare32_Enable_X11>}) (C {<wget>} {<http> <Id.Lit_Colon ':'> <'//dietpi.com/downloads/conf/waveshare32b-overlay.dtb'> } {<-O>} {<'/boot/overlays/waveshare32b.dtbo'>} ) (C {<sed>} {<-i>} {(SQ <'s/rootwait/rootwait fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo/'>)} {<'/boot/cmdline.txt'>} ) (C {<sed>} {<-i>} {(DQ <'/dtparam=i2c_arm=/c'> <Id.Lit_BadBackslash '\\'> <'dtparam=i2c_arm=on'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(DQ <'/dtparam=spi=/c'> <Id.Lit_BadBackslash '\\'> <'dtparam=spi=on'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (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: 2758 stdin_parts: [ <'\n'> <'#Waveshare 32 LCD\n'> <'dtoverlay=waveshare32b:rotate=270\n'> < '#dtoverlay=ads7846,cs=1,penirq=17,penirq_pull=2,speed=1000000,keep_vref_on=1,swapxy=0,pmax=255,xohms=60,xmin=200,xmax=3900,ymin=200,ymax=3900\n' > <'#dtoverlay=w1-gpio-pullup,gpiopin=4,extpullup=1\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) (C {<sed>} {<-i>} {(SQ <'/"SwapAxes"/c\\ Option "SwapAxes" "1"'>)} {<'/etc/X11/xorg.conf.d/99-waveshare32_calibration.conf'>} ) (C {<mv>} {<'/usr/share/X11/xorg.conf.d/99-fbturbo.conf'>} {<'/usr/share/X11/99-fbturbo.conf'>} ) ] spids: [2651 2665] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 20>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Lcd_Panel_Xorg_All_Enable>}) (C {<Lcd_Panel_Waveshare32_Enable_X11>}) (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: 2857 stdin_parts: [ <'[Unit]\n'> <'Description=con2fbmap\n'> <'\n'> <'[Service]\n'> <'Type=oneshot\n'> <'ExecStart=/bin/con2fbmap 1 2\n'> <'ExecStop=/bin/con2fbmap 1 0\n'> <'\n'> <'RemainAfterExit=yes\n'> <'\n'> <'[Install]\n'> <'WantedBy=multi-user.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/con2fbmap.service'>} ) ] do_fork: T ) (C {<systemctl>} {<enable>} {<con2fbmap.service>}) (C {<systemctl>} {<daemon-reload>}) (command.Simple words: [{<echo>} {<-e>} {(DQ <spicc>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <fbtft_device>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (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: 2911 stdin_parts: [ < 'options fbtft_device name=odroidc_tft32 rotate=270 gpios=reset:116,dc:115 speed=32000000 cs=0\n' > ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/waveshare32.conf'>} ) ] do_fork: T ) (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: 2965 stdin_parts: [ <'Section '> <Id.Right_DoubleQuote '"'> <Device> <Id.Right_DoubleQuote '"'> <'\n'> <'\tIdentifier '> <Id.Right_DoubleQuote '"'> <FBDEV> <Id.Right_DoubleQuote '"'> <'\n'> <'\tDriver '> <Id.Right_DoubleQuote '"'> <fbdev> <Id.Right_DoubleQuote '"'> <'\n'> <'\tOption '> <Id.Right_DoubleQuote '"'> <fbdev> <Id.Right_DoubleQuote '"'> <' '> <Id.Right_DoubleQuote '"'> <'/dev/fb2'> <Id.Right_DoubleQuote '"'> <'\n'> <'\n'> <'\t#Option '> <Id.Right_DoubleQuote '"'> <SwapbuffersWait> <Id.Right_DoubleQuote '"'> <' '> <Id.Right_DoubleQuote '"'> <true> <Id.Right_DoubleQuote '"'> <'\n'> <'EndSection\n'> <'\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/X11/xorg.conf.d/99-waveshare32_xorg.conf'>} ) ] do_fork: T ) ] spids: [2793 2815] ) ] else_action: [(C {<Lcd_Panel_Not_Available_For_Device>})] ) ] ) ) (command.ShFunction name: Lcd_Panel_Waveshare32_Disable body: (BraceGroup children: [ (C {<rm>} {<'/etc/X11/xorg.conf.d/99-waveshare32_calibration.conf'>}) (C {<rm>} {<'/etc/X11/xorg.conf.d/99-waveshare32_xorg.conf'>}) (C {<rm>} {<'/usr/share/applications/xinput_calibrator.desktop'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<'/boot/overlays/waveshare32b.dtbo'>}) (C {<sed>} {<-i>} {(SQ <'s/ fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo//'>)} {<'/boot/cmdline.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/Waveshare 32 LCD/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=waveshare32b/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=ads7846,cs=1,penirq=17/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=w1-gpio-pullup,gpiopin=4,extpullup=1/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<mv>} {<'/usr/share/X11/99-fbturbo.conf'>} {<'/usr/share/X11/xorg.conf.d/99-fbturbo.conf'>} ) ] spids: [3016 3030] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 20>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<'/etc/systemd/system/con2fbmap.service'>}) (C {<systemctl>} {<daemon-reload>}) (C {<rm>} {<'/etc/modprobe.d/waveshare32.conf'>}) (C {<sed>} {<-i>} {(SQ <'/^spicc/d'>)} {<'/etc/modules'>}) (C {<sed>} {<-i>} {(SQ <'/^fbtft_device/d'>)} {<'/etc/modules'>}) ] spids: [3133 3155] ) ] ) ] ) ) (command.ShFunction name: Lcd_Panel_Odroidcloudshell_Enable 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: 3229 stdin_parts: [<'options fbtft_device name=hktft9340 busnum=1 rotate=270\n'>] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/odroid-cloudshell.conf'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <spi_s3c64xx>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <fbtft_device>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <fbtft_device>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) ] ) ) (command.ShFunction name: Lcd_Panel_Odroidcloudshell_Disable body: (BraceGroup children: [ (C {<rm>} {<'/etc/modprobe.d/odroid-cloudshell.conf'>}) (C {<sed>} {<-i>} {(SQ <'/^spi_s3c64xx/d'>)} {<'/etc/modules'>}) (C {<sed>} {<-i>} {(SQ <'/^fbtft_device/d'>)} {<'/etc/modules'>}) ] ) ) (command.ShFunction name: Lcd_Panel_OdroidLCD35_Enable body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 20>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Lcd_Panel_OdroidLCD35_Disable>}) (C {<Lcd_Panel_Xorg_All_Enable>}) (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: 3397 stdin_parts: [ <'options fbtft_device name=flexpfb rotate=90\n'> <'options flexfb chip=ili9488\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/odroid-lcd35.conf'>} ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/modules'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <flexfb>)}) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (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 11>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (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: 3468 stdin_parts: [ <'fbtft_device\n'> <'flexfb\n'> <'sx865x\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) ] spids: [3436 3450] ) ] else_action: [ (C {<sed>} {<-i>} {(SQ <'/^aml_i2c/d'>)} {<'/etc/modules'>}) (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: 3512 stdin_parts: [ <'aml_i2c\n'> <'pwm-meson\n'> <'pwm-ctrl\n'> <'fbtft_device\n'> <'flexfb\n'> <'sx865x\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) ] ) ] spids: [3400 3428] ) ] ) (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 11>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (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: 3575 stdin_parts: [ <'[Unit]\n'> <'Description=Odroid LCD 3.5\n'> <'\n'> <'[Path]\n'> <'PathExists=/dev/fb2\n'> <'\n'> <'[Service]\n'> <'Type=oneshot\n'> <'RemainAfterExit=yes\n'> <'ExecStart=/usr/bin/setterm -blank 0 -powersave off\n'> <'ExecStart=/bin/con2fbmap 1 2\n'> <'StandardOutput=tty\n'> <'\n'> <'[Install]\n'> <'WantedBy=multi-user.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/odroid-lcd35.service'>} ) ] do_fork: T ) ] spids: [3531 3545] ) ] else_action: [ (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: 3615 stdin_parts: [ <'[Unit]\n'> <'Description=Odroid LCD 3.5\n'> <'\n'> <'[Path]\n'> <'PathExists=/dev/fb2\n'> <'\n'> <'[Service]\n'> <'Type=oneshot\n'> <'RemainAfterExit=yes\n'> < 'ExecStart=/bin/bash -c \'echo 500000 > /sys/devices/platform/pwm-ctrl/freq0\'\n' > < 'ExecStart=/bin/bash -c \'echo 1 > /sys/devices/platform/pwm-ctrl/enable0\'\n' > < 'ExecStart=/bin/bash -c \'echo 1023 > /sys/devices/platform/pwm-ctrl/duty0\'\n' > <'ExecStart=/usr/bin/setterm -blank 0 -powersave off\n'> <'ExecStart=/bin/con2fbmap 1 2\n'> <'StandardOutput=tty\n'> <'\n'> <'[Install]\n'> <'WantedBy=multi-user.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/odroid-lcd35.service'>} ) ] do_fork: T ) ] ) (C {<systemctl>} {<enable>} {<odroid-lcd35.service>}) (C {<systemctl>} {<daemon-reload>}) (C {<rm>} {<'/etc/X11/xorg.conf.d/exynos.conf'>}) (C {<mkdir>} {<-p>} {<'/etc/X11/xorg.conf.d'>}) (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: 3691 stdin_parts: [ <'Section '> <Id.Right_DoubleQuote '"'> <Device> <Id.Right_DoubleQuote '"'> <'\n'> <' Identifier '> <Id.Right_DoubleQuote '"'> <'C fbdev'> <Id.Right_DoubleQuote '"'> <'\n'> <' Driver '> <Id.Right_DoubleQuote '"'> <fbdev> <Id.Right_DoubleQuote '"'> <'\n'> <' Option '> <Id.Right_DoubleQuote '"'> <fbdev> <Id.Right_DoubleQuote '"'> <' '> <Id.Right_DoubleQuote '"'> <'/dev/fb2'> <Id.Right_DoubleQuote '"'> <'\n'> <'EndSection\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/X11/xorg.conf.d/99-odroid-lcd35.conf'>} ) ] do_fork: T ) (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: 3743 stdin_parts: [ <'Section '> <Id.Right_DoubleQuote '"'> <InputClass> <Id.Right_DoubleQuote '"'> <'\n'> <' Identifier '> <Id.Right_DoubleQuote '"'> <calibration> <Id.Right_DoubleQuote '"'> <'\n'> <' MatchProduct '> <Id.Right_DoubleQuote '"'> <'SX865X Touchscreen'> <Id.Right_DoubleQuote '"'> <'\n'> <' Option '> <Id.Right_DoubleQuote '"'> <Calibration> <Id.Right_DoubleQuote '"'> <' '> <Id.Right_DoubleQuote '"'> <'3854 155 3880 262'> <Id.Right_DoubleQuote '"'> <'\n'> <' Option '> <Id.Right_DoubleQuote '"'> <SwapAxes> <Id.Right_DoubleQuote '"'> <' '> <Id.Right_DoubleQuote '"'> <0> <Id.Right_DoubleQuote '"'> <'\n'> <'EndSection\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/X11/xorg.conf.d/99-calibration.conf'>} ) ] do_fork: T ) ] spids: [3346 3368] ) ] else_action: [(C {<Lcd_Panel_Not_Available_For_Device>})] ) ] ) ) (command.ShFunction name: Lcd_Panel_OdroidLCD35_Disable body: (BraceGroup children: [ (C {<rm>} {<'/etc/X11/xorg.conf.d/99-calibration.conf'>}) (C {<rm>} {<'/etc/modprobe.d/odroid-lcd35.conf'>}) (C {<rm>} {<'/etc/systemd/system/odroid-lcd35.service'>}) (C {<rm>} {<'/etc/X11/xorg.conf.d/99-odroid-lcd35.conf'>}) (C {<systemctl>} {<daemon-reload>}) ] ) ) (command.ShFunction name: I2c_Main body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<-l>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <i2c-tools>)}) ] negated: F ) ) } right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Installing Python-smbus, i2c-tools, pre-reqs.'> <Id.Lit_BadBackslash '\\'> <'nPlease wait...'> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<sleep>} {<1>}) (C {<G_AGI>} {<python-smbus>} {<i2c-tools>}) ] spids: [3848 3878] ) ] ) (command.Simple words: [{<sed>} {<-i>} {(SQ <'/i2c-bcm2708/d'>)} {<'/etc/modules'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [{<sed>} {<-i>} {(SQ <'/i2c-dev/d'>)} {<'/etc/modules'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <i2c-bcm2708>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <i2c-dev>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (command.Simple words: [ {<sed>} {<-i>} {(SQ <'/blacklist spi-bcm2708/d'>)} {<'/etc/modprobe.d/raspi-blacklist.conf'>} ] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [ {<sed>} {<-i>} {(SQ <'/blacklist i2c-bcm2708/d'>)} {<'/etc/modprobe.d/raspi-blacklist.conf'>} ] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<sed>} {<-i>} {(DQ <'/dtparam=i2c_arm=/c'> <Id.Lit_BadBackslash '\\'> <'dtparam=i2c_arm=on'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(DQ <'/dtparam=i2c1=/c'> <Id.Lit_BadBackslash '\\'> <'dtparam=i2c1=on'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} { (SQ < '/^aSOFTWARE_INSTALL_STATE\\[72\\]=/c\\aSOFTWARE_INSTALL_STATE\\[72\\]=2' > ) } {<'/DietPi/dietpi/.installed'>} ) ] spids: [3823 3840] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<sed>} {<-i>} {(SQ <'/i2c-bcm2708/d'>)} {<'/etc/modules'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [{<sed>} {<-i>} {(SQ <'/i2c-dev/d'>)} {<'/etc/modules'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<sed>} {<-i>} { (DQ <'/dtparam=i2c_arm=/c'> <Id.Lit_BadBackslash '\\'> <'dtparam=i2c_arm=off'>) } {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(DQ <'/dtparam=i2c1=/c'> <Id.Lit_BadBackslash '\\'> <'dtparam=i2c1=off'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} { (DQ <'/i2c_arm_baudrate=/c'> <Id.Lit_BadBackslash '\\'> <'i2c_arm_baudrate=100000'> ) } {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] spids: [4067 4084] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')} right: {<Id.Lit_Digits 2>} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/i2c_arm_baudrate=/c'> <Id.Lit_BadBackslash '\\'> <'i2c_arm_baudrate='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')} right: {<Id.Lit_Digits 1000>} ) ) ) } {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_VALUE) op: assign_op.PlusEqual rhs: {(DQ <Khz>)} spids: [4235] ) ] ) ] spids: [4168 4201] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) ] ) ) (command.ShFunction name: Bluetooth_Main body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'aBLUETOOTH_MODULES='> (sh_array_literal left:<Id.Op_LParen _>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aBLUETOOTH_MODULES) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <bluetooth>)}])} spids: [4286] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aBLUETOOTH_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <bnep>)}])} spids: [4294] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aBLUETOOTH_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <btbcm>)}])} spids: [4303] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aBLUETOOTH_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <rfcomm>)}])} spids: [4315] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aBLUETOOTH_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <hidp>)}])} spids: [4326] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aBLUETOOTH_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <hci_uart>)}])} spids: [4338] ) ] ) (command.Simple words: [{<rm>} {<'/etc/modprobe.d/disable_bt.conf'>}] 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: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 61>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 62>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<systemctl>} {<stop>} {<brcm_patchram_plus>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [{<systemctl>} {<disable>} {<brcm_patchram_plus>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] spids: [4386 4408] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 52>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<systemctl>} {<stop>} {<hciuart>}) (C {<systemctl>} {<disable>} {<hciuart>}) ] spids: [4447 4469] ) ] ) (command.Simple words: [{<systemctl>} {<stop>} {<bluetooth>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [{<systemctl>} {<disable>} {<bluetooth>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (braced_var_sub token: <Id.VSub_Name aBLUETOOTH_MODULES> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<Id.Lit_Digits 1>} ) ) } ) cond: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDMinus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (command.Simple words: [ {<modprobe>} {<-rf>} { (DQ (braced_var_sub token: <Id.VSub_Name aBLUETOOTH_MODULES> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [ {<echo>} {<-e>} { (DQ <'blacklist '> (braced_var_sub token: <Id.VSub_Name aBLUETOOTH_MODULES> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/disable_bt.conf'>} ) ] do_fork: T ) ] ) ) (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 '$G_DIETPI_INSTALL_STAGE')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGP>} {<bluetooth>} {<bluez-firmware>}) (C {<G_AGA>})] spids: [4603 4617] ) ] ) ] spids: [4361 4378] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_AG_CHECK_INSTALL_PREREQ>} {<bluetooth>} {<bluez-firmware>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AG_CHECK_INSTALL_PREREQ>} {<pi-bluetooth>})] spids: [4672 4686] ) ] ) (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 aBLUETOOTH_MODULES> 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: [ {<modprobe>} { (DQ (braced_var_sub token: <Id.VSub_Name aBLUETOOTH_MODULES> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 61>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 62>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<systemctl>} {<enable>} {<brcm_patchram_plus>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<G_RUN_CMD>} {<systemctl>} {<start>} {<brcm_patchram_plus>}) ] spids: [4758 4780] ) ] ) (command.Simple words: [{<systemctl>} {<enable>} {<bluetooth>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<G_RUN_CMD>} {<systemctl>} {<start>} {<bluetooth>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 52>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<systemctl>} {<enable>} {<hciuart>}) (C {<G_RUN_CMD>} {<systemctl>} {<start>} {<hciuart>}) ] spids: [4834 4856] ) ] ) ] spids: [4640 4657] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) (C {<unset>} {<aBLUETOOTH_MODULES>}) ] ) ) (command.ShFunction name: Prefer_IPversion body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <ipv4>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(SQ <'Acquire::ForceIPv4 "true";'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/apt/apt.conf.d/99-dietpi-force-ipv4'>} ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe Id.Op_DAmp Id.Op_DPipe] children: [ (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*prefer-family ='>)} {<'/etc/wgetrc'>}) (C {<sed>} {<-i>} {(SQ <'/^[[:blank:]]*prefer-family =/c\\prefer-family = IPv4'>)} {<'/etc/wgetrc'>} ) (C {<grep>} {<-q>} {(SQ <'^[[:blank:]#;]*prefer-family ='>)} {<'/etc/wgetrc'>}) (C {<sed>} {<-i>} {(SQ <'/^[[:blank:]#;]*prefer-family =/c\\prefer-family = IPv4'>)} {<'/etc/wgetrc'>} ) (command.Simple words: [{<echo>} {(SQ <'prefer-family = IPv4'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/wgetrc'>} ) ] do_fork: T ) ] ) ] spids: [4923 4940] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <ipv6>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<rm>} {<'/etc/apt/apt.conf.d/99-dietpi-force-ipv4'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe Id.Op_DAmp Id.Op_DPipe] children: [ (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*prefer-family ='>)} {<'/etc/wgetrc'>}) (C {<sed>} {<-i>} {(SQ <'/^[[:blank:]]*prefer-family =/c\\prefer-family = IPv6'>)} {<'/etc/wgetrc'>} ) (C {<grep>} {<-q>} {(SQ <'^[[:blank:]#;]*prefer-family ='>)} {<'/etc/wgetrc'>}) (C {<sed>} {<-i>} {(SQ <'/^[[:blank:]#;]*prefer-family =/c\\prefer-family = IPv6'>)} {<'/etc/wgetrc'>} ) (command.Simple words: [{<echo>} {(SQ <'prefer-family = IPv6'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/wgetrc'>} ) ] do_fork: T ) ] ) ] spids: [5027 5044] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <auto>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<rm>} {<'/etc/apt/apt.conf.d/99-dietpi-force-ipv4'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*prefer-family ='>)} {<'/etc/wgetrc'>}) (C {<sed>} {<-i>} {(SQ <'s/^[[:blank:]]*prefer-family =/#prefer-family =/'>)} {<'/etc/wgetrc'>} ) ] ) ] spids: [5129 5146] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_PREFER_IPVERSION=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_PREFER_IPVERSION='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } {<'/DietPi/dietpi.txt'>} ) ] ) ) (command.ShFunction name: Wifi_Modules_Main body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'aWIFI_MODULES='> (sh_array_literal left:<Id.Op_LParen _>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWIFI_MODULES) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <cfg80211>)}])} spids: [5246] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWIFI_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <brcmfmac>)}])} spids: [5263] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWIFI_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <brcmutil>)}])} spids: [5274] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWIFI_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <ap6211>)}])} spids: [5290] ) ] ) (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 32>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWIFI_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <xradio_wlan>)}])} spids: [5324] ) ] ) ] spids: [5306 5320] ) (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 34>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWIFI_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <8189es>)}])} spids: [5355] ) ] ) ] spids: [5337 5351] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 40>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 52>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWIFI_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <8723bs>)}])} spids: [5394] ) ] ) ] spids: [5368 5390] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 35>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 64>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {<'/boot/dtb'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWIFI_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <dhd>)}])} spids: [5454] ) ] ) ] spids: [5437 5450] ) ] ) ] spids: [5407 5429] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWIFI_MODULES) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <bcmdhd>)}])} spids: [5475] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<rm>} {<'/etc/modprobe.d/disable_wifi.conf'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (braced_var_sub token: <Id.VSub_Name aWIFI_MODULES> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<Id.Lit_Digits 1>} ) ) } ) cond: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDMinus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (command.Simple words: [ {<modprobe>} {<-rf>} { (DQ (braced_var_sub token: <Id.VSub_Name aWIFI_MODULES> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [ {<echo>} {<-e>} { (DQ <'blacklist '> (braced_var_sub token: <Id.VSub_Name aWIFI_MODULES> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/disable_wifi.conf'>} ) ] do_fork: T ) ] ) ) (command.Simple words: [{<systemctl>} {<disable>} {<wifi_disable_powersave>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [{<rm>} {<'/etc/systemd/system/wifi_disable_powersave.service'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] spids: [5488 5505] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_AG_CHECK_INSTALL_PREREQ>} {<crda>} {<firmware-atheros>} {<firmware-brcm80211>} {<firmware-ralink>} {<iw>} {<rfkill>} {<wireless-tools>} {<wpasupplicant>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '$?')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [5676 5690] ) ] ) (command.Simple words: [{<rm>} {<'/etc/modprobe.d/disable_wifi.conf'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <'options 8192cu rtw_power_mgnt=0'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/8192cu.conf'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <'options 8188eu rtw_power_mgnt=0'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/8188eu.conf'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <'options 8189es rtw_power_mgnt=0'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/8189es.conf'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <'options 8723bs rtw_power_mgnt=0'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/8723bs.conf'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <'options wlan_8192eu rtw_power_mgnt=0'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/wlan_8192eu.conf'>} ) ] do_fork: T ) (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 aWIFI_MODULES> 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: [ {<modprobe>} { (DQ (braced_var_sub token: <Id.VSub_Name aWIFI_MODULES> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Please wait, enabling WiFi Modules...'>)}) (C {<sleep>} {<3>}) (C {<'/DietPi/dietpi/func/obtain_network_details'>}) (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: 5910 stdin_parts: [ <'[Unit]\n'> <'Description=Disable WiFi power management\n'> <'After=network.target network-online.target\n'> <'\n'> <'[Service]\n'> <'Type=simple\n'> <'RemainAfterExit=yes\n'> <'ExecStart=/bin/bash -c \'sleep 20;iwconfig wlan'> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.network'>}) ) <' power off\'\n'> <'\n'> <'[Install]\n'> <'WantedBy=multi-user.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/wifi_disable_powersave.service'>} ) ] do_fork: T ) (C {<systemctl>} {<daemon-reload>}) (C {<systemctl>} {<enable>} {<wifi_disable_powersave>}) (C {<systemctl>} {<start>} {<wifi_disable_powersave>}) ] spids: [5632 5649] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <onboard_enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<rm>} {<'/etc/modprobe.d/disable_wifi_rpi3_onboard.conf'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] spids: [5932 5949] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <onboard_disable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {<-e>} {(DQ <'blacklist brcmfmac'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/disable_wifi_rpi3_onboard.conf'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <'blacklist brcmutil'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/disable_wifi_rpi3_onboard.conf'>} ) ] do_fork: T ) ] spids: [5972 5989] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) (C {<unset>} {<aWIFI_MODULES>}) ] ) ) (command.ShFunction name: Wifi_Creds_Main body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <set>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'Wifi_KEYMGR='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_NET_WIFI_KEYMGR='>)} {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'Wifi_KEY='> (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_NET_WIFI_KEY='>)} {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) ) } ) (C {<local>} {<Id.Lit_VarLike 'Wifi_SSID='> (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_NET_WIFI_SSID='>)} {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) ) } ) (C {<mkdir>} {<-p>} {<'/etc/wpa_supplicant'>}) (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: 6225 stdin_parts: [ <'country='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_WIFI_COUNTRY_CODE='>)} {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) <'\n'> < 'ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev\n' > <'update_config=1\n'> <'\n'> <'network={\n'> <' ssid='> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$Wifi_SSID') <Id.Right_DoubleQuote '"'> <'\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/wpa_supplicant/wpa_supplicant.conf'>} ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$Wifi_KEYMGR'))} {<Id.Lit_Equals '='>} {(DQ <NONE>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (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: 6268 stdin_parts: [ <' key_mgmt='> ($ Id.VSub_DollarName '$Wifi_KEYMGR') <'\n'> <'}\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/wpa_supplicant/wpa_supplicant.conf'>} ) ] do_fork: T ) ] spids: [6232 6249] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$Wifi_KEYMGR'))} {<Id.Lit_Equals '='>} {(DQ <WPA-PSK>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (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: 6311 stdin_parts: [ <' key_mgmt='> ($ Id.VSub_DollarName '$Wifi_KEYMGR') <'\n'> <' psk='> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$Wifi_KEY') <Id.Right_DoubleQuote '"'> <'\n'> <'}\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/wpa_supplicant/wpa_supplicant.conf'>} ) ] do_fork: T ) ] spids: [6270 6287] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$Wifi_KEYMGR'))} {<Id.Lit_Equals '='>} {(DQ <WEP>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Wifi_KEYMGR) op: assign_op.Equal rhs: {(SQ <NONE>)} spids: [6335] ) ] ) (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: 6362 stdin_parts: [ <' key_mgmt='> ($ Id.VSub_DollarName '$Wifi_KEYMGR') <'\n'> <' wep_key0='> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$Wifi_KEY') <Id.Right_DoubleQuote '"'> <'\n'> <' wep_tx_keyidx=0\n'> <'}\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/wpa_supplicant/wpa_supplicant.conf'>} ) ] do_fork: T ) ] spids: [6314 6331] ) ] ) ] spids: [6079 6096] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) ] spids: [6062 6075] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) ] ) ) (command.ShFunction name: Wifi_Countrycode_Main body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_VALUE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} ) (C {<tr>} {(SQ <'[:lower:]'>)} {(SQ <'[:upper:]'>)}) ] negated: F ) ) } spids: [6428] ) ] ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_WIFI_COUNTRY_CODE=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_WIFI_COUNTRY_CODE='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } {<'/DietPi/dietpi.txt'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/wpa_supplicant/wpa_supplicant.conf'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/^country=/c'> <Id.Lit_BadBackslash '\\'> <'country='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } {<'/etc/wpa_supplicant/wpa_supplicant.conf'>} ) ] spids: [6476 6487] ) ] ) ] spids: [6407 6420] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAX_SERIAL_CONSOLES) op: assign_op.Equal rhs: {<2>} spids: [6539] ) ] ) (command.ShFunction name: Serial_Main body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Enabling known serial-getty services, please wait...'>)} ) (C {<systemctl>} {<enable>} {<serial-getty> <Id.Lit_At '@'> <.service>}) (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_LessEqual left: <Id.Lit_ArithVarLike i> right: {($ Id.VSub_DollarName '$MAX_SERIAL_CONSOLES')} ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (C {<systemctl>} {<enable>} {<serial-getty> <Id.Lit_Splice '@ttyAMA'> (DQ ($ Id.VSub_DollarName '$i')) <.service> } ) (C {<systemctl>} {<enable>} {<serial-getty> <Id.Lit_Splice '@ttySAC'> (DQ ($ Id.VSub_DollarName '$i')) <.service> } ) (C {<systemctl>} {<enable>} {<serial-getty> <Id.Lit_Splice '@ttyS'> (DQ ($ Id.VSub_DollarName '$i')) <.service> } ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/boot/cmdline.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'console=ttyAMA0,115200 '>)} ) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'s/console=tty1 /console=tty1 console=ttyAMA0,115200 /'>)} {<'/boot/cmdline.txt'>} ) ] spids: [6700 6728] ) ] ) (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 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=250'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] spids: [6748 6762] ) ] ) ] spids: [6682 6696] ) (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 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (SQ < '/^setenv condev/c\\setenv condev "console=tty0 console=ttyS0,115200n8"' > ) } {<'/DietPi/boot.ini'>} ) ] spids: [6792 6806] ) (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 11>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'console=ttySAC2,115200n8 '>)} ) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (SQ < 's/console=tty1 /console=tty1 console=ttySAC2,115200n8 /' > ) } {<'/DietPi/boot.ini'>} ) ] spids: [6844 6872] ) ] ) ] spids: [6826 6840] ) (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 12>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (SQ < '/^setenv condev/c\\setenv condev "console=tty0 console=ttyS0,115200n8"' > ) } {<'/DietPi/boot.ini'>} ) ] spids: [6896 6910] ) (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 40>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/uEnv.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'console=ttyS0,115200n8 '>)} ) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'s/console=tty0 /console=tty0 console=ttyS0,115200n8 /'>)} {<'/DietPi/uEnv.txt'>} ) ] spids: [6948 6976] ) ] ) ] spids: [6930 6944] ) ] ) (C {<sed>} {<-i>} {(SQ <'/^CONFIG_SERIAL_CONSOLE_ENABLE=/c\\CONFIG_SERIAL_CONSOLE_ENABLE=1'>)} {<'/DietPi/dietpi.txt'>} ) ] spids: [6562 6579] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Disabling known serial-getty services, please wait...'>)} ) (C {<systemctl>} {<disable>} {<serial-getty> <Id.Lit_At '@'> <.service>}) (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_LessEqual left: <Id.Lit_ArithVarLike i> right: {($ Id.VSub_DollarName '$MAX_SERIAL_CONSOLES')} ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (C {<systemctl>} {<disable>} {<serial-getty> <Id.Lit_Splice '@ttyAMA'> (DQ ($ Id.VSub_DollarName '$i')) <.service> } ) (C {<systemctl>} {<disable>} {<serial-getty> <Id.Lit_Splice '@ttySAC'> (DQ ($ Id.VSub_DollarName '$i')) <.service> } ) (C {<systemctl>} {<disable>} {<serial-getty> <Id.Lit_Splice '@ttyS'> (DQ ($ Id.VSub_DollarName '$i')) <.service> } ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'s/console=ttyAMA0,115200 //'>)} {<'/boot/cmdline.txt'>} ) (C {<sed>} {<-i>} {(SQ <'s/console=ttyS0,115200 //'>)} {<'/boot/cmdline.txt'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 3>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} { (DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG' ) ) } ) (C {<grep>} {<-m1>} {(SQ <'core_freq='>)} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } right: {<Id.Lit_Digits 250>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\#core_freq=400'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] spids: [7194 7241] ) ] ) ] spids: [7140 7154] ) (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 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/^setenv condev/c\\setenv condev "console=tty0"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [7267 7281] ) (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 11>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'s/console=ttySAC2,115200n8 //'>)} {<'/DietPi/boot.ini'>} ) ] spids: [7301 7315] ) (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 12>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/^setenv condev/c\\setenv condev "console=tty0"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [7335 7349] ) (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 40>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'s/console=ttyS0,115200n8 //'>)} {<'/DietPi/uEnv.txt'>} ) ] spids: [7369 7383] ) ] ) (C {<sed>} {<-i>} {(SQ <'/^CONFIG_SERIAL_CONSOLE_ENABLE=/c\\CONFIG_SERIAL_CONSOLE_ENABLE=0'>)} {<'/DietPi/dietpi.txt'>} ) ] spids: [7025 7042] ) ] else_action: [(C {<Unknown_Input_Mode>})] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<0>} spids: [7449] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE) op: assign_op.Equal rhs: {<0>} spids: [7453] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ALSA_EQ_ENABLED) op: assign_op.Equal rhs: {<0>} spids: [7457] ) ] ) (command.ShFunction name: Soundcard_Reset_All body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<0>} spids: [7473] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE) op: assign_op.Equal rhs: {<0>} spids: [7477] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ALSA_EQ_ENABLED) op: assign_op.Equal rhs: {<0>} spids: [7481] ) ] ) (command.Simple words: [{<rm>} {<'/etc/asound.conf'>}] 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: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^alsa-utils'>)}) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Installing alsa-utils. Please wait...'>)}) (C {<G_AGI>} {<alsa-utils>}) ] spids: [7504 7532] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Soundcard_Reset_RPi>})] spids: [7563 7577] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 20>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Soundcard_Reset_Odroid>})] spids: [7589 7611] ) (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 32>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Soundcard_Reset_H2>})] spids: [7623 7637] ) (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_CPUID')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Soundcard_Reset_H3>})] spids: [7649 7663] ) (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 40>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Soundcard_Reset_PineA64>})] spids: [7675 7689] ) (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 51>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Soundcard_Reset_BPi_Pro>})] spids: [7701 7715] ) (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 70>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Soundcard_Reset_SparkySBC>})] spids: [7727 7741] ) (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 52>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Soundcard_Reset_Asus>})] spids: [7753 7767] ) ] ) ] ) ) (command.ShFunction name: Soundcard_Reset_RPi body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'dtparam=audio='>)}) ] negated: F ) ) } right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {<-e>} {(DQ <'dtparam=audio=off'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) ] spids: [7798 7830] ) ] else_action: [ (C {<sed>} {<-i>} {(SQ <'/dtparam=audio=/c\\dtparam=audio=off'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] ) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=rpi-bcm2835/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=hifiberry/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=iqaudio/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=justboom/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=allo-/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=rpi-dac/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=i-sabre-k2m/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=dionaudio/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=googlevoicehat-soundcard/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtoverlay=i2s-mmap/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (C {<sed>} {<-i>} {(SQ <'/dtparam=i2s=/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}) (command.Simple words: [{<echo>} {<-e>} {(DQ <'blacklist snd-bcm2835'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/rpi-bcm2708.conf'>} ) ] do_fork: T ) (C {<sed>} {<-i>} {(SQ <'/avoid_pwm_pll=/c\\avoid_pwm_pll=1'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (command.Simple words: [{<systemctl>} {<disable>} {<rpi-bcm2835_forced_3.5mm.service>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [{<rm>} {<'/etc/systemd/system/rpi-bcm2835_forced_3.5mm.service'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<systemctl>} {<daemon-reload>}) ] ) ) (command.ShFunction name: Soundcard_Reset_Odroid body: (BraceGroup children: [ (C {<sed>} {<-i>} {(SQ <'/snd-soc-pcm5102/d'>)} {<'/etc/modules'>}) (C {<sed>} {<-i>} {(SQ <'/snd-soc-odroid-dac/d'>)} {<'/etc/modules'>}) (C {<sed>} {<-i>} {(SQ <'/snd-soc-pcm512x/d'>)} {<'/etc/modules'>}) (C {<sed>} {<-i>} {(SQ <'/snd-soc-pcm512x-i2c/d'>)} {<'/etc/modules'>}) (C {<sed>} {<-i>} {(SQ <'/snd-soc-odroid-dac2/d'>)} {<'/etc/modules'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/systemd/system/odroid-hifishield2.service'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<'/etc/systemd/system/odroid-hifishield2.service'>}) (C {<systemctl>} {<daemon-reload>}) ] spids: [8163 8174] ) ] ) ] ) ) (command.ShFunction name: Soundcard_Reset_H2 body: (BraceGroup children: [ (command.Simple words: [{<amixer>} {<set>} {<-c>} {<0>} {(SQ <'Audio lineout'>)} {<unmute>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) ) (command.ShFunction name: Soundcard_Reset_H3 body: (BraceGroup children: [ (command.Simple words: [{<amixer>} {<set>} {<-c>} {<0>} {(SQ <'Audio lineout'>)} {<mute>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<1>} spids: [8263] ) ] ) ] ) ) (command.ShFunction name: Soundcard_Reset_Asus body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<1>} spids: [8283] ) ] ) ] ) ) (command.ShFunction name: Soundcard_Reset_SparkySBC body: (BraceGroup children: [ (C {<sed>} {<-i>} {(SQ <'/snd-soc-allo-piano-dac/d'>)} {<'/etc/modules'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE) op: assign_op.Equal rhs: {<1>} spids: [8315] ) ] ) (C {<amixer>} {<-c>} {<0>} {<sset>} {(SQ <'audio output mode switch'>)} {(SQ <hdmi>)}) (C {<sed>} {<-i>} {(SQ <'s/aotg.aotg1_speed=1/aotg.aotg1_speed=0/'>)} {<'/DietPi/uEnv.txt'>}) ] ) ) (command.ShFunction name: Soundcard_Reset_PineA64 body: (BraceGroup children:[(C {<rm>} {<'/etc/modules-load.d/pine64-audiojack.conf'>})]) ) (command.ShFunction name: Soundcard_Reset_BPi_Pro body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<0>} spids: [8381] ) ] ) (C {<amixer>} {<sset>} {(SQ <'Left Mixer Left DAC'>)} {<off>}) (C {<amixer>} {<sset>} {(SQ <'Power Amplifier'>)} {<62>}) (C {<amixer>} {<sset>} {(SQ <'Power Amplifier DAC'>)} {<on>}) (C {<amixer>} {<sset>} {(SQ <'Power Amplifier Mixer'>)} {<off>}) (C {<amixer>} {<sset>} {(SQ <'Power Amplifier Mute'>)} {<on>}) (C {<amixer>} {<sset>} {(SQ <'Right Mixer Left DAC'>)} {<off>}) (C {<amixer>} {<sset>} {(SQ <'Right Mixer Right DAC'>)} {<off>}) ] ) ) (command.ShFunction name: Soundcard_Main body: (BraceGroup children: [ (C {<Soundcard_Reset_All>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')} right: {<Id.Lit_Other '*'> <Id.BoolBinary_eq -eq>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ALSA_EQ_ENABLED) op: assign_op.Equal rhs: {<1>} spids: [8517] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_VALUE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} ) (C {<sed>} {(SQ <'s/-eq//g'>)}) ] negated: F ) ) } spids: [8526] ) ] ) ] spids: [8499 8513] ) ] ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_SOUNDCARD=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_SOUNDCARD='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } {<'/DietPi/dietpi.txt'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/dtparam=audio=/c\\dtparam=audio=on'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] spids: [8574 8588] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} arms: [ (case_arm pat_list: [{<hw> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}] action: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))}) (C {<local>} {<Id.Lit_VarLike 'split='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))}) (C {<sed>} {(SQ <'s/,/ /g'>)}) (C {<sed>} {(SQ <'s/hw://g'>)}) (C {<sed>} {(SQ <'s/-eq//g'>)}) ] negated: F ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$split'))}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) } spids: [8691] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$split'))}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } spids: [8712] ) ] ) ] spids: [8637 8640 8734 -1] ) (case_arm pat_list: [{<usb-dac>}] action: [ (C {<local>} {<Id.Lit_VarLike 'usb_detection_card_index='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<aplay>} {<-l>}) (C {<grep>} {<-m1>} {(SQ <'USB Audio'>)}) (C {<awk>} {(SQ <'{print $2}'>)}) (C {<sed>} {(SQ <'s/://g'>)}) ] negated: F ) ) } ) (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 '$usb_detection_card_index')} 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:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$usb_detection_card_index')} spids: [8807] ) ] ) ] spids: [8783 8803] ) ] else_action: [ (C {<G_DIETPI-NOTIFY>} {<1>} {(DQ <'Unable to find a USB-DAC on system.'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXIT_CODE) op: assign_op.Equal rhs: {<1>} spids: [8829] ) ] ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_SOUNDCARD=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_SOUNDCARD=none'> ) } {<'/DietPi/dietpi.txt'>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE) op: assign_op.Equal rhs: {<0>} spids: [8856] ) ] ) (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 70>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'s/aotg.aotg1_speed=0/aotg.aotg1_speed=1/'>)} {<'/DietPi/uEnv.txt'>} ) ] spids: [8865 8879] ) ] ) ] spids: [8738 8739 8899 -1] ) (case_arm pat_list: [{<rpi-bcm2835> <Id.Lit_Star '*'>}] action: [ (C {<rm>} {<'/etc/modprobe.d/rpi-bcm2708.conf'>}) (C {<sed>} {<-i>} {(SQ <'/avoid_pwm_pll=/c\\avoid_pwm_pll=0'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')} right: {<Id.Lit_Other '*'> <ultrahq> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/avoid_pwm_pll=/c\\avoid_pwm_pll=2'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] spids: [8962 8977] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')} right: {<Id.Lit_Other '*'> <3.5mm> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (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: 9046 stdin_parts: [ <'[Unit]\n'> <'Description=Forces sound through 3.5mm analogue\n'> <'Before=sound.target\n'> < 'After=dietpi-boot.service dietpi-ramdisk.service dietpi-ramlog.service\n' > <'\n'> <'[Service]\n'> <'Type=simple\n'> <'RemainAfterExit=yes\n'> <'\n'> <'ExecStart=/usr/bin/amixer -c 0 cset numid=3 1\n'> <'\n'> <'[Install]\n'> <'WantedBy=multi-user.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/rpi-bcm2835_forced_3.5mm.service'>} ) ] do_fork: T ) (C {<systemctl>} {<daemon-reload>}) (C {<systemctl>} {<enable>} {<rpi-bcm2835_forced_3.5mm.service>}) (C {<systemctl>} {<start>} {<rpi-bcm2835_forced_3.5mm.service>}) ] spids: [9003 9018] ) ] ) ] spids: [8924 8926 9072 -1] ) (case_arm pat_list: [{<hifiberry-> <Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) ] spids: [9096 9098 9124 -1] ) (case_arm pat_list: [{<googlevoicehat-soundcard> <Id.Lit_Star '*'>}] action: [ (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: 9160 stdin_parts: [ <'dtoverlay='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') <'\n'> <'dtoverlay=i2s-mmap\n'> <'dtparam=i2s=on\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) ] spids: [9132 9134 9163 -1] ) (case_arm pat_list: [{<justboom-> <Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) ] spids: [9175 9177 9203 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <allo-piano-dac> <Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) (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 70>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<1>} spids: [9295] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE) op: assign_op.Equal rhs: {<0>} spids: [9299] ) ] ) (C {<amixer>} {<-c>} {<0>} {<sset>} {(SQ <'audio output mode switch'>)} {(SQ <i2s>)} ) ] spids: [9264 9278] ) ] ) ] spids: [9231 9234 9325 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <allo-boss-dac> <Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) ] spids: [9337 9340 9366 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <allo-digione> <Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) ] spids: [9378 9381 9407 -1] ) (case_arm pat_list: [{<rpi-dac>}] action: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) ] spids: [9419 9420 9446 -1] ) (case_arm pat_list: [{<i-sabre-k2m>}] action: [ (C {<local>} {<Id.Lit_VarLike 'install_url_address='> (SQ <'http://dietpi.com/downloads/binaries/rpi/I-Sabre-K2M_binaries.zip'>) } ) (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$install_url_address'))}) (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 {<wget>} {(DQ ($ Id.VSub_DollarName '$install_url_address'))} {<-O>} {<package.zip>} ) (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {<'/'>}) (C {<rm>} {<package.zip>}) (C {<sync>}) (C {<depmod>} {<-a>}) (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) (C {<sed>} {<-i>} {(SQ <'/dtparam=i2c_arm=/c\\dtparam=i2c_arm=on'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] spids: [9483 9497] ) ] else_action: [ (C {<G_DIETPI-NOTIFY>} {<1>} { (DQ <'Failed to install '> ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME') <'. '> ($ Id.VSub_DollarName '$install_url_address') <' may be offline or unreachable.'> ) } ) ] ) ] spids: [9458 9459 9600 -1] ) (case_arm pat_list: [{<allo-cheapo> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<0>} spids: [9622] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE) op: assign_op.Equal rhs: {<0>} spids: [9626] ) ] ) (C {<amixer>} {<'–c'>} {<0>} {<set>} {(SQ <'DAC PA'>)} {<35>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <allo-cheapo-analogue>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<amixer>} {<-c>} {<0>} {<sset>} {(SQ <'audio output mode switch'>)} {(SQ <i2s>)} ) ] spids: [9651 9668] ) ] else_action: [ (C {<amixer>} {<-c>} {<0>} {<sset>} {(SQ <'audio output mode switch'>)} {(SQ <spdif>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE) op: assign_op.Equal rhs: {<2>} spids: [9711] ) ] ) ] ) ] spids: [9616 9618 9720 -1] ) (case_arm pat_list: [{<iqaudio-> <Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) ] spids: [9724 9726 9752 -1] ) (case_arm pat_list: [{<dionaudio-loco> <Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} ) ] do_fork: T ) ] spids: [9764 9766 9792 -1] ) (case_arm pat_list: [{<odroid-hifishield-plus>}] action: [ (command.Simple words: [{<echo>} {<-e>} {(DQ <snd-soc-pcm5102>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <snd-soc-odroid-dac>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<1>} spids: [9832] ) ] ) ] spids: [9800 9801 9837 -1] ) (case_arm pat_list: [{<odroid-hifishield-2>}] action: [ (C {<sed>} {<-i>} {(SQ <'/^aml_i2c/d'>)} {<'/etc/modules'>}) (command.Simple words: [{<echo>} {<-e>} {(DQ <aml_i2c>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <snd-soc-pcm512x>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <snd-soc-pcm512x-i2c>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <snd-soc-odroid-dac2>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules'>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<1>} spids: [9913] ) ] ) (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: 9944 stdin_parts: [ <'[Unit]\n'> <'Description=odroid-hifishield2\n'> <'After=local-fs.target\n'> <'\n'> <'[Service]\n'> <'Type=oneshot\n'> <'RemainAfterExit=yes\n'> <'\n'> < 'ExecStart=/bin/bash -c \'echo pcm5242 0x4c > /sys/class/i2c-adapter/i2c-1/new_device\'\n' > <'ExecStart=/bin/bash -c \'amixer -c 1 sset Analogue 0\'\n'> <'ExecStart=/bin/bash -c \'amixer -c 1 sset Digital 201\'\n'> <'ExecStart=/bin/bash -c \'amixer -c 1 sset Deemphasis on\'\n'> <'\n'> <'[Install]\n'> <'WantedBy=sound.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/odroid-hifishield2.service'>} ) ] do_fork: T ) (C {<systemctl>} {<enable>} {<odroid-hifishield2.service>}) (C {<systemctl>} {<daemon-reload>}) ] spids: [9841 9842 9959 -1] ) (case_arm pat_list: [{<h2-hdmi>}] action: [ (command.Simple words: [{<amixer>} {<set>} {<-c>} {<0>} {(SQ <'Audio lineout'>)} {<mute>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<1>} spids: [9991] ) ] ) ] spids: [9967 9968 9996 -1] ) (case_arm pat_list: [{<h3-analogue>}] action: [ (command.Simple words: [{<amixer>} {<set>} {<-c>} {<0>} {(SQ <'Audio lineout'>)} {<unmute>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<0>} spids: [10028] ) ] ) ] spids: [10004 10005 10033 -1] ) (case_arm pat_list: [{<pine64-analogue>}] action: [ (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: 10060 stdin_parts: [<'sunxi_codec\n'> <'sunxi_i2s\n'> <'sunxi_sndcodec\n'>] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modules-load.d/pine64-audiojack.conf'>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<1>} spids: [10063] ) ] ) ] spids: [10041 10042 10068 -1] ) (case_arm pat_list: [{<rock64-analogue>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<1>} spids: [10081] ) ] ) ] spids: [10076 10077 10086 -1] ) (case_arm pat_list: [{<s5pxx18-hdmi>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<1>} spids: [10099] ) ] ) ] spids: [10094 10095 10104 -1] ) (case_arm pat_list: [{<asus-tb-analogue>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD) op: assign_op.Equal rhs: {<0>} spids: [10117] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE) op: assign_op.Equal rhs: {<2>} spids: [10121] ) ] ) ] spids: [10112 10113 10126 -1] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} right: {(SQ <googlevoicehat-soundcard>) <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (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: 10207 stdin_parts: [ <'pcm.softvol {\n'> <' type softvol\n'> <' slave.pcm dmix\n'> <' control {\n'> <' name Master\n'> <' card 0\n'> <' }\n'> <'}\n'> <'\n'> <'pcm.micboost {\n'> <' type route\n'> <' slave.pcm dsnoop\n'> <' ttable {\n'> <' 0.0 30.0\n'> <' 1.1 30.0\n'> <' }\n'> <'}\n'> <'\n'> <'pcm.!default {\n'> <' type asym\n'> <' playback.pcm '> <Id.Right_DoubleQuote '"'> <'plug:softvol'> <Id.Right_DoubleQuote '"'> <'\n'> <' capture.pcm '> <Id.Right_DoubleQuote '"'> <'plug:micboost'> <Id.Right_DoubleQuote '"'> <'\n'> <'}\n'> <'\n'> <'ctl.!default {\n'> <' type hw\n'> <' card 0\n'> <'}\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/asound.conf'>} ) ] do_fork: T ) ] spids: [10138 10156] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child:{($ Id.VSub_DollarName '$ALSA_EQ_ENABLED')}) terminator: <Id.Op_Semi _> ) ] ) action: [ (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: 10275 stdin_parts: [ <'ctl.eq {\n'> <' type equal\n'> <' controls '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$HOME') <'/.alsaequal.bin'> <Id.Right_DoubleQuote '"'> <'\n'> <'}\n'> <'\n'> <'pcm.plugequal {\n'> <' type equal\n'> <' slave.pcm '> <Id.Right_DoubleQuote '"'> <'plughw:'> ($ Id.VSub_DollarName '$SOUNDCARD_TARGET_CARD') <','> ($ Id.VSub_DollarName '$SOUNDCARD_TARGET_DEVICE') <Id.Right_DoubleQuote '"'> <'\n'> <' controls '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$HOME') <'/.alsaequal.bin'> <Id.Right_DoubleQuote '"'> <'\n'> <'}\n'> <'\n'> <'pcm.!default {\n'> <' type plug\n'> <' slave.pcm plugequal\n'> <' slave.channels 2\n'> <'}\n'> <'\n'> <'ctl.!default {\n'> <' type hw\n'> <' card '> ($ Id.VSub_DollarName '$SOUNDCARD_TARGET_CARD') <'\n'> <'}\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/asound.conf'>} ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^libasound2-plugin-equal'>)} ) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGI>} {<libasound2-plugin-equal>})] spids: [10278 10306] ) ] ) ] spids: [10210 10220] ) ] else_action: [ (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: 10350 stdin_parts: [ <'pcm.!default {\n'> <' type hw\n'> <' card '> ($ Id.VSub_DollarName '$SOUNDCARD_TARGET_CARD') <'\n'> <' device '> ($ Id.VSub_DollarName '$SOUNDCARD_TARGET_DEVICE') <'\n'> <'}\n'> <'ctl.!default {\n'> <' type hw\n'> <' card '> ($ Id.VSub_DollarName '$SOUNDCARD_TARGET_CARD') <'\n'> <'}\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/asound.conf'>} ) ] do_fork: T ) ] ) ] ) ) (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Set_Hardware>} { (DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME') <' ('> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') <')'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <soundcard>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Soundcard_Main>})] spids: [10402 10419] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <serialconsole>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Serial_Main>})] spids: [10427 10444] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <bluetooth>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Bluetooth_Main>})] spids: [10452 10469] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <wifimodules>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Wifi_Modules_Main>})] spids: [10477 10494] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <wificreds>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Wifi_Creds_Main>})] spids: [10502 10519] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <preferipversion>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Prefer_IPversion>})] spids: [10527 10544] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <wificountrycode>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Wifi_Countrycode_Main>})] spids: [10552 10569] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <i2c>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<I2c_Main>})] spids: [10577 10594] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <lcdpanel>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Lcd_Panel_Main>})] spids: [10602 10619] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <rpi-opengl>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<RPi_OpenGL_Main>})] spids: [10627 10644] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <eth-forcespeed>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Eth_Force_Speed_Main>})] spids: [10652 10669] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <remoteir>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<RemoteIR_Main>})] spids: [10677 10694] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <gpumemsplit>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Gpu_Memory_Split_Main>})] spids: [10702 10719] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <rpi-camera>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<RPi_Camera_Main>})] spids: [10727 10744] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} {<Id.Lit_Equals '='>} {(DQ <rpi3_usb_boot>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<RPi_USB_Boot_Main>})] spids: [10752 10769] ) ] else_action: [(C {<Unknown_Input_Name>})] ) (C {<G_DIETPI-NOTIFY>} {<-1>} {($ Id.VSub_DollarName '$EXIT_CODE')} { (DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME') <' '> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') <' |'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName '$EXIT_CODE')} ) ] )