# Feed this file to script/make-artificial.go

# This APNG image has its first fcTL chunk after the IDAT chunks, so that the
# IDAT data (the "default image") is not displayed. See
# https://wiki.mozilla.org/APNG_Specification

make png

magic

IHDR {
	raw {
		# Width, height.
		0x00 0x00 0x00 0x03
		0x00 0x00 0x00 0x02
		# Depth, color, compression, filter, interlace.
		0x08 0x02 0x00 0x00 0x00
	}
}

acTL {
	raw {
		# Frame count.
		0x00 0x00 0x00 0x02
		# Loop count.
		0x00 0x00 0x00 0x00
	}
}

IDAT {
	zlib {
		# 3x2 RGB pixels (with filter bytes), shades of red.
		0x00 0x20 0x00 0x00 0x50 0x00 0x00 0x80 0x00 0x00
		0x00 0x40 0x00 0x00 0xA0 0x00 0x00 0xFF 0x00 0x00
	}
}

fcTL {
	animSeqNum++
	raw {
		# Width, height, left, top.
		0x00 0x00 0x00 0x03
		0x00 0x00 0x00 0x02
		0x00 0x00 0x00 0x00
		0x00 0x00 0x00 0x00
		# Duration (1/1 second).
		0x00 0x01 0x00 0x01
		# Disposal, blend.
		0x00 0x00
	}
}

fdAT {
	animSeqNum++
	zlib {
		# 3x2 RGB pixels (with filter bytes), shades of cyan.
		0x00 0x00 0x20 0x20 0x00 0x50 0x50 0x00 0x80 0x80
		0x00 0x00 0x40 0x40 0x00 0xA0 0xA0 0x00 0xFF 0xFF
	}
}

fcTL {
	animSeqNum++
	raw {
		# Width, height, left, top.
		0x00 0x00 0x00 0x01
		0x00 0x00 0x00 0x02
		0x00 0x00 0x00 0x02
		0x00 0x00 0x00 0x00
		# Duration (1/1 second).
		0x00 0x01 0x00 0x01
		# Disposal, blend.
		0x00 0x00
	}
}

fdAT {
	animSeqNum++
	zlib {
		# 1x2 RGB pixels (with filter bytes), shades of gray.
		0x00 0x80 0x80 0x80
		0x00 0xFF 0xFF 0xFF
	}
}

IEND {
}
