EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Bots (https://www.eqemulator.org/forums/forumdisplay.php?f=676)
-   -   botdelete problem ? (https://www.eqemulator.org/forums/showthread.php?t=40653)

DanCanDo 05-29-2016 09:23 PM

botdelete problem ?
 
I'm still working on find out the cause of this weird problem.

I had a mage bot spawned (with his pet). I targeted the bot and typed
^botdelete
The bot sat down and literally looked like he camped out.(depopped) but his pet
hung around. A few seconds after that, my client was kicked back to the
character screen.
When I logged the client back on to server, the bot was deleted, as intended.
I repeated the procedure and same thing happened. Any ideas ?

Uleat 05-29-2016 09:29 PM

I'll check the code to see what may be happening..

..did you have a related server crash?

DanCanDo 05-29-2016 09:36 PM

Now that you ask (chuckle). Found this crash in the logs, but server wasn't
disrupted at all, aside from being tossed to character screen.

Code:

[05-29-2016 :: 19:13:13] [Crash] EXCEPTION_ACCESS_VIOLATION
[05-29-2016 :: 19:13:13] [Crash] SymInit: Symbol-SearchPath: '.;C:\eqemu;C:\eqemu;C:\Windows;C:\Windows\system32;SRV*C:\websymbols*http://msdl.microsoft.com/download/symbols;', symOptions: 530, UserName: 'DAN'
[05-29-2016 :: 19:13:13] [Crash] OS-Version: 6.1.7601 (Service Pack 1) 0x100-0x1
[05-29-2016 :: 19:13:14] [Crash] C:\eqemu\zone.exe:zone.exe (01000000), size: 18599936 (result: 0), SymType: 'PDB', PDB: 'C:\eqemu\zone.exe'
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\SysWOW64\ntdll.dll:ntdll.dll (773A0000), size: 1572864 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\SysWOW64\ntdll.dll', fileVersion: 6.1.7601.23418
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\kernel32.dll:kernel32.dll (74D50000), size: 1114112 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\kernel32.dll', fileVersion: 6.1.7601.23418
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\KERNELBASE.dll:KERNELBASE.dll (76190000), size: 290816 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\KERNELBASE.dll', fileVersion: 6.1.7601.23418
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\SysWOW64\SYSFER.DLL:SYSFER.DLL (737B0000), size: 446464 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\SysWOW64\SYSFER.DLL', fileVersion: 12.1.2015.2015
[05-29-2016 :: 19:13:14] [Crash] C:\eqemu\LIBMYSQL.dll:LIBMYSQL.dll (74610000), size: 2924544 (result: 0), SymType: '-exported-', PDB: 'C:\eqemu\LIBMYSQL.dll'
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\USER32.dll:USER32.dll (75C30000), size: 1048576 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\USER32.dll', fileVersion: 6.1.7601.19061
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\GDI32.dll:GDI32.dll (752D0000), size: 589824 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\GDI32.dll', fileVersion: 6.1.7601.23418
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\LPK.dll:LPK.dll (752C0000), size: 40960 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\LPK.dll', fileVersion: 6.1.7601.19146
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\USP10.dll:USP10.dll (75F10000), size: 643072 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\USP10.dll', fileVersion: 1.626.7601.19054
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\msvcrt.dll:msvcrt.dll (753B0000), size: 704512 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\msvcrt.dll', fileVersion: 7.0.7601.17744
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\ADVAPI32.dll:ADVAPI32.dll (74EC0000), size: 659456 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\ADVAPI32.dll', fileVersion: 6.1.7601.23418
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\SysWOW64\sechost.dll:sechost.dll (76F20000), size: 102400 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\SysWOW64\sechost.dll', fileVersion: 6.1.7601.18869
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\RPCRT4.dll:RPCRT4.dll (74F80000), size: 983040 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\RPCRT4.dll', fileVersion: 6.1.7601.23418
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\SspiCli.dll:SspiCli.dll (74CF0000), size: 393216 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\SspiCli.dll', fileVersion: 6.1.7601.23418
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\CRYPTBASE.dll:CRYPTBASE.dll (74CE0000), size: 49152 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\CRYPTBASE.dll', fileVersion: 6.1.7601.23418
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\WS2_32.dll:WS2_32.dll (75370000), size: 217088 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\WS2_32.dll', fileVersion: 6.1.7601.17514
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\NSI.dll:NSI.dll (75D30000), size: 24576 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\NSI.dll', fileVersion: 6.1.7600.16385
[05-29-2016 :: 19:13:14] [Crash] C:\eqemu\zlib1.dll:zlib1.dll (62E80000), size: 139264 (result: 0), SymType: '-exported-', PDB: 'C:\eqemu\zlib1.dll', fileVersion: 1.2.8.0
[05-29-2016 :: 19:13:14] [Crash] C:\perl\bin\perl512.dll:perl512.dll (28000000), size: 1273856 (result: 0), SymType: '-exported-', PDB: 'C:\perl\bin\perl512.dll', fileVersion: 5.12.3.1204
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18837_none_ec86b8d6858ec0bc\COMCTL32.dll:COMCTL32.dll (74540000), size: 540672 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18837_none_ec86b8d6858ec0bc\COMCTL32.dll', fileVersion: 5.82.7601.18837
[05-29-2016 :: 19:13:14] [Crash] C:\eqemu\lua51.dll:lua51.dll (74360000), size: 356352 (result: 0), SymType: '-exported-', PDB: 'C:\eqemu\lua51.dll'
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\system32\MSVCR110.dll:MSVCR110.dll (74280000), size: 876544 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\system32\MSVCR110.dll', fileVersion: 11.0.51106.1
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\system32\VERSION.dll:VERSION.dll (732F0000), size: 36864 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\system32\VERSION.dll', fileVersion: 6.1.7600.16385
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\system32\apphelp.dll:apphelp.dll (72D80000), size: 311296 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\system32\apphelp.dll', fileVersion: 6.1.7601.19050
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\AppPatch\AcLayers.DLL:AcLayers.DLL (74420000), size: 577536 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\AppPatch\AcLayers.DLL', fileVersion: 6.1.7601.19050
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\SHELL32.dll:SHELL32.dll (762B0000), size: 12890112 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\SHELL32.dll', fileVersion: 6.1.7601.18952
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\SHLWAPI.dll:SHLWAPI.dll (74E60000), size: 356352 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\SHLWAPI.dll', fileVersion: 6.1.7601.17514
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\ole32.dll:ole32.dll (75710000), size: 1429504 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\ole32.dll', fileVersion: 6.1.7601.23392
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\OLEAUT32.dll:OLEAUT32.dll (75670000), size: 585728 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\OLEAUT32.dll', fileVersion: 6.1.7601.19144
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\USERENV.dll:USERENV.dll (75B80000), size: 94208 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\USERENV.dll', fileVersion: 6.1.7601.17514
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\profapi.dll:profapi.dll (758F0000), size: 45056 (result: 0), SymType: '-nosymbols-', PDB: 'C:\Windows\syswow64\profapi.dll', fileVersion: 6.1.7600.16385
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\system32\WINSPOOL.DRV:WINSPOOL.DRV (744E0000), size: 331776 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\system32\WINSPOOL.DRV', fileVersion: 6.1.7601.17514
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\system32\MPR.dll:MPR.dll (71430000), size: 73728 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\system32\MPR.dll', fileVersion: 6.1.7600.16385
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\system32\IMM32.DLL:IMM32.DLL (76200000), size: 393216 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\system32\IMM32.DLL', fileVersion: 6.1.7601.17514
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\syswow64\MSCTF.dll:MSCTF.dll (751E0000), size: 835584 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\syswow64\MSCTF.dll', fileVersion: 6.1.7601.18731
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\system32\NLAapi.dll:NLAapi.dll (749A0000), size: 65536 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\system32\NLAapi.dll', fileVersion: 6.1.7601.18685
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\system32\napinsp.dll:napinsp.dll (749B0000), size: 65536 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\system32\napinsp.dll', fileVersion: 6.1.7600.16385
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\system32\pnrpnsp.dll:pnrpnsp.dll (74920000), size: 73728 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\system32\pnrpnsp.dll', fileVersion: 6.1.7600.16385
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\System32\mswsock.dll:mswsock.dll (748E0000), size: 245760 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\System32\mswsock.dll', fileVersion: 6.1.7601.18254
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\system32\DNSAPI.dll:DNSAPI.dll (74A10000), size: 278528 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\system32\DNSAPI.dll', fileVersion: 6.1.7601.17570
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\System32\winrnr.dll:winrnr.dll (74990000), size: 32768 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\System32\winrnr.dll', fileVersion: 6.1.7600.16385
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\system32\rasadhlp.dll:rasadhlp.dll (74960000), size: 24576 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\system32\rasadhlp.dll', fileVersion: 6.1.7600.16385
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\System32\wshtcpip.dll:wshtcpip.dll (74980000), size: 20480 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\System32\wshtcpip.dll', fileVersion: 6.1.7600.16385
[05-29-2016 :: 19:13:14] [Crash] C:\perl\lib\auto\Cwd\Cwd.dll:Cwd.dll (10000000), size: 20480 (result: 0), SymType: '-exported-', PDB: 'C:\perl\lib\auto\Cwd\Cwd.dll'
[05-29-2016 :: 19:13:14] [Crash] C:\perl\site\lib\auto\DBI\DBI.dll:DBI.dll (00BB0000), size: 98304 (result: 0), SymType: '-exported-', PDB: 'C:\perl\site\lib\auto\DBI\DBI.dll'
[05-29-2016 :: 19:13:14] [Crash] C:\perl\lib\auto\List\Util\Util.dll:Util.dll (000D0000), size: 28672 (result: 0), SymType: '-exported-', PDB: 'C:\perl\lib\auto\List\Util\Util.dll'
[05-29-2016 :: 19:13:14] [Crash] C:\perl\lib\auto\Filter\Util\Call\Call.dll:Call.dll (002F0000), size: 20480 (result: 0), SymType: '-exported-', PDB: 'C:\perl\lib\auto\Filter\Util\Call\Call.dll'
[05-29-2016 :: 19:13:14] [Crash] C:\perl\lib\auto\IO\IO.dll:IO.dll (00310000), size: 24576 (result: 0), SymType: '-exported-', PDB: 'C:\perl\lib\auto\IO\IO.dll'
[05-29-2016 :: 19:13:14] [Crash] C:\perl\site\lib\auto\DBD\mysql\mysql.dll:mysql.dll (00BD0000), size: 86016 (result: 0), SymType: '-exported-', PDB: 'C:\perl\site\lib\auto\DBD\mysql\mysql.dll'
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\System32\fwpuclnt.dll:fwpuclnt.dll (71DA0000), size: 229376 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\System32\fwpuclnt.dll', fileVersion: 6.1.7601.18283
[05-29-2016 :: 19:13:14] [Crash] C:\Windows\system32\dbghelp.dll:dbghelp.dll (6E100000), size: 962560 (result: 0), SymType: '-exported-', PDB: 'C:\Windows\system32\dbghelp.dll', fileVersion: 6.1.7601.17514
[05-29-2016 :: 19:13:16] [Crash] d:\sourcecompile\zone\bot.cpp (2831): Bot::Depop
[05-29-2016 :: 19:13:16] [Crash] d:\sourcecompile\zone\bot.cpp (6944): Bot::Camp
[05-29-2016 :: 19:13:16] [Crash] d:\sourcecompile\zone\bot_command.cpp (4314): bot_subcommand_bot_delete
[05-29-2016 :: 19:13:16] [Crash] d:\sourcecompile\zone\bot_command.cpp (1572): bot_command_real_dispatch
[05-29-2016 :: 19:13:16] [Crash] d:\sourcecompile\zone\client.cpp (1055): Client::ChannelMessageReceived
[05-29-2016 :: 19:13:16] [Crash] d:\sourcecompile\zone\client_packet.cpp (4140): Client::Handle_OP_ChannelMessage
[05-29-2016 :: 19:13:16] [Crash] d:\sourcecompile\zone\client_packet.cpp (478): Client::HandlePacket
[05-29-2016 :: 19:13:16] [Crash] d:\sourcecompile\zone\client_process.cpp (609): Client::Process
[05-29-2016 :: 19:13:16] [Crash] d:\sourcecompile\zone\entity.cpp (487): EntityList::MobProcess
[05-29-2016 :: 19:13:16] [Crash] d:\sourcecompile\zone\net.cpp (497): main
[05-29-2016 :: 19:13:16] [Crash] f:\dd\vctools\crt\crtw32\startup\crt0.c (255): __tmainCRTStartup
[05-29-2016 :: 19:13:16] [Crash] f:\dd\vctools\crt\crtw32\startup\crt0.c (165): mainCRTStartup
[05-29-2016 :: 19:13:16] [Crash] ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 74D6338A)
[05-29-2016 :: 19:13:16] [Crash] 74D6338A (kernel32): (filename not available): BaseThreadInitThunk
[05-29-2016 :: 19:13:16] [Crash] ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 773D9902)
[05-29-2016 :: 19:13:16] [Crash] 773D9902 (ntdll): (filename not available): RtlInitializeExceptionChain
[05-29-2016 :: 19:13:16] [Crash] ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 773D98D5)
[05-29-2016 :: 19:13:16] [Crash] 773D98D5 (ntdll): (filename not available): RtlInitializeExceptionChain


