<｜begin▁of▁sentence｜>### Instruction:
As a bailiff, part of your responsibility involves ensuring that courtroom procedures are followed smoothly, maintaining order, and guaranteeing the safety of everyone present. Imagine you're tasked with organizing evidence presentation in a complex legal case involving a network of interconnected events. You need to visually represent these connections using a graph to aid in presenting the case to the court.

You've gathered data on the relationships between various events, represented as a graph with specific edge connections. Some of these events are self-referential, forming loop edges in the graph. To make the presentation more impactful, you want to create a visually distinct graph where nodes represent events, and loop edges are drawn with a tapered style, highlighting their significance.

Using the `TaperedEdgeDrawer` tool, your goal is to write Python code to generate this graph representation and save it as an image file named 'output.png'. This visually appealing representation will help convey the intricate connections between different events to the judge, jurors, witnesses, and spectators in the courtroom.
### Response:
import igraph
from igraph.drawing.graph import DefaultGraphDrawer
from igraph.drawing.edge import TaperedEdgeDrawer

# Create an example graph
edges = [(0, 0), (1, 2), (2, 2)]
g = igraph.Graph(edges=edges)

def draw_graph(graph):
    # Initialize the visual properties
    visual_style = {}
    visual_style['vertex_size'] = 20
    visual_style['bbox'] = (300, 300)
    visual_style['margin'] = 20

    # Create a surface to draw on
    surface = igraph.drawing.surface.Surface(300, 300)
    # Create a DefaultGraphDrawer
    drawer = DefaultGraphDrawer()
    # Create a TaperedEdgeDrawer for drawing edges
    edge_drawer = TaperedEdgeDrawer(surface)

    # Draw the graph
    drawer.draw(graph, target=surface, visual_style=visual_style,
                edge_drawer=edge_drawer)

    # Save the drawing to a file
    surface.write_to_png('output.png')

# Call draw_graph to draw our test graph
draw_graph(g)
<|EOT|>
