shiny/iconvg: add disassembly testdata.

Change-Id: Ia001d185d383b8a63096b215e9981968dfc1cd76
Reviewed-on: https://go-review.googlesource.com/30733
Reviewed-by: David Crawshaw <crawshaw@golang.org>
diff --git a/shiny/iconvg/decode.go b/shiny/iconvg/decode.go
index f5af1ad..e245e63 100644
--- a/shiny/iconvg/decode.go
+++ b/shiny/iconvg/decode.go
@@ -103,7 +103,7 @@
 		return errInvalidMagicIdentifier
 	}
 	if p != nil {
-		p(src[:len(magic)], "Magic identifier\n")
+		p(src[:len(magic)], "IconVG Magic identifier\n")
 	}
 	src = src[len(magic):]
 
diff --git a/shiny/iconvg/decode_test.go b/shiny/iconvg/decode_test.go
index 1b5dfea..f8d34ba 100644
--- a/shiny/iconvg/decode_test.go
+++ b/shiny/iconvg/decode_test.go
@@ -21,7 +21,7 @@
 // disassemble returns a disassembly of an encoded IconVG graphic. Users of
 // this package aren't expected to want to do this, so it lives in a _test.go
 // file, but it can be useful for debugging.
-func disassemble(src []byte) (string, error) {
+func disassemble(src []byte) ([]byte, error) {
 	w := new(bytes.Buffer)
 	p := func(b []byte, format string, args ...interface{}) {
 		const hex = "0123456789abcdef"
@@ -38,9 +38,9 @@
 	}
 	m := Metadata{}
 	if err := decode(nil, p, &m, false, buffer(src), nil); err != nil {
-		return "", err
+		return nil, err
 	}
-	return w.String(), nil
+	return w.Bytes(), nil
 }
 
 var (
@@ -122,88 +122,37 @@
 	}
 }
 