DanCanDo 05-29-2016 10:22 PM

Just so I could clarify when this crash log was generated, before I started the server,
I cleared all logs from both server and client (UF).
After starting server and logging client in, I spawned another bot. But before I went
any further, I checked the logs and verified they were at normal state.
As soon as I typed the ^botdelete, I immediately looked at the server log folder and it
had generated a "crashes" folder with a crash log in it.
"crash_poknowledge_version_0_inst_id_0_port_7004_1 276.log"
It was all the same info as I posted above. I looked in client log and all it had was the
disconnect message:
Code:

[Sun May 29 20:02:45 2016]01168:Networking: connection terminated [client:DisconnectReasonIcmpError,server:DisconnectReasonNone]
[Sun May 29 20:02:45 2016]01169:disconnected at C:\p4\EverQuest\live\EverQuest\EverQuest.cpp:19122 (char. select) DisconnectReasonIcmpError

[Sun May 29 20:02:45 2016]01170:Character is Tanktoon.

[Sun May 29 20:02:45 2016]01171:YOU HAVE BEEN DISCONNECTED.

I was back at character screen but, I entered world again, everything was
normal, then I camped the toon out normally.
I haven't seen any indications of anyone else having this kind of problem yet,
so maybe something on my end ?

Uleat 05-29-2016 10:35 PM

