ASSERT(unrand->colour) in 'items.cc' at line 4072 failed. Version: Dungeon Crawl Stone Soup 0.34-a0-361-g77f475f057 Platform: unix Bits: 64 Game mode: normal Tiles: online Seed: 6436331187184968467, deterministic pregen: 1 Command line: /usr/games/crawl-git-77f475f057 -name BlackTorch -rc /dgldir/rcfiles/crawl-git/BlackTorch.rc -macro /dgldir/rcfiles/crawl-git/BlackTorch.macro -morgue /dgldir/morgue/BlackTorch/ -webtiles-socket /crawl-master/webserver/sockets/BlackTorch:2025-07-12.14:47:29.sock -await-connection RC options: restart_after_game = false Crash caused by signal #6: Aborted Obtained 27 stack frames. /usr/games/crawl-git-77f475f057(_Z17write_stack_traceP8_IO_FILE+0x3e) [0x647f9ee8b93e]: write_stack_trace(_IO_FILE*) /usr/games/crawl-git-77f475f057(_Z13do_crash_dumpv+0x43a) [0x647f9ee99a0a]: do_crash_dump() /usr/games/crawl-git-77f475f057(_Z20crash_signal_handleri+0x1fa) [0x647f9ee8be1a]: crash_signal_handler(int) /lib/x86_64-linux-gnu/libc.so.6(+0x45330) [0x71db7a996330]: /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x11c) [0x71db7a9efb2c]: /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x1e) [0x71db7a99627e]: /usr/games/crawl-git-77f475f057(+0x4e2ddd) [0x647f9ee98ddd]: /usr/games/crawl-git-77f475f057(_Z12AssertFailedPKcS0_iS0_z+0x1c7) [0x647f9ee992e7]: AssertFailed(char const*, char const*, int, char const*, ...) /usr/games/crawl-git-77f475f057(_ZNK8item_def10get_colourEv+0x1a4) [0x647f9f0d3924]: item_def::get_colour() const /usr/games/crawl-git-77f475f057(_ZNK8item_def8is_validEbb+0xb8) [0x647f9f0d3ca8]: item_def::is_valid(bool, bool) const /usr/games/crawl-git-77f475f057(_Z12marshallItemR6writerRK8item_defb+0x53) [0x647f9f4e3223]: marshallItem(writer&, item_def const&, bool) /usr/games/crawl-git-77f475f057(_Z9tag_write8tag_typeR6writer+0xd53) [0x647f9f4f9053]: tag_write(tag_type, writer&) /usr/games/crawl-git-77f475f057(+0x5e2468) [0x647f9ef98468]: /usr/games/crawl-git-77f475f057(_Z10save_levelRK8level_id+0x59) [0x647f9efa24b9]: save_level(level_id const&) /usr/games/crawl-git-77f475f057(_Z14generate_levelRK8level_id+0x798) [0x647f9efa7988]: generate_level(level_id const&) /usr/games/crawl-git-77f475f057(_Z14pregen_dungeonRK8level_id+0x353) [0x647f9efa81c3]: pregen_dungeon(level_id const&) /usr/games/crawl-git-77f475f057(_Z10load_level20dungeon_feature_type14load_mode_typeRK8level_id+0x437) [0x647f9efa8ee7]: load_level(dungeon_feature_type, load_mode_type, level_id const&) /usr/games/crawl-git-77f475f057(_Z16floor_transition20dungeon_feature_typeS_8level_idbbbb+0xbd1) [0x647f9f4b0ef1]: floor_transition(dungeon_feature_type, dungeon_feature_type, level_id, bool, bool, bool, bool) /usr/games/crawl-git-77f475f057(_Z11take_stairs20dungeon_feature_typebbb+0xb9) [0x647f9f4b2f09]: take_stairs(dungeon_feature_type, bool, bool, bool) /usr/games/crawl-git-77f475f057(_ZN5Delay6handleEv+0x46) [0x647f9eeb6de6]: Delay::handle() /usr/games/crawl-git-77f475f057(_Z12handle_delayv+0x39) [0x647f9eeb6869]: handle_delay() /usr/games/crawl-git-77f475f057(+0xc7dc75) [0x647f9f633c75]: /usr/games/crawl-git-77f475f057(+0xc7e685) [0x647f9f634685]: /usr/games/crawl-git-77f475f057(main+0x1f7) [0x647f9edc0917]: /lib/x86_64-linux-gnu/libc.so.6(+0x2a1ca) [0x71db7a97b1ca]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b) [0x71db7a97b28b]: /usr/games/crawl-git-77f475f057(_start+0x25) [0x647f9edc1365]: Trying to run gdb. GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git Copyright (C) 2024 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word". [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x000071db7aa617a7 in __GI___wait4 (pid=295780, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 #0 0x000071db7aa617a7 in __GI___wait4 (pid=295780, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 sc_ret = -512 sc_ret = #1 0x0000647f9ee8bfec in call_gdb (file=0x71db7ab554e0 <_IO_2_1_stderr_>) at crash.cc:438 gdb = attach_cmd = "attach 295773\000\000\000\000\000\000" #2 0x0000647f9ee99a28 in do_crash_dump () at dbg-asrt.cc:673 t = 1752331652 dir = "/dgldir/morgue/BlackTorch/" name = "/dgldir/morgue/BlackTorch/crash-BlackTorch-20250712-144732.txt", '\000' signal_info = "Crash caused by signal #6: Aborted" cause_msg = "ASSERT(unrand->colour) in 'items.cc' at line 4072 failed." file = 0x71db7ab554e0 <_IO_2_1_stderr_> #3 0x0000647f9ee8be1a in crash_signal_handler (sig_num=6) at crash.cc:198 No locals. #4 No locals. #5 __pthread_kill_implementation (no_tid=0, signo=6, threadid=) at ./nptl/pthread_kill.c:44 tid = ret = 0 pd = old_mask = {__val = {0}} ret = pd = old_mask = ret = tid = ret = resultvar = resultvar = __arg3 = __arg2 = __arg1 = _a3 = _a2 = _a1 = __futex = resultvar = __arg3 = __arg2 = __arg1 = _a3 = _a2 = _a1 = __futex = __private = __oldval = #6 __pthread_kill_internal (signo=6, threadid=) at ./nptl/pthread_kill.c:78 No locals. #7 __GI___pthread_kill (threadid=, signo=signo@entry=6) at ./nptl/pthread_kill.c:89 No locals. #8 0x000071db7a99627e in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26 ret = #9 0x0000647f9ee98ddd in _BreakStrToDebugger (mesg=mesg@entry=0x7ffea3698e40 "ASSERT(unrand->colour) in 'items.cc' at line 4072 failed.", assert=true) at dbg-asrt.cc:799 No locals. #10 0x0000647f9ee992e7 in AssertFailed (expr=expr@entry=0x647f9f65c7f4 "unrand->colour", file=file@entry=0x647f9f65c5ac "items.cc", line=line@entry=4072, text=text@entry=0x0) at dbg-asrt.cc:837 Compilation info: <<<<<<<<<<< Compiled with GCC 13.3.0 Build platform: x86_64-linux-gnu Platform: x86_64-linux-gnu CFLAGS: -O2 -pipe -DUSE_TILE -DUSE_TILE_WEB -Wall -Wformat-security -Wundef -Wextra -Wno-missing-field-initializers -Wno-implicit-fallthrough -Wno-type-limits -Wno-uninitialized -Wno-array-bounds -Wno-format-zero-length -Wmissing-declarations -Wredundant-decls -Wno-parentheses -Wwrite-strings -Wshadow -pedantic -Wuninitialized -Iutil -I. -isystem /usr/include/lua5.1 -g -DWIZARD -DASSERTS -DREGEX_PCRE -DCLUA_BINDINGS -DDGAMELAUNCH -DSAVE_DIR_PATH="/crawl-master/crawl-git-77f475f057/saves" -DSHARED_DIR_PATH="/crawl-master/crawl-git/saves" -DDATA_DIR_PATH="/crawl-master/crawl-git-77f475f057/data/" -DWEB_DIR_PATH="/crawl-master/crawl-git-77f475f057/data/web/" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 LDFLAGS: -rdynamic -fuse-ld=gold -O2 >>>>>>>>>>> Place info: branch = 11, depth = 2 Level id: Vaults:2 Level build method = , level layout type = vaults, absdepth0 = 20 Level vaults: minmay_crypt_entry_simple_round nicolae_vaults_angled_halls grunt_vaults_funnel regret_index_vaults_magi_shocking_road nicolae_vaults_diamond_1 okawaru_metal_pillars_3 vaults_mumra_minichess_inversion nicolae_vaults_apartment_2 vaults_mumra_hex layout_vaults_omnigrid serial_shops nicolae_shop_tiny_glass parchment_shop uniq_jory Markers: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Messages: <<<<<<<<<<<<<<<<<<<<<< The raiju bites you but does no damage. The wavering orb of destruction weakly hits the raiju! The raiju is heavily wounded. The raiju barks! You block the raiju's attack. The wavering orb of destruction weakly hits the raiju!! You blow up the raiju! Your orb of destruction hits a stone wall. The raiju bursts into living lightning! The living lightning hits you. You resist. The raiju blinks! The wavering orb of destruction weakly hits the raiju!! The raiju is heavily wounded. The raiju bites you but does no damage. A raiju is nearby! The wavering orb of destruction weakly hits the raiju!! You blow up the raiju! Your shadow fades away. You can't see any susceptible monsters within range! (Use Z to cast anyway.) A raiju comes into view. You yell at the raiju! The raiju barks! A raiju is nearby! Your shadow casts a spell at the raiju. The ray of shadow hits the raiju!!! You feel a bit more experienced. You can't see any susceptible monsters within range! (Use Z to cast anyway.) Your shadow fades away. HP restored. Key pressed, stopping explore. Key pressed, stopping explore. You can't see any susceptible monsters within range! (Use Z to cast anyway.) A large abomination comes into view. A large abomination is nearby! A large abomination is nearby! The orb of destruction hits the large abomination!! The large abomination is severely damaged. A large abomination is nearby! The wavering orb of destruction hits the large abomination!!! You blow up the large abomination! A fire bat comes into view. A large abomination comes into view. There are monsters nearby! The wavering orb of destruction hits the large abomination!! The large abomination is moderately damaged. A fire bat comes into view. The wavering orb of destruction weakly hits the large abomination! The large abomination is heavily damaged. You block the fire bat's attack. You block the large abomination's attack. Casting: Orb of Destruction (dangerous; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Orb of Destruction (dangerous; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Rimeblight (dangerous; 2% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: a fire bat A stygian plague fills the fire bat's body. x2 A fire bat comes into view. The large abomination hits you but does no damage. The fire bat bites you but does no damage. You block the large abomination's attack. You kill the fire bat! Plague seeps from the dead fire bat. The large abomination is afflicted with rimeblight. You block the fire bat's attack. The wavering orb of destruction weakly hits the fire bat!! You blow up the fire bat! Plague seeps from the dead fire bat. The fire bat is afflicted with rimeblight. The fire bat bites you but does no damage. You block the fire bat's attack. The wavering orb of destruction weakly hits the fire bat!! You blow up the fire bat! Plague seeps from the dead fire bat. Your shadow gestures at the large abomination while chanting. The ray of shadow hits the large abomination! Shards of ice erupt from the large abomination's body! You destroy the large abomination! Plague seeps from the dead large abomination. You can't see any susceptible monsters within range! (Use Z to cast anyway.) Your shadow fades away. Key pressed, stopping explore. Key pressed, stopping explore. Key pressed, stopping explore. A smoke demon comes into view. A smoke demon is nearby! A smoke demon is nearby! The smoke demon roars! Your orb of destruction hits a rock wall. Your shadow casts a spell at the smoke demon. The ray of shadow hits the smoke demon!!! The smoke demon gestures at you. Something smites you! The smoke demon gestures at you. The ball of steam hits your shadow! The ball of steam hits you. You resist. The smoke demon gestures at you. Something smites you! A smoke demon is nearby! Your shadow fades away. The wavering orb of destruction hits the smoke demon!! You blow up the smoke demon! Key pressed, stopping explore. Key pressed, stopping explore. A worldbinder comes into view. A worldbinder is nearby! A worldbinder is nearby! The worldbinder calls forth creatures from the Shoals! x2 The worldbinder calls forth creatures from the Shoals! Your orb of destruction hits a crystal wall. A laughing skull comes into view. Casting: Orb of Destruction (dangerous; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You construct an explosive harbinger and set it loose. Your shadow points at the laughing skull and mumbles some strange words. The flickering shadows explode! The shadowball engulfs the laughing skull! The shadowball engulfs the manticore!! The laughing skull cackles spitefully. The bolt of negative energy hits you but does no damage. You resist. You block the laughing skull's attack. Your monarch bomb hits the laughing skull!! Your monarch bomb deploys a bomblet. The laughing skull is destroyed! Your monarch bomb hits the manticore but does no damage. The manticore flicks its tail. The volley of spikes skewers you. Barbed spikes become lodged in your body. Your monarch bomb hits the manticore! Your monarch bomb deploys a bomblet. The manticore flicks its tail. The volley of spikes skewers you but does no damage. Your monarch bomb hits the manticore! Your monarch bomb deploys a bomblet. The manticore dies! The manticore's corpse disappears in a puff of smoke! Something closely misses your monarch bomb. Something claws your monarch bomb but does no damage. Something claws your monarch bomb. Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You command your explosives to detonate! An orange demon comes into view. There are monsters nearby! Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You construct an explosive harbinger and set it loose. Your shadow casts a spell. The orange demon screeches! The manticore disappears in a puff of smoke! A wretched star comes into view. Your monarch bomb launches a bomblet. The bomblet misses the worldbinder. The orange demon stings your bomblet. The orange demon closely misses your bomblet. You block the worldbinder's attack. x2 Okay, then. The barbed spikes dig painfully into your body as you move. The barbed spikes snap loose. The worldbinder hits your monarch bomb but does no damage. x2 The orange demon misses your bomblet. The orange demon hits your bomblet but does no damage. Your shadow fades away. Your monarch bomb launches a bomblet. The bomblet hits the orange demon. The worldbinder hits your monarch bomb but does no damage. The worldbinder hits your monarch bomb. Your monarch bomb hits the worldbinder!! Your monarch bomb deploys a bomblet. The orange demon stings your bomblet! The orange demon closely misses your bomblet. The worldbinder calls forth creatures from the Shoals! The wretched star pulses with an eldritch light! You feel a compulsion to reserve your scrolls for emergencies. Your compulsion to reserve your scrolls grows more intense. Your monarch bomb launches a bomblet. The bomblet hits the manticore. The worldbinder hits your monarch bomb. The worldbinder closely misses your monarch bomb. The orange demon misses your bomblet. x2 Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You command your explosives to detonate! The detonation engulfs the snapping turtle!! The snapping turtle is moderately wounded. The detonation engulfs the worldbinder!! You destroy the worldbinder! The manticore disappears in a puff of smoke! The snapping turtle disappears in a puff of smoke! The detonation engulfs the orange demon!! The orange demon is heavily wounded. The detonation engulfs the orange demon!! You kill the orange demon! The detonation engulfs the wretched star!! The wretched star partially resists. The wretched star is moderately damaged. A wretched star is nearby! Your orb of destruction hits a rock wall. The wretched star glows turbulently. The lance of force hits you. You are knocked back by the lance of force. You slam into the stone wall. Your shadow points at the wretched star and mumbles some strange words. The ray of shadow hits the wretched star. The wretched star pulses with an eldritch light! Your orb of destruction hits a stone wall. Your shadow casts a spell at the wretched star. The ray of shadow hits the wretched star! A wretched star is nearby! The orb of destruction hits the wretched star!!! You blow up the wretched star! Your shadow fades away. Key pressed, stopping explore. You yell at the raiju! 3 raiju come into view. There are monsters nearby! The wavering orb of destruction weakly hits the raiju! The raiju is heavily wounded. The raiju barks! The raiju bursts into living lightning! The living lightning hits the raiju. The raiju completely resists. The living lightning hits you! You resist. The raiju blinks! x3 You block the raiju's attack. Casting: Orb of Destruction (dangerous; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You construct an explosive harbinger and set it loose. The raiju closely misses you. You block the raiju's attack. You swap places. Something bites your monarch bomb but does no damage. Something closely misses your monarch bomb. The raiju bites you. The raiju shocks you. You resist. You block the raiju's attack. Something bites your monarch bomb but does no damage. The raiju bursts into living lightning! The living lightning hits you. You resist. The raiju blinks! Something bites your monarch bomb. Something shocks your monarch bomb! Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You command your explosives to detonate! The raiju bites you but does no damage. The raiju attacks as it pursues you! You block the raiju's attack. The wavering orb of destruction weakly hits the raiju!! The raiju is severely wounded. You block the raiju's attack. Casting: Orb of Destruction (dangerous; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You construct an explosive harbinger and set it loose. The raiju bursts into living lightning! The living lightning hits you but does no damage. The living lightning misses your monarch bomb. The raiju blinks! Your monarch bomb launches a bomblet. The bomblet hits the raiju! The raiju barely misses your monarch bomb. The raiju misses your bomblet. Your monarch bomb hits the raiju! Your monarch bomb deploys a bomblet. The raiju bites your monarch bomb but does no damage. A raiju comes into view. The raiju barks! Your monarch bomb hits the raiju! Your monarch bomb deploys a bomblet. The raiju dies! You feel the corruption within you wane completely. You feel less compelled to reserve your scrolls for emergencies. You feel willing to use your scrolls freely once again. The raiju bursts into living lightning! The living lightning hits your bomblet! The living lightning hits you. You resist. The raiju blinks! x2 Your monarch bomb hits the raiju. Your monarch bomb deploys a bomblet. The raiju bursts into living lightning! The living lightning hits the raiju. The raiju completely resists. The living lightning hits your bomblet! Your bomblet is destroyed! The living lightning misses you. The raiju blinks! x2 Your monarch bomb hits the raiju! Your monarch bomb deploys a bomblet. The raiju dies! The raiju bursts into living lightning! The living lightning misses your bomblet. The living lightning hits you. You resist. The raiju blinks! Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You command your explosives to detonate! The detonation engulfs the raiju!!! The raiju is almost dead. The detonation engulfs the raiju!!! You kill the raiju! The raiju closely misses you. A raiju is nearby! You closely miss the raiju. Your shadow hits the raiju with a long sword! You block the raiju's attack. A raiju comes into view. You block the raiju's attack. The raiju barks! You hit the raiju but do no damage. The raiju is heavily wounded. Your shadow hits the raiju with a long sword. You block the raiju's attack. A raiju comes into view. The raiju bites you but does no damage. There are monsters nearby! You slice the raiju!! You kill the raiju! The raiju bursts into living lightning! The living lightning hits you. You resist. The raiju blinks! x2 Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You construct an explosive harbinger and set it loose. The raiju misses you. Your shadow fades away. The raiju bites your monarch bomb! The raiju shocks your monarch bomb! You block the raiju's attack. Your monarch bomb hits the raiju. Your monarch bomb deploys a bomblet. Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You command your explosives to detonate! The detonation engulfs the raiju!! The raiju is severely wounded. The detonation engulfs the raiju!!! You kill the raiju! The raiju bursts into living lightning! The living lightning misses you. The raiju blinks! x2 You slash the raiju! You kill the raiju! Key pressed, stopping explore. No target in view! Key pressed, stopping explore. A large abomination comes into view. A large abomination is nearby! A large abomination is nearby! Your orb of destruction hits a stone wall. The wavering orb of destruction hits the large abomination!! The large abomination is heavily damaged. Casting: Orb of Destruction (dangerous; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You construct an explosive harbinger and set it loose. Your orb of destruction hits a stone wall. The large abomination hits you! Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Rimeblight (dangerous; 2% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: a large abomination (heavily damaged, strong, ally target) A stygian plague fills the large abomination's body. The large abomination hits you but does no damage. Your monarch bomb hits the large abomination! Your monarch bomb deploys a bomblet. Your monarch bomb hits the large abomination!! Your monarch bomb deploys a bomblet. The large abomination is destroyed! Plague seeps from the dead large abomination. Your bomblet fades away. Your bomblet fades away. A smoke demon comes into view. A brain worm comes into view. There are monsters nearby! There are monsters nearby! There are monsters nearby! The smoke demon roars! What are your orders? t - Yell! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. Gang up on whom? Press: ? - help, Dir - move target Aim: a smoke demon Attack! The smoke demon gestures at you. The pyre arrow hits you. You are covered in intense liquid fire! Move or burn! You shake off some of the fire as you move. The liquid fire burns you! The smoke demon gestures at you. The pyre arrow hits you. You are even more covered in intense liquid fire! You shake off some of the fire as you move. The liquid fire burns you! Your monarch bomb launches a bomblet. The bomblet hits the smoke demon! Your monarch bomb launches a bomblet. The bomblet hits the smoke demon! You shake off some of the fire as you move. The liquid fire burns you! The smoke demon hits your bomblet but does no damage. The smoke demon barely misses your bomblet. The smoke demon hits your bomblet. Your monarch bomb launches a bomblet. The bomblet hits the smoke demon! The liquid fire burns you! Your monarch bomb launches a bomblet. The bomblet hits the smoke demon. The smoke demon gestures at you. Something smites you! Something bites your monarch bomb but does no damage. Casting: Rimeblight (dangerous; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You command your explosives to detonate! The detonation engulfs the smoke demon! The smoke demon partially resists. You kill the smoke demon! The liquid fire burns you! Unknown command. You shake off some of the fire as you move. The liquid fire burns you! The brain worm's bulging head throbs. Something gnaws heavily on your mind! Your shadow gestures at the brain worm while chanting. The ray of shadow hits the brain worm!!! You kill the brain worm! The liquid fire burns you! You shake off the liquid fire. Your shadow fades away. Key pressed, stopping explore. Key pressed, stopping explore. A cognitogaunt comes into view. A cognitogaunt is nearby! Your orb of destruction hits a stone wall. The orb of destruction hits the cognitogaunt!!! The cognitogaunt is severely damaged. Your shadow casts a spell at the cognitogaunt. The ray of shadow hits the cognitogaunt!! The wavering orb of destruction hits the cognitogaunt!! You blow up the cognitogaunt! A raiju comes into view. A raiju is nearby! Your shadow points at the raiju and mumbles some strange words. The ray of shadow hits the raiju!! The wavering orb of destruction hits the raiju!! You blow up the raiju! You can't see any susceptible monsters within range! (Use Z to cast anyway.) A laughing skull comes into view. A laughing skull is nearby! A laughing skull is nearby! You miscast Orb of Destruction. Nothing appears to happen. An orange demon comes into view. Your shadow fades away. The laughing skull gibbers with scorn. The bolt of negative energy hits you but does no damage. You resist. A laughing skull comes into view. You block the orange demon's attack. The wavering orb of destruction hits the orange demon!!! The orange demon is severely wounded. The laughing skull gives a hideous shriek! The laughing skull gibbers with scorn. The bolt of negative energy hits the laughing skull. The laughing skull completely resists. The bolt of negative energy misses you. The orange demon misses you. The wavering orb of destruction hits the laughing skull!! You blow up the laughing skull! The laughing skull gibbers with scorn. The bolt of negative energy hits you but does no damage. You resist. You block the orange demon's attack. A water elemental comes into view. There are monsters nearby! There are monsters nearby! The wavering orb of destruction hits the laughing skull!! You blow up the laughing skull! You block the orange demon's attack. A laughing skull comes into view. The orb of destruction hits the orange demon!!! You blow up the orange demon! The laughing skull gives a hideous shriek! Casting: Orb of Destruction (dangerous; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You construct an explosive harbinger and set it loose. The laughing skull gibbers with scorn. The bolt of negative energy hits you but does no damage. You resist. A brain worm comes into view. You swap places. Your monarch bomb launches a bomblet. The bomblet hits the laughing skull! The laughing skull gibbers with scorn. The bolt of negative energy hits your monarch bomb. Your monarch bomb completely resists. The bolt of negative energy misses you. Your monarch bomb launches a bomblet. The bomblet hits the water elemental! A wretched star comes into view. Your monarch bomb launches a bomblet. The bomblet hits the brain worm! The brain worm completely misses your bomblet. You block the laughing skull's attack. Your monarch bomb closely misses the laughing skull. The brain worm closely misses your bomblet. Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You command your explosives to detonate! The detonation engulfs the laughing skull!! The laughing skull partially resists. You destroy the laughing skull! The detonation engulfs the water elemental!!! The water elemental is burned terribly! You destroy the water elemental! The detonation engulfs the brain worm!!! You kill the brain worm! The detonation engulfs the wretched star! The wretched star partially resists. The wretched star is moderately damaged. Your shadow casts a spell at the wretched star. The flickering shadows explode! The shadowball engulfs the wretched star! Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Your shadow gestures at the wretched star while chanting. The ray of shadow hits the wretched star!! A weeping skull comes into view. The weeping skull gives a chilling moan. The orb of destruction hits the wretched star!!! You blow up the wretched star! A weeping skull is nearby! Your orb of destruction hits a stone wall. The orb of destruction hits the weeping skull!!! You blow up the weeping skull! Your shadow fades away. A small abomination comes into view. A small abomination is nearby! Your orb of destruction hits a stone wall. A weeping skull comes into view. The weeping skull gives a chilling moan. The orb of destruction hits the small abomination!!! You blow up the small abomination! The wavering orb of destruction hits the weeping skull!! You blow up the weeping skull! An eidolon comes into view. An eidolon is nearby! An eidolon is nearby! The eidolon gives a chilling moan. Your shadow casts a spell at the eidolon. The ray of shadow hits the eidolon!! Your orb of destruction hits a stone wall. The wavering orb of destruction hits the eidolon!! The eidolon is severely damaged. An eidolon is nearby! The eidolon misses you. The eidolon hits you. Casting: Orb of Destruction (dangerous; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You construct an explosive harbinger and set it loose. Your shadow gestures wildly while chanting. You block the eidolon's attack. x2 Your monarch bomb hits the eidolon. Your monarch bomb deploys a bomblet. You swap places. Your monarch bomb hits the eidolon. Your monarch bomb deploys a bomblet. Your shadow turret fires at the eidolon. The shadow bullet hits the eidolon. The eidolon stares piercingly at you. The bolt of negative energy hits you but does no damage. You resist. Your monarch bomb hits the eidolon. Your monarch bomb deploys a bomblet. Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You command your explosives to detonate! The detonation engulfs the eidolon!! You destroy the eidolon! Your shadow fades away. You start resting. An ufetubus comes into view. An ufetubus is nearby! An ufetubus is nearby! The ufetubus misses your shadow turret. The ufetubus hits your shadow turret. Your shadow turret fires at the ufetubus. The shadow bullet hits the ufetubus!! The ufetubus dies! Your shadow turret fades away. A small abomination comes into view. A small abomination is nearby! A small abomination is nearby! A small abomination is nearby! The wavering orb of destruction weakly hits the small abomination! The small abomination is heavily damaged. An Executioner comes into view. You block the small abomination's attack. The Executioner moves out of view. You hit the small abomination. The small abomination is severely damaged. Your shadow hits the small abomination with a long sword! You destroy the small abomination! No target in view! Your shadow fades away. A large abomination comes into view. A large abomination is nearby! A large abomination is nearby! You see here a brain worm corpse. A thrashing horror comes into view. The thrashing horror roars! You reach down and open the door. A small abomination comes into view. You block the thrashing horror's attack. The thrashing horror barely misses you. A thrashing horror comes into view. You block the small abomination's attack. The thrashing horror roars! You slash the small abomination! The small abomination is moderately damaged. Your shadow hits the small abomination with a long sword!! You block the thrashing horror's attack. x2 The thrashing horror tramples you but does no damage. You block the thrashing horror's attack. The thrashing horror closely misses you. The thrashing horror tramples you but does no damage. The small abomination hits you but does no damage. The thrashing horror barely misses you. The thrashing horror tramples you but does no damage. The small abomination barely misses you. You closely miss the small abomination. The small abomination is severely damaged. The thrashing horror barely misses you. The thrashing horror completely misses you. You block the small abomination's attack. The thrashing horror closely misses you. You block the thrashing horror's attack. You block the small abomination's attack. The small abomination hits you but does no damage. You slash the small abomination! The small abomination is heavily damaged. Your shadow fades away. The thrashing horror tramples you but does no damage. The thrashing horror barely misses you. You block the thrashing horror's attack. The thrashing horror tramples you but does no damage. You block the thrashing horror's attack. x2 The thrashing horror tramples you but does no damage. The thrashing horror tramples you. You hold your ground! The small abomination completely misses you. The small abomination misses you. The thrashing horror tramples you but does no damage. x2 You slash the small abomination! The small abomination is moderately damaged. Your shadow hits the small abomination with a long sword! The thrashing horror barely misses you. The thrashing horror closely misses you. The thrashing horror tramples you but does no damage. You block the thrashing horror's attack. x3 The small abomination closely misses you. The small abomination hits you but does no damage. The thrashing horror barely misses you. The thrashing horror tramples you. You hold your ground! The thrashing horror tramples you but does no damage. x2 The small abomination hits you. The thrashing horror tramples you but does no damage. x2 You hit the small abomination. The small abomination is severely damaged. You block the thrashing horror's attack. x2 The thrashing horror barely misses you. You block the thrashing horror's attack. The thrashing horror completely misses you. The thrashing horror tramples you but does no damage. The small abomination hits you! The thrashing horror tramples you but does no damage. x2 The thrashing horror completely misses you. The thrashing horror tramples you but does no damage. The small abomination closely misses you. The thrashing horror completely misses you. The thrashing horror tramples you but does no damage. The small abomination hits you! You slice the small abomination!! You destroy the small abomination! Your shadow fades away. You block the thrashing horror's attack. The thrashing horror tramples you but does no damage. The thrashing horror tramples you. You hold your ground! You block the thrashing horror's attack. x2 The thrashing horror barely misses you. The thrashing horror closely misses you. x2 The thrashing horror tramples you but does no damage. The thrashing horror misses you. x2 The thrashing horror tramples you but does no damage. The thrashing horror attacks as it pursues you! The thrashing horror barely misses you. The thrashing horror misses you. You block the thrashing horror's attack. x2 There is an open door here. The thrashing horror misses you. You block the thrashing horror's attack. The wavering orb of destruction weakly hits the thrashing horror!! The thrashing horror is heavily damaged. Your shadow points at the thrashing horror and mumbles some strange words. The ray of shadow hits the thrashing horror!! x2 You destroy the thrashing horror! The thrashing horror misses you. You block the thrashing horror's attack. The wavering orb of destruction weakly hits the thrashing horror! You blow up the thrashing horror! Something misses your shadow. Something completely misses your shadow. A thrashing horror comes into view. A thrashing horror is nearby! Your shadow casts a spell at the thrashing horror. The ray of shadow hits the thrashing horror!! The wavering orb of destruction hits the thrashing horror!! You blow up the thrashing horror! You reach down and close the door. You start resting. A neqoxec opens the door. You reach down and open the door. A large abomination comes into view. There is an open door here. The wavering orb of destruction weakly hits the neqoxec! The neqoxec is heavily wounded. Your shadow points at the large abomination and mumbles some strange words. The ray of shadow hits the large abomination!! You block the neqoxec's attack. The large abomination hits your shadow!! You hear a screech! The wavering orb of destruction weakly hits the neqoxec!! You blow up the neqoxec! The large abomination barely misses your shadow. You reach down and open the door. Something hits you but does no damage. Deactivating autopickup; reactivate with Ctrl-A. Something stings your shadow! Your shadow is destroyed! Found a gateway leading out of the Abyss. Something hits you. x2 An orange demon comes into view. There is an open door here. The orange demon screeches! You hit something but do no damage. You hear a croak. You block something's attack. Something hits you but does no damage. A cane toad comes into view. Something hits you but does no damage. You barely miss something. Your shadow hits the large abomination with a long sword! The cane toad changes into a troll! Something hits you. x2 The orange demon closely misses your shadow. The orange demon hits your shadow but does no damage. You block something's attack. The large abomination misses you. The orange demon stings your shadow but does no damage. The orange demon misses your shadow. The large abomination closely misses you. Casting: Orb of Destruction (dangerous; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Nothing appears to happen. Your shadow gestures wildly while chanting. You block something's attack. The orange demon stings your shadow. The orange demon hits your shadow but does no damage. The large abomination hits you! Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Activating: Shadowslip (0% risk of failure) Press: ? - help, Dir - look around, f - activate A gateway leading out of the Abyss. You swap places with your shadow and weave the vestiges of your form into it. Something turns its attention towards your shadow. The large abomination turns its attention towards your shadow. The orange demon turns its attention towards your shadow. The troll turns its attention towards your shadow. Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Forge Monarch Bomb (mildly dangerous; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Rimeblight (dangerous; 2% risk of failure) Press: ? - help, Shift-Dir - straight line A stygian plague fills the large abomination's body. Something misses your shadow. The troll barely misses your shadow turret. The troll closely misses your shadow turret. The troll claws your shadow turret. The orange demon stings you but does no damage. The orange demon hits you but does no damage. Something hits your shadow but does no damage. The large abomination closely misses your shadow. Casting: Rimeblight (dangerous; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Rimeblight (dangerous; 2% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: a troll shaped shifter (not watching you, ally target) A stygian plague fills the orange demon's body. Something completely misses your shadow. The troll misses your shadow turret. The troll closely misses your shadow turret. x2 You block the orange demon's attack. x2 Something hits your shadow but does no damage. The large abomination hits your shadow!! Your shadow turret fires at the troll. The shadow bullet hits the troll! You barely miss the orange demon. The orange demon is lightly wounded. Shards of ice erupt from the large abomination's body! Shards of ice erupt from the orange demon's body! Something misses your shadow. Something closely misses your shadow. Something misses your shadow. Something hits your shadow. The troll completely misses your shadow turret. The troll barely misses your shadow turret. The troll claws your shadow turret. You block the orange demon's attack. The orange demon hits you. An apocalypse crab comes into view. The large abomination closely misses your shadow. The troll completely misses your shadow turret. The troll misses your shadow turret. The troll claws your shadow turret! Something hits your shadow. You block the orange demon's attack. x2 The apocalypse crab bites your shadow turret. Your shadow turret's magic leaks into the air. The apocalypse crab claws your shadow turret but does no damage. The large abomination hits your shadow!! Your shadow is destroyed! Your shadow turret fires at the troll. The shadow bullet hits the troll! The orange demon screeches! You slice the large abomination!! You destroy the large abomination! Plague seeps from the dead large abomination. You block something's attack. Something hits you but does no damage. The troll bites your shadow turret! The troll claws your shadow turret! Your shadow turret is destroyed! The orange demon stings you. You block the orange demon's attack. You block something's attack. The orange demon barely misses you. The orange demon closely misses you. Shards of ice erupt from the orange demon's body! The shards of blighted ice hits the apocalypse crab. The apocalypse crab partially resists. The apocalypse crab is lightly wounded. The orange demon completely misses you. Something hits you but does no damage. You slice something!! Your shadow hits something with a long sword! Reactivating autopickup. You feel a bit more experienced. Tendrils of ice devour the orange demon's body! Plague seeps from the dead orange demon. The apocalypse crab is afflicted with rimeblight. Something bites the pillar of rime. Something shocks the pillar of rime! Something claws the pillar of rime but does no damage. Something bites the pillar of rime. Something shocks the pillar of rime! Something claws the pillar of rime but does no damage. Something bites the pillar of rime but does no damage. Something claws the pillar of rime but does no damage. There is an open door here. You swap places. There is a gateway leading out of the Abyss here. Shards of ice erupt from the apocalypse crab's body! The shards of blighted ice hits the Executioner. The Executioner partially resists. The Executioner is lightly wounded. The Executioner hits the pillar of rime! The pillar of rime is destroyed! You pass through the gate. Welcome back to the Orcish Mines! Unknown command. Unknown command. You start resting. HP restored. Search for what [Enter for "dis", or ? for help]? dis Search for what [Enter for "dis", or ? for help]? Things that are here: a +0 ring mail; a +0 mace; an orc skeleton Things that are here: a +0 mace; an orc skeleton Items here: )) [[. Things that are here: a +0 chain mail; a +0 hand axe Things that are here: a +0 heavy hand cannon; a kobold skeleton Things that are here: a +0 ring mail; a +1 trident of protection There is a staircase back to the Dungeon here. You fly upwards. Welcome back to the Dungeon! There is a staircase to the Orcish Mines here. There is a stone staircase leading up here. You fly upwards. There is a stone staircase leading down here. There is a stone staircase leading up here. You fly upwards. There is a stone staircase leading down, spattered with blood here. You see here a yak skeleton. There is a staircase to the Lair here. You fly downwards. Welcome back to the Lair of Beasts! There is a staircase back to the Dungeon here. There is an open door here. There is a stone staircase leading down here. You fly downwards. There is a stone staircase leading up here. There is a stone staircase leading down, spattered with blood here. You fly downwards. There is a stone staircase leading up, spattered with blood here. You see here a wyvern skeleton. The elephant trumpets! You block the elephant's attack. x2 You slice the elephant!! The elephant is heavily wounded. Your shadow hits the elephant but does no damage. You block the elephant's attack. x3 The elephant trunk-slaps you but does no damage. You slice the elephant!! The elephant is severely wounded. Your shadow hits the elephant with a long sword! You block the elephant's attack. The elephant trunk-slaps you but does no damage. You block the elephant's attack. x2 You slice the elephant!! You kill the elephant! No target in view! You swap places. Okay, then. Search for what [Enter for "dis", or ? for help]? Your shadow fades away. Things that are here: a +0 flail; a naga skeleton Things that are here: a +0 robe; a +0 dire flail; a naga skeleton There is a staircase to the Snake Pit here. You fly downwards. Welcome back to the Snake Pit! There is a staircase back to the Lair here. Things that are here: a +0 war axe of distortion; a naga skeleton z - a +0 war axe of distortion What level of the Elven Halls? (default 1, ? - help) There is a staircase back to the Lair here. You fly upwards. Welcome back to the Lair of Beasts! There is a staircase to the Snake Pit here. There is a fountain of clear blue water here. Things that are here: a +0 robe; a +0 dire flail; a naga skeleton Things that are here: a +0 robe; a +0 long sword Key pressed, stopping travel. Unknown command. What level of the Pits of Slime? (default 1, ? - help) There is a stone staircase leading down here. You fly downwards. There is a stone staircase leading up here. There is a stone staircase leading down here. You fly downwards. There is a stone staircase leading up here. You see here a water moccasin skeleton. You see here a komodo dragon skeleton. You see here a human skeleton. A jelly is nearby! Welcome back, BlackTorch the Djinni Delver. Dithmenos says: Walk in the dark places. Press ? for a list of commands and other information. You block the jelly's attack. You slash the jelly! Your hands burn! The jelly is severely wounded. Your shadow hits the jelly with a long sword!! You kill the jelly! No target in view! No target in view! Your shadow fades away. Okay, then. Unknown command. Okay, then. What level of the Depths? (default 1, ? - help) There is a stone staircase leading up here. You see here a water moccasin skeleton. You fly upwards. There is a stone staircase leading down here. You see here a water moccasin skeleton. There is a stone staircase leading up here. You fly upwards. There is a stone staircase leading down here. There is a stone staircase leading up here. You fly upwards. There is a stone staircase leading down, spattered with blood here. There is a stone staircase leading up here. You fly upwards. There is a stone staircase leading down here. You see here a +0 hat. There is a staircase back to the Dungeon here. You fly upwards. Welcome back to the Dungeon! There is a staircase to the Lair here. There is a stone staircase leading down, spattered with blood here. You see here a yak skeleton. You fly downwards. There is a stone staircase leading up here. There is a stone staircase leading down here. You fly downwards. There is a stone staircase leading up here. There is a stone staircase leading down here. You fly downwards. There is a stone staircase leading up here. Key pressed, stopping travel. Unknown command. Unknown command. What level of the Depths? (default 1, ? - help) There is a stone staircase leading down here. You fly downwards. There is a stone staircase leading up here. There is an open door here. There is a stone staircase leading down here. You fly downwards. There is a stone staircase leading up here. There is a stone staircase leading down here. You fly downwards. There is a stone staircase leading up here. There is a stone staircase leading down here. You fly downwards. There is a stone staircase leading up here. Key pressed, stopping travel. Unknown command. Unknown command. Unknown command. There is an open door here. Things that are here: a +0 buckler; a tengu skeleton Things that are here: a +0 robe; a +0 whip There is an open door, spattered with blood here. Things that are here: a +0 robe; a +0 dagger; a human skeleton Welcome back, BlackTorch the Djinni Delver. Dithmenos says: Walk in the dark places. Press ? for a list of commands and other information. You fly downwards. Welcome to the Depths! >>>>>>>>>>>>>>>>>>>>>> Version history: Game started: 0.34-a0-361-g77f475f057 Game state: mouse_enabled: 0, waiting_for_command: 0, terminal_resized: 0 io_inited: 1, need_save: 1, saving_game: 0, updating_scores: 0: seen_hups: 0, map_stat_gen: 0, type: 1, arena_suspended: 0 prev_cmd = CMD_GO_DOWNSTAIRS repeat_cmd = CMD_NO_CMD Player: {{{{{{{{{{{ Name: [BlackTorch] Species: Djinni Job: Delver HP: 166/166; mods: 0/0 MP: 0/0; mod: 0 Stats: 25 23 19 Position: (0, 0) , god: Dithmenos (19), turn_is_over: 0, banished: 0 Delayed (1): type: descending_stairs duration: 0 Skills (mode: manual) Name | can_currently_train | train | training | level | points | progress Fighting | X | 1 | 7 | 19 | 11540 | 640/1325 Short Blades | X | 0 | 0 | 0 | 0 | 0/59 Long Blades | X | 0 | 0 | 0 | 0 | 0/59 Axes | X | 0 | 0 | 0 | 0 | 0/70 Maces & Flails | X | 0 | 0 | 0 | 0 | 0/70 Polearms | X | 0 | 0 | 0 | 0 | 0/70 Staves | X | 0 | 0 | 0 | 0 | 0/59 Ranged Weapons | X | 0 | 0 | 0 | 0 | 0/70 Throwing | X | 0 | 0 | 0 | 0 | 0/70 Armour | X | 0 | 0 | 0 | 0 | 0/50 Dodging | X | 0 | 0 | 6 | 882 | 0/295 Stealth | X | 0 | 0 | 4 | 631 | 37/297 Shields | X | 0 | 0 | 14 | 6348 | 723/900 Unarmed Combat | X | 0 | 0 | 2 | 151 | 1/150 Spellcasting | X | 1 | 7 | 19 | 1722 | 102/197 Conjurations | X | 1 | 7 | 19 | 1722 | 102/197 Hexes | X | 1 | 7 | 19 | 1722 | 102/197 Summonings | X | 1 | 7 | 19 | 1722 | 102/197 Necromancy | X | 1 | 7 | 19 | 1722 | 102/197 Translocations | X | 1 | 7 | 19 | 1722 | 102/197 Forgecraft | X | 1 | 7 | 19 | 1722 | 102/197 Fire Magic | X | 1 | 7 | 19 | 1722 | 102/197 Ice Magic | X | 1 | 7 | 19 | 1722 | 102/197 Air Magic | X | 1 | 7 | 19 | 1722 | 102/197 Earth Magic | X | 1 | 7 | 19 | 1722 | 102/197 Alchemy | X | 1 | 7 | 19 | 1722 | 102/197 Invocations | X | 0 | 0 | 11 | 3375 | 0/675 Evocations | X | 0 | 0 | 0 | 0 | 0/50 Shapeshifting | X | 0 | 0 | 0 | 0 | 0/70 Spell bugs: Durations: #114: 36 Attributes: #4: 481668 #7: 5 #12: 6278 #13: 4670 #23: 47297 #24: -1779263121 #34: 1 #49: 3334 #73: 479941 Mutations: fire resistance: 2 (innate) screaming: 1 cold vulnerability: 1 (innate) float: 1 (innate) innate caster: 1 (innate) HP casting: 1 (innate) extra vitality: 1 (innate) Inventory bugs: Equipment: eq slot #9, inv slot #42: ring "Idoalan" {^Contam rElec rPois rC+ EV+5} eq slot #4, inv slot #36: +0 hat "Uhubarac" {Will+ Int+2} eq slot #2, inv slot #47: +4 kite shield of fire resistance eq slot #10, inv slot #30: amulet of regeneration eq slot #9, inv slot #0: ring "Afinohol" {rN+++ Str+9 Stlth-} eq slot #3, inv slot #19: +7 Kryia's mail coat {PotionHeal*2 rC+} eq slot #5, inv slot #49: +1 pair of gloves of strength eq slot #8, inv slot #24: +2 cloak of willpower eq slot #1, inv slot #7: +8 long sword of Hepliaklqana, Hurtling {heavy, ^Drain rCorr Str+2 Dex+2} }}}}}}}}}}} Webtiles message buffer: Webtiles JSON stack: Screenshot: clua stack: dlua stack: Lua persistent data: <<<<<<<<<<<<<<<<<<<<<< grunt_orc_gardens_store: antique armour shop grunt_orc_gardens_boss: false grunt_orc_gardens_giant_problem: false >>>>>>>>>>>>>>>>>>>>>> Lua marker contents: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>