-func TestDisassembleActionInfo(t *testing.T) {
-	ivgData, err := ioutil.ReadFile(filepath.FromSlash("testdata/action-info.ivg"))
-	if err != nil {
-		t.Fatal(err)
-	}
-	got, err := disassemble(ivgData)
-	if err != nil {
-		t.Fatal(err)
-	}
+var testdataTestCases = []string{
+	"testdata/action-info",
+	"testdata/video-005.primitive",
+}
 
-	want := strings.Join([]string{
-		"89 49 56 47   Magic identifier",
-		"02            Number of metadata chunks: 1",
-		"0a            Metadata chunk length: 5",
-		"00            Metadata Identifier: 0 (viewBox)",
-		"50                -24",
-		"50                -24",
-		"b0                +24",
-		"b0                +24",
-		"c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)",
-		"80                +0",
-		"58                -20",
-		"a0            C (absolute cubeTo), 1 reps",
-		"cf cc 30 c1       -11.049999",
-		"58                -20",
-		"58                -20",
-		"cf cc 30 c1       -11.049999",
-		"58                -20",
-		"80                +0",
-		"91            s (relative smooth cubeTo), 2 reps",
-		"37 33 0f 41       +8.950001",
-		"a8                +20",
-		"a8                +20",
-		"a8                +20",
-		"              s (relative smooth cubeTo), implicit",
-		"a8                +20",
-		"37 33 0f c1       -8.950001",
-		"a8                +20",
-		"58                -20",
-		"80            S (absolute smooth cubeTo), 1 reps",
-		"cf cc 30 41       +11.049999",
-		"58                -20",
-		"80                +0",
-		"58                -20",
-		"e3            z (closePath); m (relative moveTo)",
-		"84                +2",
-		"bc                +30",
-		"e7            h (relative horizontal lineTo)",
-		"78                -4",
-		"e8            V (absolute vertical lineTo)",
-		"7c                -2",
-		"e7            h (relative horizontal lineTo)",
-		"88                +4",
-		"e9            v (relative vertical lineTo)",
-		"98                +12",
-		"e3            z (closePath); m (relative moveTo)",
-		"80                +0",
-		"60                -16",
-		"e7            h (relative horizontal lineTo)",
-		"78                -4",
-		"e9            v (relative vertical lineTo)",
-		"78                -4",
-		"e7            h (relative horizontal lineTo)",
-		"88                +4",
-		"e9            v (relative vertical lineTo)",
-		"88                +4",
-		"e1            z (closePath); end path",
-	}, "\n") + "\n"
-
-	if got != want {
-		t.Errorf("got:\n%s\nwant:\n%s", got, want)
-		diffLines(t, got, want)
+func TestDisassembly(t *testing.T) {
+	for _, tc := range testdataTestCases {
+		ivgData, err := ioutil.ReadFile(filepath.FromSlash(tc) + ".ivg")
+		if err != nil {
+			t.Errorf("%s: ReadFile: %v", tc, err)
+			continue
+		}
+		got, err := disassemble(ivgData)
+		if err != nil {
+			t.Errorf("%s: disassemble: %v", tc, err)
+			continue
+		}
+		want, err := ioutil.ReadFile(filepath.FromSlash(tc) + ".ivg.disassembly")
+		if err != nil {
+			t.Errorf("%s: ReadFile: %v", tc, err)
+			continue
+		}
+		if !bytes.Equal(got, want) {
+			t.Errorf("got:\n%s\nwant:\n%s", got, want)
+			diffLines(t, string(got), string(want))
+		}
 	}
 }
 
 func TestRasterizer(t *testing.T) {
-	testCases := []string{
-		"testdata/action-info",
-		"testdata/video-005.primitive",
-	}
-
-	for _, tc := range testCases {
+	for _, tc := range testdataTestCases {
 		ivgData, err := ioutil.ReadFile(filepath.FromSlash(tc) + ".ivg")
 		if err != nil {
 			t.Errorf("%s: ReadFile: %v", tc, err)
diff --git a/shiny/iconvg/doc.go b/shiny/iconvg/doc.go
index f82e2a2..94316ee 100644
--- a/shiny/iconvg/doc.go
+++ b/shiny/iconvg/doc.go
@@ -488,35 +488,63 @@
 The annotated version is below. Note that the IconVG viewBox ranges from -24 to
 +24 while the SVG viewBox ranges from 0 to 48.
 
-	89 49 56 47
-	Magic string.
+	89 49 56 47   IconVG Magic identifier
+	02            Number of metadata chunks: 1
+	0a            Metadata chunk length: 5
+	00            Metadata Identifier: 0 (viewBox)
+	50                -24
+	50                -24
+	b0                +24
+	b0                +24
+	c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+	80                +0
+	58                -20
+	a0            C (absolute cubeTo), 1 reps
+	cf cc 30 c1       -11.049999
+	58                -20
+	58                -20
+	cf cc 30 c1       -11.049999
+	58                -20
+	80                +0
+	91            s (relative smooth cubeTo), 2 reps
+	37 33 0f 41       +8.950001
+	a8                +20
+	a8                +20
+	a8                +20
+	              s (relative smooth cubeTo), implicit
+	a8                +20
+	37 33 0f c1       -8.950001
+	a8                +20
+	58                -20
+	80            S (absolute smooth cubeTo), 1 reps
+	cf cc 30 41       +11.049999
+	58                -20
+	80                +0
+	58                -20
+	e3            z (closePath); m (relative moveTo)
+	84                +2
+	bc                +30
+	e7            h (relative horizontal lineTo)
+	78                -4
+	e8            V (absolute vertical lineTo)
+	7c                -2
+	e7            h (relative horizontal lineTo)
+	88                +4
+	e9            v (relative vertical lineTo)
+	98                +12
+	e3            z (closePath); m (relative moveTo)
+	80                +0
+	60                -16
+	e7            h (relative horizontal lineTo)
+	78                -4
+	e9            v (relative vertical lineTo)
+	78                -4
+	e7            h (relative horizontal lineTo)
+	88                +4
+	e9            v (relative vertical lineTo)
+	88                +4
+	e1            z (closePath); end path
 
-	02
-	One metadata chunk.
-
-	0a 00 50 50 b0 b0
-	Metadata chunk (5 extra bytes). MID 0 (ViewBox), (-24, -24) to (+24, +24).
-
-	c0 80 58
-	Start path (with CREG[CSEL-0], opaque black by default); M 0 -20.
-
-	a0 cf cc 30 c1 58 58 cf cc 30 c1 58 80
-	C -11.05 -20 -20 -11.05 -20 0.
-
-	91 37 33 0f 41 a8 a8 a8 a8 37 33 0f c1 a8 58
-	s 8.95 20 20 20, 20 -8.95 20 -20.
-
-	80 cf cc 30 41 58 80 58
-	S 11.05 -20 0 -20.
-
-	e3 84 bc e7 78 e8 7c e7 88 e9 98
-	z m 2 30 h -4 V -2 h 4 v 12.
-
-	e3 80 60 e7 78 e9 78 e7 88 e9 88
-	z m 0 -16 h -4 v -4 h 4 v 4.
-
-	e1
-	z; end path.
 */
 package iconvg
 
diff --git a/shiny/iconvg/encode_test.go b/shiny/iconvg/encode_test.go
index cb8ed3d..2c26f08 100644
--- a/shiny/iconvg/encode_test.go
+++ b/shiny/iconvg/encode_test.go
@@ -21,7 +21,7 @@
 		t.Fatalf("Bytes: %v", err)
 	}
 	want := []byte{
-		0x89, 0x49, 0x56, 0x47, // Magic identifier.
+		0x89, 0x49, 0x56, 0x47, // IconVG Magic identifier.
 		0x00, // Zero metadata chunks.
 	}
 	if !bytes.Equal(got, want) {
diff --git a/shiny/iconvg/testdata/README b/shiny/iconvg/testdata/README
index b290983..ec9e2e1 100644
--- a/shiny/iconvg/testdata/README
+++ b/shiny/iconvg/testdata/README
@@ -2,10 +2,13 @@
 action/svg/production/ic_info_48px.svg in the
 github.com/google/material-design-icons repository.
 
-action-info.ivg is an IconVG version of action-info.svg. See ../doc.go for an
-annotated breakdown.
+action-info.ivg is an IconVG version of action-info.svg.
 
-action-info.png is a rendering of action-info.ivg.
+action-info.ivg.disassembly is a disassembly of that IconVG file.
+
+action-info.png is a rendering of that IconVG file.
+
+
 
 video-005.jpeg comes from an old version of the Go repository. See
 https://codereview.appspot.com/5758047/
@@ -15,4 +18,6 @@
 
 video-005.primitive.ivg is an IconVG version of video-005.primitive.svg.
 
-video-005.primitive.png is a rendering of video-005.primitive.ivg.
+video-005.primitive.ivg.disassembly is a disassembly of that IconVG file.
+
+video-005.primitive.png is a rendering of that IconVG file.
diff --git a/shiny/iconvg/testdata/action-info.ivg.disassembly b/shiny/iconvg/testdata/action-info.ivg.disassembly
new file mode 100644
index 0000000..7bf6afb
--- /dev/null
+++ b/shiny/iconvg/testdata/action-info.ivg.disassembly
@@ -0,0 +1,56 @@
+89 49 56 47   IconVG Magic identifier
+02            Number of metadata chunks: 1
+0a            Metadata chunk length: 5
+00            Metadata Identifier: 0 (viewBox)
+50                -24
+50                -24
+b0                +24
+b0                +24
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+80                +0
+58                -20
+a0            C (absolute cubeTo), 1 reps
+cf cc 30 c1       -11.049999
+58                -20
+58                -20
+cf cc 30 c1       -11.049999
+58                -20
+80                +0
+91            s (relative smooth cubeTo), 2 reps
+37 33 0f 41       +8.950001
+a8                +20
+a8                +20
+a8                +20
+              s (relative smooth cubeTo), implicit
+a8                +20
+37 33 0f c1       -8.950001
+a8                +20
+58                -20
+80            S (absolute smooth cubeTo), 1 reps
+cf cc 30 41       +11.049999
+58                -20
+80                +0
+58                -20
+e3            z (closePath); m (relative moveTo)
+84                +2
+bc                +30
+e7            h (relative horizontal lineTo)
+78                -4
+e8            V (absolute vertical lineTo)
+7c                -2
+e7            h (relative horizontal lineTo)
+88                +4
+e9            v (relative vertical lineTo)
+98                +12
+e3            z (closePath); m (relative moveTo)
+80                +0
+60                -16
+e7            h (relative horizontal lineTo)
+78                -4
+e9            v (relative vertical lineTo)
+78                -4
+e7            h (relative horizontal lineTo)
+88                +4
+e9            v (relative vertical lineTo)
+88                +4
+e1            z (closePath); end path
diff --git a/shiny/iconvg/testdata/video-005.primitive.ivg.disassembly b/shiny/iconvg/testdata/video-005.primitive.ivg.disassembly
new file mode 100644
index 0000000..39c2521
--- /dev/null
+++ b/shiny/iconvg/testdata/video-005.primitive.ivg.disassembly
@@ -0,0 +1,380 @@
+89 49 56 47   IconVG Magic identifier
+02            Number of metadata chunks: 1
+0a            Metadata chunk length: 5
+00            Metadata Identifier: 0 (viewBox)
+40                -32
+50                -24
+c0                +32
+b0                +24
+90            Set CREG[CSEL-0] to a 3 byte (direct) color
+7c 7e 7c          RGBA 7c7e7cff
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+40                -32
+50                -24
+e6            H (absolute horizontal lineTo)
+c0                +32
+e8            V (absolute vertical lineTo)
+b0                +24
+e6            H (absolute horizontal lineTo)
+40                -32
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+0b 03 02 80       RGBA 0b030280
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+a1 88             +8.625
+e1 9b             +27.875
+01            L (absolute lineTo), 2 reps
+e1 a3             +35.875
+a1 96             +22.625
+              L (absolute lineTo), implicit
+e1 90             +16.875
+21 64             -27.875
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+74 7a 7c 80       RGBA 747a7c80
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+21 5c             -35.875
+e1 94             +20.875
+01            L (absolute lineTo), 2 reps
+21 83             +3.125
+61 65             -26.625
+              L (absolute lineTo), implicit
+21 64             -27.875
+21 66             -25.875
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+00 02 13 80       RGBA 00021380
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+61 78             -7.625
+21 80             +0.125
+01            L (absolute lineTo), 2 reps
+61 97             +23.375
+61 6d             -18.625
+              L (absolute lineTo), implicit
+a1 95             +21.625
+e1 83             +3.875
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+44 6c 80 80       RGBA 446c8080
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+a1 a1             +33.625
+a1 66             -25.375
+01            L (absolute lineTo), 2 reps
+e1 a3             +35.875
+21 82             +2.125
+              L (absolute lineTo), implicit
+21 89             +9.125
+21 64             -27.875
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+4a 5e 62 80       RGBA 4a5e6280
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+21 93             +19.125
+21 82             +2.125
+01            L (absolute lineTo), 2 reps
+21 89             +9.125
+e1 9b             +27.875
+              L (absolute lineTo), implicit
+e1 6e             -17.125
+21 82             +2.125
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+6a 40 1e 80       RGBA 6a401e80
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+21 5c             -35.875
+21 71             -14.875
+01            L (absolute lineTo), 2 reps
+e1 7e             -1.125
+e1 98             +24.875
+              L (absolute lineTo), implicit
+21 5c             -35.875
+a1 98             +24.625
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+00 00 00 80       RGBA 00000080
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+21 89             +9.125
+e1 6c             -19.125
+01            L (absolute lineTo), 2 reps
+e1 77             -8.125
+61 7b             -4.625
+              L (absolute lineTo), implicit
+a1 82             +2.625
+61 6b             -20.625
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+1c 08 0c 80       RGBA 1c080c80
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+a1 6c             -19.375
+e1 8b             +11.875
+01            L (absolute lineTo), 2 reps
+e1 7c             -3.125
+61 96             +22.375
+              L (absolute lineTo), implicit
+21 5f             -32.875
+61 91             +17.375
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+00 1e 40 80       RGBA 001e4080
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+a1 75             -10.375
+61 83             +3.375
+01            L (absolute lineTo), 2 reps
+61 6d             -18.625
+21 7b             -4.875
+              L (absolute lineTo), implicit
+a1 76             -9.375
+21 6e             -17.875
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+7e 63 4e 80       RGBA 7e634e80
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+e1 67             -24.125
+61 90             +16.375
+01            L (absolute lineTo), 2 reps
+21 74             -11.875
+61 82             +2.375
+              L (absolute lineTo), implicit
+21 5c             -35.875
+21 6f             -16.875
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+4f 6e 80 80       RGBA 4f6e8080
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+61 92             +18.375
+61 66             -25.625
+01            L (absolute lineTo), 2 reps
+e1 67             -24.125
+21 64             -27.875
+              L (absolute lineTo), implicit
+a1 60             -31.375
+21 77             -8.875
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+00 10 1c 80       RGBA 00101c80
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+21 81             +1.125
+61 7d             -2.625
+01            L (absolute lineTo), 2 reps
+21 9c             +28.125
+e1 66             -25.125
+              L (absolute lineTo), implicit
+61 8b             +11.375
+a1 88             +8.625
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+7e 5e 47 80       RGBA 7e5e4780
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+61 90             +16.375
+e1 87             +7.875
+01            L (absolute lineTo), 2 reps
+e1 99             +25.875
+a1 7f             -0.375
+              L (absolute lineTo), implicit
+a1 9e             +30.625
+21 87             +7.125
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+21 03 00 80       RGBA 21030080
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+e1 9e             +30.875
+e1 9b             +27.875
+01            L (absolute lineTo), 2 reps
+61 9b             +27.375
+e1 7c             -3.125
+              L (absolute lineTo), implicit
+e1 a3             +35.875
+61 80             +0.375
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+40 5f 77 80       RGBA 405f7780
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+61 7d             -2.625
+a1 89             +9.625
+01            L (absolute lineTo), 2 reps
+21 76             -9.875
+61 94             +20.375
+              L (absolute lineTo), implicit
+a1 76             -9.375
+21 6f             -16.875
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+00 00 00 80       RGBA 00000080
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+e1 7f             -0.125
+a1 71             -14.375
+01            L (absolute lineTo), 2 reps
+21 8b             +11.125
+21 79             -6.875
+              L (absolute lineTo), implicit
+e1 97             +23.875
+e1 75             -10.125
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+0c 07 0b 80       RGBA 0c070b80
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+61 92             +18.375
+21 9b             +27.125
+01            L (absolute lineTo), 2 reps
+61 88             +8.375
+61 81             +1.375
+              L (absolute lineTo), implicit
+e1 a3             +35.875
+21 98             +24.125
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+7b 55 38 80       RGBA 7b553880
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+61 92             +18.375
+21 91             +17.125
+01            L (absolute lineTo), 2 reps
+a1 98             +24.625
+61 8b             +11.375
+              L (absolute lineTo), implicit
+61 a1             +33.375
+21 8e             +14.125
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+70 1b 00 80       RGBA 701b0080
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+21 5c             -35.875
+a1 67             -24.375
+01            L (absolute lineTo), 2 reps
+61 67             -24.625
+21 64             -27.875
+              L (absolute lineTo), implicit
+a1 5e             -33.375
+a1 76             -9.375
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+80 72 5d 80       RGBA 80725d80
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+a1 84             +4.625
+61 73             -12.625
+01            L (absolute lineTo), 2 reps
+a1 7d             -2.375
+e1 7a             -5.125
+              L (absolute lineTo), implicit
+21 85             +5.125
+21 7b             -4.875
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+00 00 09 80       RGBA 00000980
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+a1 7d             -2.375
+21 73             -12.875
+01            L (absolute lineTo), 2 reps
+e1 7a             -5.125
+61 83             +3.375
+              L (absolute lineTo), implicit
+21 79             -6.875
+e1 74             -11.125
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+5e 6a 72 80       RGBA 5e6a7280
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+e1 a3             +35.875
+61 72             -13.625
+01            L (absolute lineTo), 2 reps
+61 9f             +31.375
+21 64             -27.875
+              L (absolute lineTo), implicit
+e1 94             +20.875
+61 7e             -1.625
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+29 00 00 80       RGBA 29000080
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+e1 75             -10.125
+e1 87             +7.875
+01            L (absolute lineTo), 2 reps
+e1 74             -11.125
+a1 8d             +13.625
+              L (absolute lineTo), implicit
+e1 6d             -18.125
+e1 83             +3.875
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+00 59 50 80       RGBA 00595080
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+21 7f             -0.875
+61 96             +22.375
+01            L (absolute lineTo), 2 reps
+e1 81             +1.875
+e1 9b             +27.875
+              L (absolute lineTo), implicit
+a1 90             +16.625
+21 94             +20.125
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+11 00 00 80       RGBA 11000080
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+e1 6e             -17.125
+e1 8d             +13.875
+01            L (absolute lineTo), 2 reps
+61 68             -23.625
+21 87             +7.125
+              L (absolute lineTo), implicit
+21 6d             -18.875
+61 92             +18.375
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+5f 65 65 80       RGBA 5f656580
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+61 85             +5.375
+a1 72             -13.375
+01            L (absolute lineTo), 2 reps
+e1 8d             +13.875
+21 64             -27.875
+              L (absolute lineTo), implicit
+a1 8c             +12.625
+e1 73             -12.125
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+80 6a 58 80       RGBA 806a5880
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+e1 94             +20.875
+e1 85             +5.875
+01            L (absolute lineTo), 2 reps
+21 8e             +14.125
+21 81             +1.125
+              L (absolute lineTo), implicit
+a1 8d             +13.625
+21 87             +7.125
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+80 70 1c 80       RGBA 80701c80
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+61 72             -13.625
+e1 9b             +27.875
+01            L (absolute lineTo), 2 reps
+21 83             +3.125
+21 95             +21.125
+              L (absolute lineTo), implicit
+e1 5c             -35.125
+e1 96             +22.875
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+53 58 56 80       RGBA 53585680
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+a1 7e             -1.375
+61 95             +21.375
+01            L (absolute lineTo), 2 reps
+21 92             +18.125
+a1 95             +21.625
+              L (absolute lineTo), implicit
+61 77             -8.625
+a1 7c             -3.375
+e1            z (closePath); end path
+98            Set CREG[CSEL-0] to a 4 byte color
+00 00 00 80       RGBA 00000080
+c0            Start path, filled with CREG[CSEL-0]; M (absolute moveTo)
+e1 a3             +35.875
+21 92             +18.125
+01            L (absolute lineTo), 2 reps
+a1 8a             +10.625
+61 96             +22.375
+              L (absolute lineTo), implicit
+61 97             +23.375
+e1 9b             +27.875
+e1            z (closePath); end path