That's definitely a server crash..anyone else in that particular zone would have been booted as well.

Quote:

EXCEPTION_ACCESS_VIOLATION
..is probably a 'dangling' pointer - a pointer reference that contains a non-null value..but, has had its resources released.


It could be on your end..but, I'm leaning more towards the server code.

I tried not to change bot methodology when I was coding the new bot system (existing issues would still be existing issues...)

I honestly didn't go through and test every condition in every command of the old system to see what was a 'pre-existing' condition.

And it's very possible that I missed this particular condition when I tested the new one O.o

Uleat 05-29-2016 10:44 PM

I won't be able to test this until later tonight and possibly push the fix tomorrow - if it works...

But, you can test this out and see how it does until I get back and can finalize it: http://wiki.eqemulator.org/i?Module=...Paste=N6sDbJGO

DanCanDo 05-29-2016 10:47 PM

Ya, I just tried this with my rof2 client and got the exact same thing.
This particular copy of my server, is totally barebones with no mods
done to the database other than what updates are available through
the update script. It's the first time today that I used that botdelete
cmd, so I have no idea where the cause comes from, "yet" (chuckle)

atrayas 05-29-2016 10:48 PM

I ran into this problem awhile back and on the old source you could make your bot unsummon there pet then do a bot delete and everything would be fine. But the pet being out always seemed to if not crash the zone create a huge amount of lag. Not sure if this is still an issue on the new source as I have not tested but worth a test.

