anchor.diff:  
   /obj/machinery/portable_atmospherics/canister/sleeping_agent/New()
   	..()
  -
  +	
   	_color["prim"] = "redws"
   	var/datum/gas/sleeping_agent/trace_gas = new
   	air_contents.trace_gases += trace_gas
  
positive.code: 		overlays += "can-o2"
  	else if(update_flag & 32)
  		overlays += "can-o3"
  
  	update_flag &= ~196 //the flags 128 and 64 represent change, not states. As such, we have to reset them to be able to detect a change on the next go.
  	return
  
  //template modification exploit prevention, used in Topic()
  /obj/machinery/portable_atmospherics/canister/proc/is_a_color(var/inputVar, var/checkColor = "all")
  	if (checkColor == "prim" || checkColor == "all")
  		for(var/list/L in possiblemaincolor)
  			if (L["icon"] == inputVar)
  				return 1
  	if (checkColor == "sec" || checkColor == "all")
  		for(var/list/L in possibleseccolor)
  			if (L["icon"] == inputVar)
  				return 1
  	if (checkColor == "ter" || checkColor == "all")
  		for(var/list/L in possibletertcolor)
  			if (L["icon"] == inputVar)
  				return 1
  	if (checkColor == "quart" || checkColor == "all")
  		for(var/list/L in possiblequartcolor)
  			if (L["icon"] == inputVar)
  				return 1
  	return 0
  
  /obj/machinery/portable_atmospherics/canister/proc/is_a_decal(var/inputVar)
  	for(var/list/L in possibledecals)
  		if (L["icon"] == inputVar)
  			return 1
  	return 0
  
negative.code: 	if(list2params(oldcolor) != list2params(_color))
  		update_flag |= 64
  		oldcolor = _color.Copy()
  	
  	if(list2params(olddecals) != list2params(decals))
  		update_flag |= 128
  		olddecals = decals.Copy()
  	
  	if(update_flag == old_flag)
  		return 1
  	else
  