anchor.diff:  	GLOB.admins.Cut()
   	GLOB.protected_admins.Cut()
   	GLOB.deadmins.Cut()
  -	dbfail = load_admin_ranks(dbfail, no_update)
  +	var/list/backup_file_json = load_admin_ranks(dbfail, no_update)
  +	dbfail = backup_file_json != null
   	//Clear profile access
   	for(var/A in world.GetConfig("admin"))
   		world.SetConfig("APP/admin", A, null)
  
positive.code: 		qdel(query_load_admins)
  	//load admins from backup file
  	if(dbfail)
  		var/backup_file = file("data/admins_backup.json")
  		if(!fexists(backup_file))
  			log_world("Unable to locate admins backup file.")
  			return
  		var/list/json = json_decode(file2text(backup_file))
  		for(var/J in json["admins"])
  			for(var/A in GLOB.admin_datums + GLOB.deadmins)
  				if(A == "[J]") //this admin was already loaded from txt override
  					continue
  			new /datum/admins(rank_names[ckeyEx(json["admins"]["[J]"])], ckey("[J]"))
  	#ifdef TESTING
  	var/msg = "Admins Built:\n"
  	for(var/ckey in GLOB.admin_datums)
  
negative.code: 			if(!R)
  				continue
  			GLOB.admin_ranks += R
  		return json
  	#ifdef TESTING
  	var/msg = "Permission Sets Built:\n"
  	for(var/datum/admin_rank/R in GLOB.admin_ranks)
  