00:03:10 Unstable branch on crawl.develz.org updated to: 0.9-a1-205-gfc38e74 (32) 00:18:13 Windows builds of master branch on crawl.develz.org updated to: 0.9-a1-205-gfc38e74 00:18:34 -!- ophanim has quit [Read error: Connection reset by peer] 00:27:58 -!- elliptic has quit [Read error: Operation timed out] 00:58:28 -!- valrus_ has quit [Remote host closed the connection] 01:06:25 -!- Zaba has quit [Ping timeout: 246 seconds] 01:13:22 -!- Zaba has joined ##crawl-dev 01:49:42 -!- Pacra has joined ##crawl-dev 01:49:47 anyone 'round? 01:51:53 not really 01:57:26 :[[ 02:02:37 I'm kinda working 02:02:50 by all means, continue 02:03:06 what did you need though? 02:03:11 we review logs/scrollback etc 02:18:26 oh, i was wondering how demonspawn rmsl and spell-rmsl were related 02:18:43 the demonspawn mutation doesn't show up in the @ dialog 02:19:05 but it works regardless 02:19:26 -!- ais523 has joined ##crawl-dev 02:19:29 if the spell was an additional check that'd be pretty broken! 02:32:09 -!- galehar has joined ##crawl-dev 02:53:59 -!- Wensley has quit [Ping timeout: 260 seconds] 03:03:04 Pacra: it doesn't stack with rmsl 03:03:12 -!- ais523 has quit [Remote host closed the connection] 03:03:23 and it does show up on A, rather than @ 03:11:08 -!- bmh has joined ##crawl-dev 03:17:04 -!- monqy has quit [Quit: hello] 03:26:31 -!- bmh has quit [Quit: bmh] 03:47:52 -!- edlothiol has joined ##crawl-dev 03:58:47 -!- bmh has joined ##crawl-dev 03:58:47 -!- bmh has quit [Changing host] 03:58:47 -!- bmh has joined ##crawl-dev 04:19:29 -!- Pseudonut has quit [Remote host closed the connection] 04:22:10 -!- bmh has quit [Quit: bmh] 04:38:47 -!- ZorbaBeta has quit [Read error: Connection reset by peer] 04:39:02 -!- ZorbaBeta has joined ##crawl-dev 05:21:16 buddakeks (L4 VpTm) (D:2) 05:38:05 -!- Twilight13 has quit [Read error: Connection reset by peer] 05:38:16 -!- Twilight13 has joined ##crawl-dev 06:00:22 03galehar * r4fc9d5848af7 10/crawl-ref/source/ (itemname.h tilepick.cc): Fix icons not displayed for known items (#4030). 06:40:46 I added a clua function ready() that is called whenever the game is awaiting a command. However, it is easy to use it to shoot yourself in the foot. 06:41:59 it was already possible to get an infinite loop with sendkeys() or the like (and while(1), of course), though 06:42:46 is there a need to take special precautions? 06:47:49 if it does x amount of calls without a new turn happening maybe it should abort 06:49:06 sounds like a good idea. Perhaps sendkeys() could be capped this way too (for full commands only, so "x" viewing is not affected) 07:12:22 -!- Textmode has joined ##crawl-dev 07:25:31 -!- syllogism has joined ##crawl-dev 07:31:31 ossuary_zaba_flooded simply slaughers players, yay success 07:31:33 erm. 07:45:34 jeanjacques (L27 HOEE) ERROR: range check error (54 / 50) (Pan) 07:46:16 jeanjacques (L27 HOEE) ERROR: range check error (54 / 50) (Pan) 07:46:33 jeanjacques (L27 HOEE) ERROR: range check error (51 / 50) (Pan) 07:52:53 Zaba: <3 07:53:16 mmm slaughtering 07:53:37 had it once, didn't notice it to be hard at all 07:53:44 depends on the character, though 07:57:50 kilobyte, well, it's somewhat tougher than some other ossuaries 07:58:25 it notably lacks an exit right near the entrance 07:59:02 what directory would you put stress tests in? I mean, scripts like: "start a sprint game, entomb the player, awaken the level, rest for 1000 turns, quit" 07:59:29 tests/stress? 08:00:18 this particular example needs a .rc file, a dlua script to be require()d from &*t and the game's invocation itself which could be copied&pasted but that might be tedious 08:00:22 -!- ZorbaBeta has quit [Read error: Connection reset by peer] 08:00:25 well, tests/ where? 08:00:37 -!- ZorbaBeta has joined ##crawl-dev 08:01:06 hm. It wouldn't be a test that you run with crawl -test? 08:01:41 -test doesn't start a regular game 08:03:53 hrm, require() accepts only filenames under dat/ :( 08:07:14 -!- valrus has joined ##crawl-dev 08:21:02 -!- Cryp71c has joined ##crawl-dev 08:22:24 Morning 08:30:58 Crash in item_type_known when monster comes into view (https://crawl.develz.org/mantis/view.php?id=4033) by rriegs 08:37:48 -!- ais523 has joined ##crawl-dev 08:41:55 !rc Eifel 08:41:57 http://crawl.akrasiac.org/rcfiles/crawl-0.8/Eifel.rc 08:55:07 -!- valrus has quit [Remote host closed the connection] 09:22:01 -!- edlothiol has quit [Ping timeout: 246 seconds] 09:39:25 -!- jld has quit [Ping timeout: 264 seconds] 09:41:20 -!- ophanim has joined ##crawl-dev 09:42:37 -!- edlothiol has joined ##crawl-dev 09:53:18 -!- jld has joined ##crawl-dev 09:54:17 -!- bmh has joined ##crawl-dev 09:54:17 -!- bmh has quit [Changing host] 09:54:17 -!- bmh has joined ##crawl-dev 10:07:05 -!- elliptic has joined ##crawl-dev 10:21:36 hmm. 10:26:07 03kilobyte * r428c351bc6f1 10/crawl-ref/source/ (libunix.cc main.cc): Call a clua function "ready()" whenever Crawl is waiting for a new command. 10:26:08 03kilobyte * r3658c76a592f 10/crawl-ref/source/itemprop.cc: Don't compare itemprop enums to hand-written numbers. 10:26:08 03kilobyte * r991e15dccedd 10/crawl-ref/source/ (monster.cc spl-book.cc): Fix enchanments going out of sync with enums. 10:26:08 03kilobyte * rde8e8cba3e9d 10/crawl-ref/source/directn.cc: Slightly refactor to fix compiler warnings. 10:26:08 03kilobyte * raf79c560365c 10/crawl-ref/source/main.cc: Do not call ready() when there's keyboard input pending. 10:26:09 03kilobyte * rb42f917ad96d 10/crawl-ref/source/ (main.cc state.cc state.h): Some crude protection against infinite ready() loops. 10:26:09 03kilobyte * r5ef9f7d49fb8 10/crawl-ref/source/ (macro.cc macro.h main.cc): Let sendkeys() input not yet injected into the macro buffer inhibit ready(). 10:26:19 03kilobyte * r5a7b1c9ad507 10/crawl-ref/source/itemname.cc: Don't check known types for base classes which don't have any. 10:26:19 03kilobyte * r16a941ef4fe4 10/crawl-ref/source/l_crawl.cc: clua function crawl.enable_more(false) to do no more. 10:26:20 03kilobyte * r3c820d5301ff 10/crawl-ref/source/ (dat/clua/stress.lua test/stress/woken_rest): A stress test that rests for 1000 turns on woken sprint. 10:32:35 nice :) 11:02:52 -!- galehar has quit [Quit: Page closed] 11:04:44 nago (L27 NaTm) (Pan) 11:11:39 -!- ortoslon has quit [Quit: bye] 11:35:27 -!- Wensley has joined ##crawl-dev 11:42:25 Infinimo (L8 MuWz) (D:7) 11:55:22 -!- upsy has joined ##crawl-dev 11:59:38 -!- monqy has joined ##crawl-dev 11:59:52 -!- ophanim1 has joined ##crawl-dev 12:02:19 -!- ophanim has quit [Ping timeout: 246 seconds] 12:09:44 -!- Textmode has quit [Read error: Connection reset by peer] 12:11:03 -!- Textmode has joined ##crawl-dev 12:20:10 -!- Pacra has quit [Ping timeout: 246 seconds] 12:21:00 locus (L5 MDHe) (D:5) 12:41:47 hi 12:47:08 ??golubria 12:47:10 passage of golubria[1/2]: A spell in 0.8 trunk that lets you set up controlled teleport traps on the floor. Acts like the portal gun in Portal, but without the fancy physics. Something walks in one end and appears out the other, player and monsters included. Level 4 Tloc, in books of Warp and Burglary. 12:47:19 ??golubria[2] 12:47:21 I don't have a page labeled golubria[2] in my learndb. 12:47:27 ??passage of golubria[2] 12:47:28 passage of golubria[2/2]: You can only have two passages at a time and trying to create any more will cause failure. After 40-50 turns, the passage will disappear (with an expiry message) so be careful if you were relying on it for escape. 12:50:37 I'm getting an exception in golubria code when pulling tiles from the orb chamber into the abyss. Is there a special case I should be aware of? 12:52:02 what exceptions do you get? 12:52:22 Potion of porridge reveals itself (https://crawl.develz.org/mantis/view.php?id=4034) by Tiber 12:52:32 -!- Wensley has quit [Ping timeout: 260 seconds] 12:53:17 Zaba, I'll have a look at GDB, I'm only peeking at the morgue right now. 12:53:36 either: ASSERT(t != NON_ENTITY && t < MAX_TRAPS); 12:53:42 or: ASSERT(env.trap[t].pos == pos && env.trap[t].type != TRAP_UNASSIGNED); 12:54:04 well, a random guess is that you copy trap features without copying trap_defs.. 12:54:13 ah-ha. I found it. 12:54:23 I didn't pass true to feat_is_trap 12:56:12 I can imagine that breaking stuff 12:56:38 I'm copying: stair cases as empty arches (1/3), floors (2/3) 12:56:54 altars: floor (8/9), xom altar (1/9) 12:57:14 walls: Slimey walls are become green crystal, permarock is getting demoted to the non-permarock variant 12:57:29 why xom? Shouldn't it be lugonu? :P 12:57:49 that might make the abyss too easy... 12:57:57 but that'd stack with the existing lugonu altars, so I guess not 12:58:07 but xom still doesn't seem exactly fitting 12:58:50 ok -- I'll drop it and just propagate the altar with some low probability 13:00:24 what about having some sort of "desecrated altar" which is like an unusable altar (this is likely to be used later on given the Lugonu changes that are being planned), and change it to that? 13:00:37 "you see here a desecrated altar of The Shining One", or whatever 13:01:01 ais523: I would like to do that, but I don't feel like mucking through the altar enums and surrounding code 13:01:04 but this is just tweaking, let us not spend too much time on it now because it can be done later 13:02:48 Zaba, I'm just going to unify proto-abyss and regular abyss generation and I think that should be good enough for testing 13:03:20 that sounds good 13:04:20 also, desecrated altars could pretty much be done with lua 13:04:33 given that they aren't usable for any religious purposes, they're more along the line of empty arches than actual altars 13:04:55 I think Crawl has taught me more about git than work. (We dump svn recently, thank god!) 13:05:02 %s/dump/dumped 13:05:30 ais523, that can still be adequately done later, when the concept of desecrated altars actually exists for other purposes 13:05:47 indeed 13:27:33 Game lost save file (https://crawl.develz.org/mantis/view.php?id=4035) by darkgobbo 13:45:25 Zaba, do you have a preferred method for creating a bunch of (temporary) smoke? I was thinking of just casting fog when the player is first abyssed 14:10:47 -!- Pacra has joined ##crawl-dev 14:12:43 Zaba: https://crawl.develz.org/mantis/view.php?id=3939 new patch for your consumption 14:20:49 -!- Mu_ has joined ##crawl-dev 14:21:30 hi Mu_ 14:21:39 hello 14:22:27 want to look at a patch? :-D 14:24:23 probably not, i'm not a programmer :P 14:26:30 well, as long as someone checks it out while it applies cleanly 14:27:52 Enchanted pants of change color! (https://crawl.develz.org/mantis/view.php?id=4036) by rriegs 14:49:52 key kilobyte? how do i look into saves again? 14:56:38 -!- ais523 has quit [Remote host closed the connection] 15:06:04 -!- jld has quit [Ping timeout: 260 seconds] 15:12:11 -!- jld has joined ##crawl-dev 15:12:37 -!- syllogism has quit [] 15:22:39 -!- Cryp71c has quit [Quit: Leaving] 15:31:47 -!- Wensley has joined ##crawl-dev 15:33:05 -!- degroves has joined ##crawl-dev 15:45:43 -!- Pacra has quit [Read error: Connection reset by peer] 15:46:07 -!- Pacra has joined ##crawl-dev 15:48:04 -!- degroves has left ##crawl-dev 15:55:46 -!- Pacra has quit [Ping timeout: 246 seconds] 15:57:28 -!- Pacra has joined ##crawl-dev 16:21:43 -!- ophanim1 has quit [Quit: Leaving.] 16:24:25 -!- Hehfiel has quit [Ping timeout: 264 seconds] 16:26:42 Napkin: crawl --edit-save 16:27:17 Napkin: although removing levels still doesn't work -- it will assert once more levels than the depth of the branch are generated 16:27:36 I guess that assertion can go 16:41:10 -!- galehar has joined ##crawl-dev 16:43:00 hello 16:44:27 hi 16:48:35 0.9-a1-205-gfc38e74 (https://crawl.develz.org/mantis/view.php?id=4038) by battaile 16:48:44 phew, that e-mail took longer to write than I thought 16:52:10 hrm, old crashes. I'll trigger rebuilds. 16:52:49 -!- bmh has quit [Quit: bmh] 16:55:01 Unstable branch on crawl.develz.org updated to: 0.9-a1-216-g3c820d5 (32) 16:55:45 bmh: this looks great, I'll test it and let you know. 16:56:09 yay, my problem in trunk is gone \o/ 16:56:24 bmh: the morphing is a great idea. 16:58:30 bmh: scaling difficulty would be awesome too. I'm not sure about absolute depth on banishment, though. It would help to make it less boring late game I guess. Early banishment need to be still very dangerous. 17:00:13 maybe it could start off dangerous and scale with the number of runes you've found 17:01:14 you can delay finding runes though 17:02:07 true 17:03:44 scaling with time is a first. With use of translocation is an interesting idea, deserves to be tested. 17:04:06 I thought dpeg was against the abyss scaling with time or XL? 17:04:29 also, you can use tloc in the abyss now? 17:04:50 dpeg is definitely for scaling with time. I'm not sure about his stand on XL scaling, but I'm against. 17:05:25 teleport works, but is slower to kick in. and sometimes fail. 17:05:39 right, but that's how the abyss always worked 17:05:58 you don't choose how long you sit there nor how many times you get abyssed 17:05:58 yes 17:06:29 sit where? 17:07:19 Windows builds of master branch on crawl.develz.org updated to: 0.9-a1-216-g3c820d5 17:08:15 in the abyss 17:09:16 well I thought that sitting in the abyss was discouraged :P 17:09:40 kilobyte: you do have the choice to stack on MR and/or avoid banishing monsters. You might get unlucky of course (and there's miscasts and zot traps...) 17:10:04 kilobyte: do you mean scaling difficulty with time would be too harsh? 17:11:20 I've personally got banished 7 times during a single Elf:5 even though I tried using wands on demonologists, so you can't really avoid that 17:11:39 * due despises banishment. 17:12:27 executioners, ancient liches, and, above all, neqoxecs, already discourage spending any more time in the Abyss than you need to find an exit 17:12:30 I'd like banishment more if abyss trips were more interesting and less time-consuming 17:12:46 so imo it's just a question of accomplishing that 17:13:10 so you'd prefer if abyss trips were shorter but more common? 17:13:18 no 17:14:26 more interesting as in less sparse, less trivial for highlevel characters (without being even more of a death sentence for low level characters) 17:15:09 triple the number of exits, but have 2/3 of them heavily guarded (vaults). 17:15:17 sounds good 17:15:20 for a start, at least 17:15:29 hey, low level spriggans can survive in the Abyss very well :p 17:16:21 galehar: +10, but as the biggest change rather than just "a start" 17:17:20 -!- upsy has quit [Quit: Leaving] 17:17:22 increase the number of lugonu altars as well? 17:17:25 I'm a bit worried it forces the player to choose between one of challenge (guarded exit) and tedium (unguarded exit) 17:17:33 so long as nothing else changes 17:18:11 monqy: you might also try to outsmart the monsters. Lure them away and run for it. 17:18:22 lugonu altars are essentially an exit for characters who haven't found the temple yet :P 17:20:05 galehar: I guess that works so long as it's a risk worth taking when compared with a longer abyss stay (in terms of difficulty, I mean) 17:21:20 you can choose between the risk of fighting the vault vs the risk of staying longer 17:21:26 right 17:21:38 what I mean is it only works when staying longer is actually a risk 17:21:54 lugonu stations teams of abyss knights to keep banished things in 17:21:57 i.e. it is either difficult or has some undesirable side-effect (such as getting more difficult over time) 17:22:42 monqy: it is when your low level. It will also be at high XL if we scale difficulty with time spent. 17:23:52 sounds good 17:25:02 time spent rewards not having bad luck... and guess what, it is already rewarded in other ways 17:26:54 like food costs? 17:28:09 or do you mean more a metagame reward (e.g. assuming abyss is boring, getting out of abyss quickly means less boredom) 17:29:27 food usually not (unless you have berserkitis or are a troll), bad mutations for everyone non-undead, less boredom for powerful chars 17:30:06 running with pants full is not boredom... so long abyss trips for low-level players can be good 17:30:35 but if you're big enough, you can tackle a difficult exit vault and be done with it 17:31:09 mutation is a nice side-effect of abyss that makes getting out early desirable, yes 17:32:30 but it feels weird to me if the major decision for some characters is "do I want to risk dying over ending the boredom". then again, if the guarded exits aren't risky for them, who cares? 17:38:04 -!- Twilight13 has quit [Read error: Connection reset by peer] 17:38:16 -!- Twilight13 has joined ##crawl-dev 17:38:39 -!- Textmode has quit [Ping timeout: 250 seconds] 17:39:24 is banishment still a hell effect? 17:39:58 no 17:40:25 !lm * type=abyss.enter s=noun cv=0.8 17:40:25 674 milestones for * (type=abyss.enter cv=0.8): 132x ?, 127x distortion unwield, 67x a Zot trap, 52x Louise, 48x deep elf sorcerer, 33x ogre mage, 25x drawing a card, 21x Erolcha, 19x deep elf demonologist, 13x wizard, 9x a card of wild magic, 9x the power of Zot, 8x Psyche, 7x the wrath of Vehumet, 7x Sonja, 5x deep elf mage, 5x Lugonu's touch, 4x hell knight, 3x orc, 3x Edmund, 3x the severe cap... 17:40:51 Wensley: it falls back to malign gateway, and if that fails, a random non-banishment miscast of the appropriate school 17:41:10 speaking of which, I'm afraid the malign gateway miscast might be too tame 17:41:16 since it gives the player time to run away 17:41:22 usually 17:41:40 I haven't seen it much in watching games, and never in an actual game 17:42:07 !lg * cv=0.8 skill=summoning 17:42:08 No games for * (cv=0.8 skill=summoning). 17:42:56 monqy: there's an idea of a nasty portal vault hellinshment moves you into 17:43:14 ooh 17:43:27 a sort of hell abyss? 17:44:11 kind of, mostly an ambush that's hard to escape 17:44:37 -!- galehar has quit [Ping timeout: 246 seconds] 17:44:41 -!- galehar has joined ##crawl-dev 17:44:48 kilobyte: i'm quite enamoured of that idea. 17:44:53 I like it too 17:46:07 I forgot who suggested this but the original idea had some unique loot... I'd skip that and leave just the monsters so there is no reward other than xp (which you can get with far less risk elsewhere including Hells themselves) 17:46:23 "halls of hell" 17:46:59 "bowels of hell" 17:47:54 Wensley: <3 17:47:57 noo 17:48:01 bowels of hell is a cliche 17:48:18 Hallows of Hell also works. 17:48:45 flavour text... 17:50:00 hell's kitchen 17:50:38 Hell's Cells 17:50:47 phlegethon 17:50:54 Hellhole 17:51:17 lol hellhole 17:51:22 Wensley: that'd be Gehenna specific 17:51:33 I thought it was cocytus specific? 17:51:58 -!- edlothiol has quit [Ping timeout: 246 seconds] 17:52:17 Wensley: which is not that bad by itself... like, Cocytus could have something water themed. The Deep, Davy Jones' Locker, etc. 17:52:18 "Hell is described as some by a state of mind. Its myriad of corridors and twisted staircases are certainly one physical manifestation of this state, but layered on top of, and beneath, and in front of, and behind these corridors are other places. These are the places that might have been, or might yet be, imagined by a tormented mind. Crossing over to them is easy, but returning... Perhaps not so." 17:52:25 Er, by some as. 17:52:30 Phlegethon is the river of _fire_. 17:54:03 Which basically gives us free reign to make a series of branch-reflective portal vaults that can do anything and be considered slightly "unreal". 17:54:10 If you die in the dream you die in real life! 17:54:56 I am also enamoured of "Hallows" simply for the contrariness! 17:57:52 there's one possible downside: people could scum hell effects to get into those vaults, even with no reward at all 17:57:54 I like the idea that it would have a different theme for each hell, since if you're doing one hell there's a good chance you're going to try the rest, and variety would keep things interesting 17:58:19 (since they can consider a badge "been there" as a meta-reward) 17:58:21 kilobyte: what's preventing use of using the std namespace? 17:58:26 *us 17:58:32 kilobyte: Ridiculous scale of danger, then. 17:59:05 kilobyte: But I don't think that's too problematic if there's no reward; it would be no different to scumming current hell effects for monsters to fight for XP? (If that is doable.) 17:59:18 when you were banished in hell, after you escaped the abyss were you returned to the vestibule or the level of hell you left off from? 17:59:31 The latter. 17:59:32 galehar: 7634967938 conflicts with identifiers. I fixed a bunch but gave up, mostly to not make Cryptic's work even harder. 17:59:37 I think. 18:00:02 galehar: since sed jobs would make it hard to merge his combat rewrite 18:00:05 I for one am for not using the std namespace. 18:00:14 due: why? 18:00:37 due: at the very least, we could typedef std::string string, and the likes 18:00:38 kilobyte: sure, fight rewrite is much more important. 18:00:58 My only complaint with not using it is std::string... ah, yeah. 18:01:02 although it'd be nice to get rid of std::iterator and such every single time 18:01:43 galehar: It makes it easy to know exactly what's crawl and what's stdlib, but we should definitely "import" specific names (string, map, iterator, etc.) 18:01:51 std::map<>, std::min(), std::fluffy_bunny, ... 18:03:10 I kind of fail to see what's the difference between min() and, say, abs() 18:04:09 03kilobyte * rc84f3656905e 10/crawl-ref/source/ (coordit.cc coordit.h): Don't let iterator++ return a value. 18:06:15 IIRC the problematic names were: map, count, pair, distance 18:07:13 typedefing the ones we use the most sounds like a great compromise. 18:07:21 galehar: agree 18:07:40 sadly, most are templates and thus not typedefable :( 18:08:34 std::string is an instantiation of a template and thus works, but std::vector<> or std::map<> don't 18:09:01 Crash, corrupted save file (https://crawl.develz.org/mantis/view.php?id=4039) by Hyrdrachow 18:10:57 If you just want the name, using std::min; // etc. 18:11:15 Which should work just about everywhere but class scope. 18:11:31 (in class scope using means to pull in a name from a private/protected base) 18:13:48 identifiers from std:: we use: http://sprunge.us/FZUf 18:15:37 huh, that's not much at all 18:31:15 -!- galehar has quit [Remote host closed the connection] 19:19:31 NeoRunner (L1 DSSu) (D:1) 19:23:46 !lm NeoRunner type=crash -log 19:23:46 No milestones for NeoRunner (type=crash). 19:24:09 03flodiebold * r8048ff4faaaa 10/crawl-ref/source/tiledoll.cc: Fix a small invalid read. 19:24:19 03kilobyte * r1d4ad02f17ae 10/crawl-ref/source/syscalls.cc: Use a Mac-specific fcntl() instead of fsync() which is buggy there. 19:46:03 -!- valrus has joined ##crawl-dev 19:49:44 -!- Mu_ has quit [Quit: Defecator, may everything turn out okay so that you can leave this place.] 21:22:54 -!- Pseudonut has joined ##crawl-dev 22:15:19 My invisibility leads orc wizard to attack his fellow warrior (https://crawl.develz.org/mantis/view.php?id=4040) by rriegs 22:26:43 FR: pressing "M" over a book shop shows you the spells available in that book shop 22:26:57 so tedious going through each book 22:32:30 -!- Hehfiel has joined ##crawl-dev 22:41:33 locus (L2 KoIE) (D:1)