action-info.svg comes from the Material Design icon set. See
action/svg/production/ic_info_48px.svg in the
github.com/google/material-design-icons repository at the tag 3.0.2.

action-info.{lo,hi}res.ivg are low- and high-resolution IconVG versions of that
SVG file. Low resolution means that coordinates are quantized to 1/64th of a
unit; the graphic's size is 48 by 48 units. High resolution means that
coordinates are represented by all but the 2 least significant bits of a
float32. Each low resolution coordinate is encoded in either 1 or 2 bytes. Each
high resolution coordinate is encoded in either 1, 2 or 4 bytes.

action-info.{lo,hi}res.ivg.disassembly are disassemblies of those IconVG files.

action-info.{lo,hi}res.png are renderings of those IconVG files.



arcs.ivg is inspired by the two examples at
https://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands

arcs.ivg.disassembly is a disassembly of that IconVG file.

arcs.png is a rendering of that IconVG file.



blank.ivg is a blank, square graphic.

blank.ivg.disassembly is a disassembly of that IconVG file.

blank.png is a rendering of that IconVG file.



cowbell.svg is an original artwork by nigeltao@golang.org.

cowbell.ivg is an IconVG version of that SVG file.

cowbell.ivg.disassembly is a disassembly of that IconVG file.

cowbell.png is a rendering of that IconVG file.



elliptical.ivg was created manually.

elliptical.ivg.disassembly is a disassembly of that IconVG file.

elliptical.png is a rendering of that IconVG file.



favicon.svg is based on doc/gopher/favicon.svg from the Go 1.7 release, after
using Inkscape to convert strokes and circles to paths, and saving it as an
"Optimized SVG".

favicon.ivg is an IconVG version of that SVG file.

favicon.ivg.disassembly is a disassembly of that IconVG file.

favicon.png and favicon.pink.png are renderings of that IconVG file.



gradient.ivg was created manually.

gradient.ivg.disassembly is a disassembly of that IconVG file.

gradient.png is a rendering of that IconVG file.



lod-polygon.ivg was created manually.

lod-polygon.ivg.disassembly is a disassembly of that IconVG file.

lod-polygon.png and lod-polygon.64.png are renderings of that IconVG file.



video-005.jpeg comes from an old version of the Go repository. See
https://codereview.appspot.com/5758047/

video-005.primitive.svg was based on running github.com/fogleman/primitive on a
256x192 scaled version of video-005.jpeg.

video-005.primitive.ivg is an IconVG version of that SVG file.

video-005.primitive.ivg.disassembly is a disassembly of that IconVG file.

video-005.primitive.png is a rendering of that IconVG file.
