digraph {
	graph [nodesep=1, ranksep=1];
	{rank = same; unknown; "running"; "dead";}
	//{rank = same; cooling; paused; warming;}

	unknown -> "running" [label="eXecute *"];
	"running" -> "cooling" [label="Cool"];
	"cooling" -> "paused" [label="* Pause"];
	"running" -> "paused" [label="* Pause"];
	"paused" -> "running" [label="Resume *"];

	"paused" -> "warming" [label="Warm *"];
	"warming" -> "running" [label="Resume"];
	"running" -> "dead" [label="* End"];
}