DanCanDo 05-29-2016 10:48 PM

Quote:

Originally Posted by Uleat (Post 249079)
I won't be able to test this until later tonight and possibly push the fix tomorrow - if it works...

But, you can test this out and see how it does until I get back and can finalize it: http://wiki.eqemulator.org/i?Module=...Paste=N6sDbJGO

Ok, thanks, I will check it out and post the results.

Uleat 05-29-2016 10:59 PM

Yeah, if I had to change something in the bot class, I usually just interpreted what was there..and it looks like the crash was transposed :P

DanCanDo 05-29-2016 11:16 PM

Just compiled and tested out the fix you posted.
SUCCESS :)
Bot and pet depopped immediately, no hassles.
Thank you so much.

Uleat 05-29-2016 11:19 PM

Roger that!

I'll do a little more testing tonight and push it tomorrow..need to make sure that it doesn't break other systems.

DanCanDo 05-30-2016 05:41 PM

Something else I noticed, which is not a new issue on these forums, getting bots to zone
with your toon. I tried something out a few times, if I spawn a non-pet class bot,(tank),
it will zone with my toon no problem, but any bot with a pet will not zone.
After spawning a mage bot, I tried using the ^petremove command, but get a message
about not having any bots spawned capable of charming, etc.
I get a little chuckle out of the variety of pets that a mage will spawn. At many levels,
it seems to use the "monster summoning" spell instead. Sitting in the PoK, it will summon
anything from a pumpkin head to a giant white rat or sarnak. At one point, it summoned
a little tiger that looked more like a stuffed animal floating a few feet off the surface.

Uleat 05-30-2016 06:58 PM

Owner-based group bots should zone properly with their owner..and I thought that I had tested the 'with-pet' case..but, I could be mistaken. I will take a look at that.

Currently, bot-group based bots do not zone with their owners due to the way that groups are currently handled. (The group class will require a rewrite.)

Hotkeys work really well for getting them back up and running.


Yeah, the ^petremove command is really for releasing a charm-class bot's pet so that they can charm selected targets (enchanter, druid, necromancer...)


EDIT:

I tried with both enchanter and magician pets using in- and out-of-zone travel.

My bots traveled with me.

Even tried using the ^pset monster option to see if it was a model issue.


It may be something on your end..but, I'll need more criteria to verify if it's a server code-related issue.

DanCanDo 05-30-2016 08:38 PM

Yes, I have hot keys setup to spawn the bots to make things simple.
I personally don't worry too much about bots zoning, since I wouldn't
really spawn them while I am travelling anyways, rather just wait until
I am at my destination, then bring them up. But I will have to look at
things on my end, to see why it's not working, since you tested it and
verified that it works for you. I will try different pet classes and see.

I will check things out in the database to see what kind of changes I
can make for the mage pets, so they spawn the regular pets of air,
water, earth and fire.


All times are GMT -4. The time now is 05:34 AM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.