[ OK ] Started Regular background program processing daemon. [ OK ] Started Daily Cleanup of Temporary Directories. [ OK ] Started Daily apt download activities. [ OK ] Started Daily apt upgrade and clean activities. [ OK ] Reached target Timers. [ OK ] Started System Logging Service. [ OK ] Started Permit User Sessions. [ OK ] Found device /dev/ttyS0. [ OK ] Started OpenBSD Secure Shell server. [ OK ] Started getty on tty2-tty6 if dbus and logind are not available. [ OK ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch. [ OK ] Started Getty on tty6. [ OK ] Started Getty on tty5. [ OK ] Started Getty on tty4. [ OK ] Started Getty on tty3. [ OK ] Started Getty on tty2. [ OK ] Started Getty on tty1. [ OK ] Started Serial Getty on ttyS0. [ OK ] Reached target Login Prompts. [ OK ] Reached target Multi-User System. [ OK ] Reached target Graphical Interface. Starting Update UTMP about System Runlevel Changes... Starting Load/Save RF Kill Switch Status... [ OK ] Started Update UTMP about System Runlevel Changes. [ OK ] Started Load/Save RF Kill Switch Status. Debian GNU/Linux 9 syzkaller ttyS0 Warning: Permanently added '10.128.0.17' (ECDSA) to the list of known hosts. executing program syzkaller login: [ 77.351214][ T35] audit: type=1400 audit(1604550425.757:8): avc: denied { execmem } for pid=8488 comm="syz-executor814" scontext=system_u:system_r:kernel_t:s0 tcontext=system_u:system_r:kernel_t:s0 tclass=process permissive=1 [ 77.387841][ T8489] [ 77.390195][ T8489] ======================================================== [ 77.397409][ T8489] WARNING: possible irq lock inversion dependency detected [ 77.404597][ T8489] 5.10.0-rc2-syzkaller #0 Not tainted [ 77.409951][ T8489] -------------------------------------------------------- [ 77.417148][ T8489] syz-executor814/8489 just changed the state of lock: [ 77.423981][ T8489] ffff888018f97438 (&f->f_owner.lock){.+..}-{2:2}, at: send_sigio+0x24/0x360 [ 77.432747][ T8489] but this lock was taken by another, HARDIRQ-safe lock in the past: [ 77.440792][ T8489] (&dev->event_lock){-...}-{2:2} [ 77.440808][ T8489] [ 77.440808][ T8489] [ 77.440808][ T8489] and interrupts could create inverse lock ordering between them. [ 77.440808][ T8489] [ 77.460119][ T8489] [ 77.460119][ T8489] other info that might help us debug this: [ 77.468186][ T8489] Chain exists of: [ 77.468186][ T8489] &dev->event_lock --> &new->fa_lock --> &f->f_owner.lock [ 77.468186][ T8489] [ 77.481197][ T8489] Possible interrupt unsafe locking scenario: [ 77.481197][ T8489] [ 77.489513][ T8489] CPU0 CPU1 [ 77.494861][ T8489] ---- ---- [ 77.500212][ T8489] lock(&f->f_owner.lock); [ 77.504709][ T8489] local_irq_disable(); [ 77.511460][ T8489] lock(&dev->event_lock); [ 77.518484][ T8489] lock(&new->fa_lock); [ 77.525231][ T8489] [ 77.528692][ T8489] lock(&dev->event_lock); [ 77.533364][ T8489] [ 77.533364][ T8489] *** DEADLOCK *** [ 77.533364][ T8489] [ 77.541499][ T8489] 2 locks held by syz-executor814/8489: [ 77.547044][ T8489] #0: ffffffff8ef6adf8 (&fsnotify_mark_srcu){....}-{0:0}, at: fsnotify+0x2e6/0x10a0 [ 77.556530][ T8489] #1: ffff88802de9ebf0 (&mark->lock){+.+.}-{2:2}, at: dnotify_handle_event+0x47/0x280 [ 77.566183][ T8489] [ 77.566183][ T8489] the shortest dependencies between 2nd lock and 1st lock: [ 77.575555][ T8489] -> (&dev->event_lock){-...}-{2:2} { [ 77.581198][ T8489] IN-HARDIRQ-W at: [ 77.585452][ T8489] lock_acquire+0x2a3/0x8c0 [ 77.592139][ T8489] _raw_spin_lock_irqsave+0x39/0x50 [ 77.599524][ T8489] input_event+0x7b/0xb0 [ 77.605931][ T8489] psmouse_report_standard_buttons+0x2c/0x80 [ 77.614077][ T8489] psmouse_process_byte+0x1e1/0x890 [ 77.621459][ T8489] psmouse_handle_byte+0x41/0x1b0 [ 77.628664][ T8489] psmouse_interrupt+0x304/0xf00 [ 77.635779][ T8489] serio_interrupt+0x88/0x150 [ 77.642622][ T8489] i8042_interrupt+0x27a/0x520 [ 77.649566][ T8489] __handle_irq_event_percpu+0x303/0x8f0 [ 77.657370][ T8489] handle_irq_event+0x102/0x290 [ 77.664392][ T8489] handle_edge_irq+0x25f/0xd00 [ 77.671331][ T8489] asm_call_irq_on_stack+0xf/0x20 [ 77.678523][ T8489] common_interrupt+0x120/0x200 [ 77.685537][ T8489] asm_common_interrupt+0x1e/0x40 [ 77.692816][ T8489] _raw_spin_unlock_irqrestore+0x25/0x50 [ 77.700614][ T8489] i8042_command+0x111/0x130 [ 77.707363][ T8489] i8042_aux_write+0xd7/0x120 [ 77.714202][ T8489] ps2_do_sendbyte+0x2ca/0x710 [ 77.721143][ T8489] ps2_sendbyte+0x58/0x150 [ 77.727749][ T8489] cypress_ps2_sendbyte+0x2e/0x160 [ 77.735024][ T8489] cypress_send_ext_cmd+0x1d0/0x8d0 [ 77.742386][ T8489] cypress_detect+0x75/0x190 [ 77.749150][ T8489] psmouse_try_protocol+0x211/0x370 [ 77.756529][ T8489] psmouse_extensions+0x557/0x930 [ 77.763731][ T8489] psmouse_switch_protocol+0x52a/0x740 [ 77.771357][ T8489] psmouse_connect+0x5e6/0xfc0 [ 77.778312][ T8489] serio_driver_probe+0x72/0xa0 [ 77.785325][ T8489] really_probe+0x291/0xde0 [ 77.791989][ T8489] driver_probe_device+0x26b/0x3d0 [ 77.799265][ T8489] device_driver_attach+0x228/0x290 [ 77.806632][ T8489] __driver_attach+0x15b/0x2f0 [ 77.813584][ T8489] bus_for_each_dev+0x147/0x1d0 [ 77.820624][ T8489] serio_handle_event+0x5f6/0xa30 [ 77.827812][ T8489] process_one_work+0x933/0x15a0 [ 77.834913][ T8489] worker_thread+0x64c/0x1120 [ 77.841775][ T8489] kthread+0x3af/0x4a0 [ 77.848020][ T8489] ret_from_fork+0x1f/0x30 [ 77.854612][ T8489] INITIAL USE at: [ 77.858762][ T8489] lock_acquire+0x2a3/0x8c0 [ 77.865343][ T8489] _raw_spin_lock_irqsave+0x39/0x50 [ 77.872620][ T8489] input_inject_event+0xa6/0x310 [ 77.879634][ T8489] led_set_brightness_nosleep+0xe6/0x1a0 [ 77.887358][ T8489] led_set_brightness+0x134/0x170 [ 77.894475][ T8489] led_trigger_event+0x70/0xd0 [ 77.901344][ T8489] kbd_led_trigger_activate+0xfa/0x130 [ 77.908889][ T8489] led_trigger_set+0x61e/0xbd0 [ 77.915727][ T8489] led_trigger_set_default+0x1a6/0x230 [ 77.923258][ T8489] led_classdev_register_ext+0x5b1/0x7c0 [ 77.930966][ T8489] input_leds_connect+0x3fb/0x740 [ 77.938066][ T8489] input_attach_handler+0x180/0x1f0 [ 77.945356][ T8489] input_register_device.cold+0xf0/0x307 [ 77.953061][ T8489] atkbd_connect+0x736/0xa00 [ 77.959730][ T8489] serio_driver_probe+0x72/0xa0 [ 77.966657][ T8489] really_probe+0x291/0xde0 [ 77.973255][ T8489] driver_probe_device+0x26b/0x3d0 [ 77.980461][ T8489] device_driver_attach+0x228/0x290 [ 77.987754][ T8489] __driver_attach+0x15b/0x2f0 [ 77.994609][ T8489] bus_for_each_dev+0x147/0x1d0 [ 78.001547][ T8489] serio_handle_event+0x5f6/0xa30 [ 78.008645][ T8489] process_one_work+0x933/0x15a0 [ 78.015657][ T8489] worker_thread+0x64c/0x1120 [ 78.022446][ T8489] kthread+0x3af/0x4a0 [ 78.028595][ T8489] ret_from_fork+0x1f/0x30 [ 78.035092][ T8489] } [ 78.037849][ T8489] ... key at: [] __key.8+0x0/0x40 [ 78.045202][ T8489] ... acquired at: [ 78.049268][ T8489] _raw_spin_lock+0x2a/0x40 [ 78.053951][ T8489] evdev_pass_values.part.0+0xf6/0x970 [ 78.059582][ T8489] evdev_events+0x28b/0x3f0 [ 78.064267][ T8489] input_to_handler+0x2a0/0x4c0 [ 78.069284][ T8489] input_pass_values.part.0+0x284/0x700 [ 78.074999][ T8489] input_handle_event+0x324/0x1400 [ 78.080281][ T8489] input_inject_event+0x2f5/0x310 [ 78.085479][ T8489] evdev_write+0x430/0x760 [ 78.090061][ T8489] vfs_write+0x28e/0x700 [ 78.094467][ T8489] ksys_write+0x1ee/0x250 [ 78.098969][ T8489] do_syscall_64+0x2d/0x70 [ 78.103560][ T8489] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 78.109609][ T8489] [ 78.111922][ T8489] -> (&client->buffer_lock){....}-{2:2} { [ 78.117865][ T8489] INITIAL USE at: [ 78.121932][ T8489] lock_acquire+0x2a3/0x8c0 [ 78.128338][ T8489] _raw_spin_lock+0x2a/0x40 [ 78.134756][ T8489] evdev_pass_values.part.0+0xf6/0x970 [ 78.142137][ T8489] evdev_events+0x28b/0x3f0 [ 78.148549][ T8489] input_to_handler+0x2a0/0x4c0 [ 78.155320][ T8489] input_pass_values.part.0+0x284/0x700 [ 78.162767][ T8489] input_handle_event+0x324/0x1400 [ 78.169781][ T8489] input_inject_event+0x2f5/0x310 [ 78.176726][ T8489] evdev_write+0x430/0x760 [ 78.183152][ T8489] vfs_write+0x28e/0x700 [ 78.189296][ T8489] ksys_write+0x1ee/0x250 [ 78.195536][ T8489] do_syscall_64+0x2d/0x70 [ 78.201880][ T8489] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 78.209669][ T8489] } [ 78.212338][ T8489] ... key at: [] __key.4+0x0/0x40 [ 78.219597][ T8489] ... acquired at: [ 78.223568][ T8489] _raw_read_lock+0x5b/0x70 [ 78.228244][ T8489] kill_fasync+0x14b/0x460 [ 78.232820][ T8489] evdev_pass_values.part.0+0x64e/0x970 [ 78.238526][ T8489] evdev_events+0x28b/0x3f0 [ 78.243193][ T8489] input_to_handler+0x2a0/0x4c0 [ 78.248239][ T8489] input_pass_values.part.0+0x284/0x700 [ 78.253949][ T8489] input_handle_event+0x324/0x1400 [ 78.259220][ T8489] input_inject_event+0x2f5/0x310 [ 78.264406][ T8489] evdev_write+0x430/0x760 [ 78.268988][ T8489] vfs_write+0x28e/0x700 [ 78.273381][ T8489] ksys_write+0x1ee/0x250 [ 78.277867][ T8489] do_syscall_64+0x2d/0x70 [ 78.282437][ T8489] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 78.288474][ T8489] [ 78.290784][ T8489] -> (&new->fa_lock){....}-{2:2} { [ 78.295990][ T8489] INITIAL READ USE at: [ 78.300391][ T8489] lock_acquire+0x2a3/0x8c0 [ 78.307057][ T8489] _raw_read_lock+0x5b/0x70 [ 78.313732][ T8489] kill_fasync+0x14b/0x460 [ 78.320323][ T8489] evdev_pass_values.part.0+0x64e/0x970 [ 78.328041][ T8489] evdev_events+0x28b/0x3f0 [ 78.334729][ T8489] input_to_handler+0x2a0/0x4c0 [ 78.341734][ T8489] input_pass_values.part.0+0x284/0x700 [ 78.349439][ T8489] input_handle_event+0x324/0x1400 [ 78.356714][ T8489] input_inject_event+0x2f5/0x310 [ 78.363896][ T8489] evdev_write+0x430/0x760 [ 78.370467][ T8489] vfs_write+0x28e/0x700 [ 78.376867][ T8489] ksys_write+0x1ee/0x250 [ 78.383391][ T8489] do_syscall_64+0x2d/0x70 [ 78.389964][ T8489] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 78.398003][ T8489] } [ 78.400586][ T8489] ... key at: [] __key.0+0x0/0x40 [ 78.407763][ T8489] ... acquired at: [ 78.411643][ T8489] _raw_read_lock+0x5b/0x70 [ 78.416299][ T8489] send_sigio+0x24/0x360 [ 78.420692][ T8489] kill_fasync+0x205/0x460 [ 78.425267][ T8489] evdev_pass_values.part.0+0x64e/0x970 [ 78.430977][ T8489] evdev_events+0x28b/0x3f0 [ 78.435637][ T8489] input_to_handler+0x2a0/0x4c0 [ 78.440647][ T8489] input_pass_values.part.0+0x284/0x700 [ 78.446385][ T8489] input_handle_event+0x324/0x1400 [ 78.451673][ T8489] input_inject_event+0x2f5/0x310 [ 78.456856][ T8489] evdev_write+0x430/0x760 [ 78.461432][ T8489] vfs_write+0x28e/0x700 [ 78.465838][ T8489] ksys_write+0x1ee/0x250 [ 78.470333][ T8489] do_syscall_64+0x2d/0x70 [ 78.474907][ T8489] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 78.480956][ T8489] [ 78.483264][ T8489] -> (&f->f_owner.lock){.+..}-{2:2} { [ 78.488631][ T8489] HARDIRQ-ON-R at: [ 78.492636][ T8489] lock_acquire+0x2a3/0x8c0 [ 78.498782][ T8489] _raw_read_lock+0x5b/0x70 [ 78.505816][ T8489] send_sigio+0x24/0x360 [ 78.511705][ T8489] dnotify_handle_event+0x148/0x280 [ 78.518545][ T8489] fsnotify+0xbc1/0x10a0 [ 78.524439][ T8489] do_iter_read+0x531/0x6e0 [ 78.530583][ T8489] vfs_readv+0xe5/0x150 [ 78.536403][ T8489] __x64_sys_preadv+0x231/0x310 [ 78.542898][ T8489] do_syscall_64+0x2d/0x70 [ 78.548954][ T8489] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 78.556502][ T8489] INITIAL USE at: [ 78.560405][ T8489] lock_acquire+0x2a3/0x8c0 [ 78.566463][ T8489] _raw_write_lock_irq+0x32/0x50 [ 78.572978][ T8489] f_modown+0x2a/0x390 [ 78.578633][ T8489] fcntl_dirnotify+0x736/0xbd0 [ 78.584949][ T8489] do_fcntl+0x269/0x1070 [ 78.590759][ T8489] __x64_sys_fcntl+0x165/0x1e0 [ 78.597084][ T8489] do_syscall_64+0x2d/0x70 [ 78.603073][ T8489] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 78.610508][ T8489] INITIAL READ USE at: [ 78.614841][ T8489] lock_acquire+0x2a3/0x8c0 [ 78.621330][ T8489] _raw_read_lock+0x5b/0x70 [ 78.627835][ T8489] send_sigio+0x24/0x360 [ 78.634062][ T8489] kill_fasync+0x205/0x460 [ 78.640554][ T8489] evdev_pass_values.part.0+0x64e/0x970 [ 78.648098][ T8489] evdev_events+0x28b/0x3f0 [ 78.654615][ T8489] input_to_handler+0x2a0/0x4c0 [ 78.661453][ T8489] input_pass_values.part.0+0x284/0x700 [ 78.668984][ T8489] input_handle_event+0x324/0x1400 [ 78.676086][ T8489] input_inject_event+0x2f5/0x310 [ 78.683096][ T8489] evdev_write+0x430/0x760 [ 78.689498][ T8489] vfs_write+0x28e/0x700 [ 78.695732][ T8489] ksys_write+0x1ee/0x250 [ 78.702087][ T8489] do_syscall_64+0x2d/0x70 [ 78.708507][ T8489] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 78.716377][ T8489] } [ 78.718881][ T8489] ... key at: [] __key.5+0x0/0x40 [ 78.725972][ T8489] ... acquired at: [ 78.729777][ T8489] __lock_acquire+0x11f5/0x5590 [ 78.734804][ T8489] lock_acquire+0x2a3/0x8c0 [ 78.739474][ T8489] _raw_read_lock+0x5b/0x70 [ 78.744146][ T8489] send_sigio+0x24/0x360 [ 78.748566][ T8489] dnotify_handle_event+0x148/0x280 [ 78.753946][ T8489] fsnotify+0xbc1/0x10a0 [ 78.758869][ T8489] do_iter_read+0x531/0x6e0 [ 78.763530][ T8489] vfs_readv+0xe5/0x150 [ 78.767845][ T8489] __x64_sys_preadv+0x231/0x310 [ 78.772873][ T8489] do_syscall_64+0x2d/0x70 [ 78.777454][ T8489] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 78.783497][ T8489] [ 78.785808][ T8489] [ 78.785808][ T8489] stack backtrace: [ 78.791695][ T8489] CPU: 0 PID: 8489 Comm: syz-executor814 Not tainted 5.10.0-rc2-syzkaller #0 [ 78.800444][ T8489] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 78.810492][ T8489] Call Trace: [ 78.813777][ T8489] dump_stack+0x107/0x163 [ 78.818111][ T8489] mark_lock.cold+0x1a/0x74 [ 78.822617][ T8489] ? lock_chain_count+0x20/0x20 [ 78.827456][ T8489] ? unwind_next_frame+0xe3b/0x1f90 [ 78.832730][ T8489] ? lock_chain_count+0x20/0x20 [ 78.837570][ T8489] ? mark_lock+0xf7/0x24c0 [ 78.841973][ T8489] ? __bfs+0x27a/0x690 [ 78.846038][ T8489] __lock_acquire+0x11f5/0x5590 [ 78.850886][ T8489] ? lockdep_hardirqs_on_prepare+0x400/0x400 [ 78.856854][ T8489] lock_acquire+0x2a3/0x8c0 [ 78.861343][ T8489] ? send_sigio+0x24/0x360 [ 78.865763][ T8489] ? lock_release+0x710/0x710 [ 78.870455][ T8489] ? lock_release+0x710/0x710 [ 78.875140][ T8489] _raw_read_lock+0x5b/0x70 [ 78.879649][ T8489] ? send_sigio+0x24/0x360 [ 78.884057][ T8489] send_sigio+0x24/0x360 [ 78.888293][ T8489] dnotify_handle_event+0x148/0x280 [ 78.893492][ T8489] ? dnotify_recalc_inode_mask+0x1a0/0x1a0 [ 78.899315][ T8489] fsnotify+0xbc1/0x10a0 [ 78.904530][ T8489] ? fsnotify_first_mark+0x1f0/0x1f0 [ 78.909905][ T8489] ? find_held_lock+0x2d/0x110 [ 78.914769][ T8489] ? iovec_from_user+0x210/0x3c0 [ 78.919713][ T8489] do_iter_read+0x531/0x6e0 [ 78.924212][ T8489] ? import_iovec+0x10c/0x150 [ 78.928879][ T8489] vfs_readv+0xe5/0x150 [ 78.933036][ T8489] ? vfs_iter_read+0xa0/0xa0 [ 78.937619][ T8489] ? fsnotify_wait_marks_destroyed+0x20/0x20 [ 78.943590][ T8489] ? __fsnotify_update_child_dentry_flags+0x50/0x70 [ 78.950174][ T8489] ? fcntl_dirnotify+0x21a/0xbd0 [ 78.955115][ T8489] ? do_fcntl+0xa3/0x1070 [ 78.959447][ T8489] ? blkcg_maybe_throttle_current+0x640/0xd70 [ 78.965521][ T8489] ? f_setown+0x230/0x230 [ 78.969845][ T8489] __x64_sys_preadv+0x231/0x310 [ 78.974704][ T8489] ? __ia32_sys_writev+0xb0/0xb0 [ 78.979634][ T8489] ? syscall_enter_from_user_mode+0x1d/0x50 [ 78.985519][ T8489] do_syscall_64+0x2d/0x70 [ 78.989941][ T8489] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 78.995815][ T8489] RIP: 0033:0x447ca9 [ 78.999694][ T8489] Code: e8 fc ab 02 00 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 3b cd fb ff c3 66 2e 0f 1f 84 00 00 00 00 [ 79.019304][ T8489] RSP: 002b:00007ffd6e267ef8 EFLAGS: 00000246 ORIG_RAX: 0000000000000127 [ 79.027703][ T8489] RAX: ffffffffffffffda RBX: 00007ffd6e267f10 RCX: 0000000000447ca9 [ 79.035674][ T8489] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000005 [ 79.043648][ T8489] RBP: 00000000006d2018 R08: 0000000000000000 R09: 00000000000000c2 executing program executing program executing program [ 79.051623][ T8489] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000404e70 [ 79.059594][ T8489] R13: 0000000000404f00 R14: 0000000000000000 R15: 0000000000000000 executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program