summaryrefslogtreecommitdiff
path: root/source3/namedbname.c
AgeCommit message (Collapse)AuthorFilesLines
1997-10-23Big change to make nmbd code more readable/understandable.Jeremy Allison1-74/+32
Main change is removal of find_name_search() confusion. This has been replaced with find_name_on_subnet() which makes it explicit what is being searched. Also changed wins_subnet to be wins_client_subnet in preparation for splitting the wins subnet into client and server pieces. This is a big nmbd change and I'd appreciate any bug reports. Specific changes follow : asyncdns.c: Removed wins entry from add_netbios_entry(). This is now explicit in the subnet_record parameter. interface.c: iface_bcast(), iface_nmask(), iface_ip() return the default interface if none can be found. Made this behavior explicit - some code in nmbd incorrectly depended upon this (reply_name_status() for instance). nameannounce.c: find_name_search changes to find_name_on_subnet. namebrowse.c: wins_subnet renamed to wins_client_subnet. namedbname.c: find_name_search removed. find_name_on_subnet added. add_netbios_entry - wins parameter removed. namedbsubnet.c: find_req_subnet removed - not explicit enough. nameelect.c: wins_subnet renamed to wins_client_subnet. namepacket.c: listening() simplified. nameresp.c: wins_subnet renamed to wins_client_subnet. nameserv.c: find_name_search moved to find_name_on_subnet. nameserv.h: FIND_XXX -> changed to FIND_SELF_NAME, FIND_ANY_NAME. nameservreply.c: find_name_search moved to find_name_on_subnet. Debug entries changed. nameservresp.c: wins_subnet renamed to wins_client_subnet. namework.c: wins_subnet renamed to wins_client_subnet. nmbd.c: wins parameter removed from add_netbios_entry. nmbsync: wins_subnet renamed to wins_client_subnet. proto.h: The usual. server.c: remove accepted fd from fd_set. Jeremy (jallison@whistle.com) (This used to be commit 2c97b33fc0b5ef181dbf51a50cb61074935165bf)
1997-10-22Implemented asynchronous DNS lookups in nmbd.Andrew Tridgell1-45/+4
I realised this afternoon just how easy it is to add this, so I thought I'd implement it while the idea was fresh. nmbd forks at startup and uses a pipe to talk to its child. The child does the DNS lookups and the file descriptor of the child is added to the main select loop. While I was doing this I discovered a bug in nmbd that explains why the dns proxy option has been so expensive. The DNS cache entries in the WINS list were never being checked, which means we always did a DNS lookup even if we have done it before and it is in cache. I'm sure this used to work (I tested the DNS cache when I added it) so someone broke it :-( Anyway, the async DNS gets rid of the problem completely. I'll commit just the fix to the DNS cache bug to the 1.9.17 tree. You can disable async DNS by adding -DSYNC_DNS to the compile flags. (This used to be commit 178e27de0791c1ff3268cb456ed5c5efc9ac2a01)
1997-09-26Adding Andrews buffer overflow fixes into the main branch.Jeremy Allison1-4/+4
Jeremy (jallison@whistle.com) (This used to be commit e7eb1f044d3101679dc7a118820ea5efe0cd837c)
1997-09-16Fixing assumtions that malloced memory is zero filled - makingJeremy Allison1-0/+2
sure it is. Jeremy (jallison@whistle.com) (This used to be commit 59ee0d0c7ea166a3bf58ceb4c939217d6ff74498)
1997-06-03namedbname.c: Fixed problem with remove_name code that could cause core dump.Samba Release Account1-83/+91
Jeremy jallison@whistle.com (This used to be commit 65f82fb153ef8b007d3f800a6e398545907ae95c)
1997-06-02nameannounce.c: Made sure recurse flag set correctly.Samba Release Account1-6/+7
namedbname.c: Made sure wins.dat updated when list changes. Changed to returning 255.255.255.255 when 1e name queried. namepacket.c: Made sure recurse flags set correctly. nameserv.c: Made sure recurse flags set correctly. nameservreply.c: Made send_name_response() static, Made sure recurse flags set correctly. Changed to returning 255.255.255.255 when 1e name queried. proto.h: Removed send_name_response(). Jeremy jallison@whistle.com (This used to be commit 4e9fd24f65971bbbda5f76499e5d14f90eef8038)
1997-05-30namedbname.c: Added 'S' or 'R' flags to wins.dat to aid debugging. Forced ↵Samba Release Account1-5/+22
all type 1e names to be added as 255.255.255.255. namedbsubnet.c: Fixed bug I intruduced - register 1e name on WINS subnet also. (thanks to Luke for pointing this one out). Jeremy (jallison@whistle.com) (This used to be commit fbeaf146c0903f0939d1128af01cff8ea18a2546)
1997-05-30charcnv.c: Fixed silly bugs detected on IRIX.Samba Release Account1-2/+9
client.c: Fixed silly bugs detected on IRIX. namedbname.c: Stopped 1d names from being registered in WINS db. namedbsubnet.c: Only register 1e names on broadcast subnet. nameelect.c: Changed add_my_name entries. Forced host announces if we have less than 10 servers listed. Fixed registering 1b domain name issues. namepacket.c: Added error message when dgram discarded. nameserv.c: Added notion of 'direct' names that are not registered on the network. Needed to get around bugs in earlier nmbd handling of DOMAIN(1b) names. nameservreply.c:Tidied up debug message. nameservresp.c: Added response_name_query_domain() code. Deals with re-registering DOMAIN(1b) name. nmbd.c: Fixed silly bugs detected on IRIX. nmblib.c: Added paranoia debugs. proto.h: Updated remove_name_entry(), add_my_name_entry(). server.c: Fixed silly bugs detected on IRIX. trans2.c: Fixed silly bugs detected on IRIX. uid.c: Fixed silly bugs detected on IRIX. version.h: Updated to alpha3. Jeremy (jallison@whistle.com). (This used to be commit f08222bd8b86a061c52d22015f946a4737eb47fd)
1997-05-20dir.c: Fixed double slash issue.Samba Release Account1-3/+4
includes.h: Changed to ifdef FAST_SHARE_MODES. ipc.c: Changed lp_workgroup() to myworkgroup. loadparm.c: Added new shared mem parameters. Added Luke's fix. locking.c: Rewrite to do share modes better (both fast and slow modes). nameannounce.c: Changed lp_workgroup() to myworkgroup. Added Luke's fix. nameconf.c: Changed lp_workgroup() to myworkgroup. namedbname.c: Improved debug. namedbserver.c: Changed lp_workgroup() to myworkgroup. namedbsubnet.c: Added Luke's fix - rewritten somewhat. namedbwork.c: Changed lp_workgroup() to myworkgroup. nameelect.c: Added Luke's fix - rewritten somewhat. nameresp.c: Stoped shadowing global. nameserv.c: Added Luke's fix - Improved debug. nameservreply.c: Improved debug. namework.c: Changed lp_workgroup() to myworkgroup. nmbd.c: Added Luke's fix - Changed lp_workgroup() to myworkgroup. pipes.c: Changed lp_workgroup() to myworkgroup. proto.h: Added Luke's fix, added smb_shm_ proto's. reply.c: Changed lp_workgroup() to myworkgroup. server.c: Rewrite to do share modes better (both fast and slow modes). shmem.c: Rewrite to do share modes better (both fast and slow modes). smb.h: Rewrite to do share modes better (both fast and slow modes). status.c: Rewrite to do share modes better (both fast and slow modes). trans2.c: Fixed double slash issue. util.c: Tidied up, created myworkgroup. Jeremy Allison (jallison@whistle.com). (This used to be commit 2a1711eaaf08bb6776770cd3c96b3010f431a677)
1997-05-15namedbname.c: Fixed *nasty* bug that caused nmbd to spin and eat memorySamba Release Account1-0/+6
and CPU whilst trying to become a master browser. Don't ask, you don't want to know :-). nameresp.c: Tidied formating of code. nameservresp.c: Added debug value of IP address that is rejecting our registration. jallison@whistle.com (This used to be commit c0bae276a99211c0c7149a5e4e801706870074fd)
1997-05-08'The mother of all checkins' :-). Jeremy Allison (jallison@whistle.com)Samba Release Account1-28/+31
Wed May 7 1997: Update for 1.9.17alpha1 release - 'browsefix release' designed to make browsing across subnets work. byteorder.h: Updated copyright to 1997. charcnv.c: Updated copyright to 1997. charset.c Updated copyright to 1997. charset.h Updated copyright to 1997. client.c Updated copyright to 1997. clientutil.c Updated copyright to 1997. dir.c Updated copyright to 1997. fault.c Updated copyright to 1997. includes.h Updated copyright to 1997. interface.c Updated copyright to 1997. ipc.c Updated copyright to 1997. kanji.c Updated copyright to 1997. kanji.h Updated copyright to 1997. loadparm.c Updated copyright to 1997. locking.c Updated copyright to 1997. mangle.c Updated copyright to 1997. message.c Updated copyright to 1997. nameannounce.c Made use of WINS subnet explicit. Added reset_announce_timer() so announcement can be made immediately when we become a master. Expanded code to do sync with dmb. namebrowse.c Removed redundent checks for AM_MASTER in sync code. Made use of WINS subnet explicit. namedbname.c Made use of WINS subnet explicit. namedbresp.c Made use of WINS subnet explicit. namedbserver.c Made use of WINS subnet explicit. namedbsubnet.c Explicitly add workgroup to WINS subnet when we become a dmb. Made use of WINS subnet explicit. namedbwork.c Made use of WINS subnet explicit. Removed redundent check_work_servertype() function. nameelect.c Explicitly add workgroup to WINS subnet when we become a master browser. Made use of WINS subnet explicit. namelogon.c Updated copyright to 1997. namepacket.c Updated copyright to 1997. namequery.c Updated copyright to 1997. nameresp.c Made use of WINS subnet explicit. Made nmbd fail if configured as master browser and one exists already. nameserv.c Made use of WINS subnet explicit. Remove redundent logon server and domain master code. nameserv.h Add emumerate subnet macros. nameservreply.c Made use of WINS subnet explicit. nameservresp.c Updated copyright to 1997. namework.c Made use of WINS subnet explicit. Updated code to add sync browser entries to add subnet parameter. nmbd.c Added sanity check for misconfigured nmbd. nmblib.c Updated copyright to 1997. nmblookup.c Updated copyright to 1997. nmbsync.c Removed redundent AM_ANY_MASTER check. params.c Updated copyright to 1997. password.c Updated copyright to 1997. pipes.c Updated copyright to 1997. predict.c Updated copyright to 1997. printing.c Updated copyright to 1997. proto.h Changed protos for new nmbd code. quotas.c Updated copyright to 1997. replace.c Updated copyright to 1997. reply.c Updated copyright to 1997. server.c Updated copyright to 1997. shmem.c Updated copyright to 1997. smb.h Updated copyright to 1997. smbencrypt.c Updated copyright to 1997. smbpasswd.c Updated copyright to 1997. smbrun.c Updated copyright to 1997. status.c Updated copyright to 1997. system.c Updated copyright to 1997. testparm.c Updated copyright to 1997. testprns.c Updated copyright to 1997. time.c Updated copyright to 1997. trans2.c Updated copyright to 1997. trans2.h Updated copyright to 1997. uid.c Updated copyright to 1997. username.c Updated copyright to 1997. util.c Updated copyright to 1997. version.h Changed to 1.9.17alpha1. (This used to be commit cf23a155a1315f50d488794a2caf88402bf3e3e6)
1997-04-09Large changes from jra@cygnus.com. Mainly browser updates.Samba Release Account1-24/+26
access.c: Fixed crash if yp domain unavailable. includes.h: Moved ifdefs for minor platform. interface.c: Changed name of ipgrp to wins_ip to make it clearer. loadparm.c: Changed default of wins support to 'no'. nameannounce.c: Many changes to fix cross subnet browsing. namebrowse.c: Many changes to fix cross subnet browsing. namedbname.c: Many changes to fix cross subnet browsing. namedbresp.c: Many changes to fix cross subnet browsing. namedbsubnet.c: Many changes to fix cross subnet browsing. namedbwork.c: Many changes to fix cross subnet browsing. nameelect.c: Many changes to fix cross subnet browsing. namelogon.c: Many changes to fix cross subnet browsing. namepacket.c: Many changes to fix cross subnet browsing. nameresp.c: Many changes to fix cross subnet browsing. nameserv.c: Many changes to fix cross subnet browsing. nameserv.h: Many changes to fix cross subnet browsing. nameservreply.c: Many changes to fix cross subnet browsing. nameservresp.c: Many changes to fix cross subnet browsing. namework.c: Many changes to fix cross subnet browsing. nmbd.c: Change to search wins subnet. nmbsync.c: Change to check if we are any master before proceeding. proto.h: Added find_subnet_all() and check_work_servertype(). util.c: Moved 'done' settings on name resolution. (This used to be commit a82476eee2c521e5eed092bc367da0a7cef23de1)
1996-12-10Added in missing return statement.Samba Release Account1-0/+1
jra@cygnus.com (This used to be commit 61dc3087a0fbe92d703d46722338aa9e06b56ed0)
1996-11-06increased debug levels for name dump to same as that for workgroup dumpSamba Release Account1-7/+7
in log files. really verbose listings ought only to be shown at debug log level 5 and above. lkcl (This used to be commit 6f0a4d71787cf64468cdba0b2f82288c71b1499b)
1996-11-06queries for 0x1b names were resulting in dns lookups. not good.Samba Release Account1-2/+2
lkcl (This used to be commit 992ca1f32bd2bcb88bf85a71524b5643f63b322e)
1996-10-27removed getdomainname() stuff and appending a '.' to the name inSamba Release Account1-21/+1
dns_name_search(). lkcl (This used to be commit adf5a42c21cd73ee0eaf05030e01788908fbb8a5)
1996-10-27severe debugging session for nmbd. in fact, i'm surprised that browsingSamba Release Account1-3/+4
in 1.9.16 works at all! question and resource record types for queries and response netbios packets sorted out properly (see rfc1002.txt 4.2.1.3). receipt of browser announcement packets were playing up lkcl (This used to be commit b289db62f1a53f1a68ea48dbfa59720cc778d39c)
1996-10-25debugging the dns lookup changesSamba Release Account1-6/+25
lkcl (This used to be commit 3f63dd6771ee1c4cd30049478ea053caefdc262f)
1996-10-25debugged dns lookup / netbios name query code from yesterday.Samba Release Account1-48/+28
lkcl (This used to be commit 7c2f1da3773bac59ba0aeea7c0cac1134a74381c)
1996-10-24dealing with name queries and dns lookups etc.Samba Release Account1-30/+9
lkcl (This used to be commit 98cb371244fcb048ad13514140a4ea7243b2b039)
1996-10-24- added support for TMPDIR env variableAndrew Tridgell1-0/+8
- fixed fault.c for linux 2.1 - put back in the FIND_SELF failing code - cleaned up casts in encryption (This used to be commit 3af04f1580b2569c0a4f2549bf6352c7a25afa0d)
1996-10-23code was added to stop samba from replying to queries for its own names (?! :-)Samba Release Account1-7/+0
lkcl (This used to be commit 92a3d0f3e18f7e50ea24053a989fd0096264c816)
1996-10-05- replace the base36 function with one that works on more systemsAndrew Tridgell1-2/+2
(compiler bugs were the problem) - minor password cleanups (catch WfWG bug where it sets the password to a space instead of a NULL) - fix printing problem for kanji users - minor cleanups (This used to be commit 92566ecc315c29da6e9aaa67ddae33e64f5bcc67)
1996-10-05I have fixed quite a few important bugs in this commit.Andrew Tridgell1-2/+8
Luke, can you take special note of the bug fixes to nmbd so you can propogate them to your new code. - rewrote the code that used to use fromhost(). We now call gethostbyaddr() only if necessary and a maximum of once per connection. Calling gethostbyaddr() causes problems on some systems so avoiding it if possible is a good thing :-) - added the "fake oplocks" option. See the docs in smb.conf(5) and Speed.txt - fixed a serious bug in nmbd where it would try a DNS lookup on FIND_SELF queries. This caused a lot of unnecessary (and incorrect) DNS lookups to happen. FIND_SELF queries should only go to the internal name tables. - don't set FIND_SELF for name queries if we are a wins proxy, as we are supposed to be answering queries for other hosts. - fixed a bug in nmbd which had "if (search | FIND_LOCAL)" instead of "if (search & FIND_LOCAL)". Luke, this was in nameservreply.c - the above 3 bugs together meant that DNS queries were being cached, but the cache wasn't being used, so every query was going to DNS, no wonder nmbd has been chewing so much CPU time! Another side effect was that queries on names in lmhosts weren't being answered for bcast queries with "wins proxy" set. - ignore the maxxmit for seconday session setups (see CIFS spec) - close user opened files in a uLogoffX for user level security (see CIFS spec) - added uid into the files struct to support the above change (This used to be commit ea472b7217b7693627a13a7b1e428a0a6a3d8755)
1996-10-02backout all the changes to nmbd.Andrew Tridgell1-158/+125
The 1.9.16 tree is now back to 1.9.16p2 as far as nmbd is concerned apart from a small change that fixes the announce type in two places. (This used to be commit 45e66a69d320024877c8b13f12b21bf895e04410)
1996-10-02- a huge pile of changes from Luke which implement the browse.confAndrew Tridgell1-125/+158
stuff and also fix a pile of nmbd bugs. Unfortunately I found it very hard to disentangle the new features from the bug fixes so I am putting in the new code. I hope this is the last big pile of changes to the 1.9.16 series! (This used to be commit 20b6203dac4bbb43e4e7bea0b214496d76d679d9)
1996-08-24removed all of lukes recent changes. I need to do a p2 release butSamba Release Account1-144/+124
can't test the multi group changes. I also found that some of lukes changes wiped out some recent bug fixes. Is your CVS tree ok luke? (This used to be commit 8b7fe224bce64803d55ae279fa61ef3ebbbb0241)
1996-08-23- fixed bugs in nmb response packet checking.Samba Release Account1-124/+144
- added multiple workgroup code - samba can register under different (unique) NetBIOS aliases, one per workgroup it joins. lkcl (This used to be commit f24e341e7e4d8726b98d3a0f83b24f61817fe536)
1996-08-21- bit a bit manipulation bug in find_name_search()Andrew Tridgell1-19/+17
- add the * and __SAMBA__ names to all subnets - sort the name status reply list and remove duplicate entries. (This used to be commit 04353a9479c01322e34b2f59330fd74a759f6869)
1996-08-20- fix a bug in NetServerEnum where counted and total were not countedAndrew Tridgell1-12/+12
correctly if there were multiple instances of a name. This led to the infamous "not enough memory" error when browsing (but this isn't the only cause of that message) - fix a triple-chaining bug which affected OpenX following a TconX - fix a serious nmbd bug that meant nmdb would answer packets that it wasn't supposed to, causing havoc with browse lists. - never time out SELF packets. This is an interim fix until I find out why nmbd thought they should be timed out. (This used to be commit 2960c3908c2c3b01a1f2b77def60350018d298e1)
1996-08-17i wondered why there was a cvs clash on namedbname.cSamba Release Account1-7/+3
- redid tridge's fprintf for storing wins.dat, and yet again removed the unsigned long changing it to a unint32. lkcl (This used to be commit bb57170695a3582c3a1c5a89044a67ac79134d14)
1996-08-17- fixed wins.dat reloading (it wasn't happening!)Samba Release Account1-38/+42
- made nb_flags an unsigned 16 bit int in nameserv.h - nmbd was calling add_my_subnets() with an uninitialised parameter group. removed it. lkcl (This used to be commit 3d55e541569e7ab887bddc284bddcafdf86c4d22)
1996-08-17- made FAST_SHARE_MODES standard for LinuxAndrew Tridgell1-41/+32
- you can now press enter after a password prompt with "smbclient -L hostname" and it will use a blank username and password, the same as if you used -U% - changed the wins.dat store code to not go via a string variable (just use fprintf instead) - removed a "unsigned long" that luke put back in, changing it to uint32 to keep 64 bit machines happy. Naughtly luke! - allow guest non-connnected print queue listings so ms client 3 can work (This used to be commit 917160dee69bbc198985b6f3232ca2dcda809d8a)
1996-08-17- updated load_netbios_names() to cope with new wins.dat formatSamba Release Account1-3/+5
it doesn't support loading of Internet Group names yet, but then again, you can't create Internet Group names yet, so it's not a problem! (This used to be commit 960aad39ac7b9d8c9820fbf7c4cb640ba96a29d6)
1996-08-17- started on support for 'Internet Group names' - type 0x1c NetBIOS namesSamba Release Account1-37/+74
- 0x1d name query to a WINS server should always return FAIL (see WINS server help on nt/as) (This used to be commit a7330127a261f814c56e860b6de658dbef24c33f)
1996-08-17- added support for Amiga-unix (based on BSD I think)Andrew Tridgell1-29/+26
- changed the order of PROGS and SPROGS in Makefile (SPROGS first) - another 64 bit cleanup (for INADDR_NONE) - added paranoia code in DirCacheAdd() to detect looping - fixed important DirCache flush bug - rewrote the NetServerEnum code after I found it could return servers from multiple workgroups at once, and this could cause browsing havoc. Now a null workgroup query is equivalent to a query for the servers primary workgroup - got rid of my_workgroup() - got rid of "workgroup = *" comment in Makefile. We no longer support a workgroup of *, users must set the workgroup explicitly - the wins.dat file was being stored in a different format to what it was being loaded in - this could cause havoc. fixed. - uppercase our netbios name and the workgroup name at startup - if accept fails in main loop when running as a daemon then continue, don't just exit! - don't use ./ on smbclient in smbtar - better code to detect if a process exists (This used to be commit ec3d53963064b50ff33e8eff47812aac82f164ba)
1996-08-14changed "unsigned long" to "uint32" in several places (for IPAndrew Tridgell1-1/+1
addresses) to keep 64 bit machines happy. (This used to be commit b4aaec504ae66dc6a0f05d12529100cb62d47afd)
1996-08-01local_only NetServerEnum syncs can now be issued.Samba Release Account1-1/+22
bug spotted in nameservresp.c - arguments to test subnet the response is received on (same_net()) were the wrong way round (ccm@shentel.net) samba was adding WORKGROUP(1e) as a unique not a group name: fixed this bug in reply_name_status() and reply_name_query(): WINS entries weren't being looked up. name status reply adds local SELF entries to WINS SELF entries: some SELF entries are only added locally, while others are only added via WINS. name status needs to have both, combined. a sync will only occur when an ANN_LocalMasterAnnouncement is received, NOT an ANN_HostAnnouncement or an ANN_DomainAnnouncement. when samba is a member of a workgroup, it looks for (using a wins server) and announces to its domain master. NAME_QUERY_ANNOUNCE_HOST - yet another 'state' - has been created to do this: do the name query on the wins server and send the announce host to the answer to this query. jeremy @ vantive wrote the original code to do this, which used the name_query() function. i'm trying to avoid name_query: it times out and generally messes things up, but using queue_netbios_packet() and queue_netbios_pkt_wins() is... not intuitive? lkcl with help from jra (This used to be commit 6e932e4bae8b46e7ff4a55a75484bad78308336a)
1996-07-18NeXT needs #define pid_t int in includes.hSamba Release Account1-12/+5
namedbname.c:find_name_search() needed search capability on both local subnet records and WINS records. it used to return NULL if the name was not found in the local subnet records even if you asked it to search the WINS name records as well. (This used to be commit 96c2efded884ce4390c5da68afaccca9acc17558)
1996-07-17lots of changes to nmbdSamba Release Account1-9/+8
lkcl (This used to be commit 45d3b2644733333c657c48a69719fec72881f7df)
1996-07-09sorted out various timer delay bugs: nameannounce.c nameserv.cSamba Release Account1-7/+9
namedbname.c:search_for_name() wasn't looking for 0x1b as well as 0x0 and 0x20 name types. reduced number of retransmissions of packets from 4 to 3 times. added code that ensures remote lmhosts entries don't get deleted when a master browser cannot be found on a remote subnet. stopped forcing an election on remote subnets if a master browser cannot be found. stopped browse list and wins list from being written out too frequently. only add samba's names to local interfaces. add 0x1c name if we are a domain logon machine (needs more exploration). why bother reloading services when receiving a SIGTERM? sort out add_my_name_entry() and remove_name_entry() to deal with broadcast, samba as a WINS and samba using a WINS. properly. added extra debug information to help with expected response queue code. updated debug comments in become_master(). altered dump_names() DEBUG format. it looks prettier. altered wins.dat format to match DEBUG format. lkcl (This used to be commit 429f1f975e2936f2e220b656c51c211d48d47047)
1996-07-07added the recently shuffled and updated source files missed in theSamba Release Account1-0/+547
previous commit (see previous log message for details) fixed bug in nameservreply.c: wrong macro in use (RSSVAL not IVAL!). did another make proto lkcl (This used to be commit d78b319062144d14a54408fce77ccc313ad58ee3)