diff --git a/LICENSE.txt b/LICENSE.txt index e176dc4..8250f25 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -24,6 +24,7 @@ Copyright (c) 2016 Edward Betts. All rights reserved. Copyright (c) 2016 Patrick Mazulo. All rights reserved. Copyright (c) 2017 Haochen Wu. All rights reserved. Copyright (c) 2017 Jon Lund Steffensen. All rights reserved. +Copyright (c) 2017 Henddher Pedroza. All rights reserved. MIT License: diff --git a/README.rst b/README.rst index dc4a52c..f41fb76 100644 --- a/README.rst +++ b/README.rst @@ -657,10 +657,24 @@ To run the tests: * cd into the tests directory, and then clone the package github.com/pmaupin/static_pdfs into a subdirectory (also named static_pdfs). -* Now the tests may be run from that directory using unittest, or +* Now the tests may be run from tests directory using unittest, or py.test, or nose. * travisci is used at github, and runs the tests with py.test +.. code-block:: bash + $ pip install pytest + $ pip install reportlab + $ pwd + <...>/pdfrw/tests + $ git clone https://github.com/pmaupin/static_pdfs + $ ln -s ../pdfrw + $ pytest + +To run a single test-case: + +.. code-block:: bash + $ pytest test_roundtrip.py -k "test_compress_9f98322c243fe67726d56ccfa8e0885b.pdf" + Other libraries ===================== diff --git a/pdfrw/objects/pdfdict.py b/pdfrw/objects/pdfdict.py index 0fdf75b..888fc83 100644 --- a/pdfrw/objects/pdfdict.py +++ b/pdfrw/objects/pdfdict.py @@ -144,7 +144,7 @@ def get(self, key, dictget=dict.get, isinstance=isinstance, if value is not None: dict.__setitem__(self, key, value) else: - del self[name] + del self[key] return value def __getitem__(self, key): diff --git a/pdfrw/uncompress.py b/pdfrw/uncompress.py index 39e8308..1921817 100644 --- a/pdfrw/uncompress.py +++ b/pdfrw/uncompress.py @@ -15,7 +15,7 @@ from .objects import PdfDict, PdfName, PdfArray from .errors import log from .py23_diffs import zlib, xrange, from_array, convert_load, convert_store - +import math def streamobjects(mylist, isinstance=isinstance, PdfDict=PdfDict): for obj in mylist: @@ -81,6 +81,98 @@ def uncompress(mylist, leave_raw=False, warnings=set(), ok = False return ok +def flate_png_impl(data, predictor=1, columns=1, colors=1, bpc=8): + + # http://www.libpng.org/pub/png/spec/1.2/PNG-Filters.html + # https://www.w3.org/TR/2003/REC-PNG-20031110/#9Filters + # Reconstruction functions + # x: the byte being filtered; + # a: the byte corresponding to x in the pixel immediately before the pixel containing x (or the byte immediately before x, when the bit depth is less than 8); + # b: the byte corresponding to x in the previous scanline; + # c: the byte corresponding to b in the pixel immediately before the pixel containing b (or the byte immediately before b, when the bit depth is less than 8). + + def subfilter(data, prior_row_data, start, length, pixel_size): + # filter type 1: Sub + # Recon(x) = Filt(x) + Recon(a) + for i in xrange(pixel_size, length): + left = data[start + i - pixel_size] + data[start + i] = (data[start + i] + left) % 256 + + def upfilter(data, prior_row_data, start, length, pixel_size): + # filter type 2: Up + # Recon(x) = Filt(x) + Recon(b) + for i in xrange(length): + up = prior_row_data[i] + data[start + i] = (data[start + i] + up) % 256 + + def avgfilter(data, prior_row_data, start, length, pixel_size): + # filter type 3: Avg + # Recon(x) = Filt(x) + floor((Recon(a) + Recon(b)) / 2) + for i in xrange(length): + left = data[start + i - pixel_size] if i >= pixel_size else 0 + up = prior_row_data[i] + floor = math.floor((left + up) / 2) + data[start + i] = (data[start + i] + int(floor)) % 256 + + def paethfilter(data, prior_row_data, start, length, pixel_size): + # filter type 4: Paeth + # Recon(x) = Filt(x) + PaethPredictor(Recon(a), Recon(b), Recon(c)) + def paeth_predictor(a, b, c): + p = a + b - c + pa = abs(p - a) + pb = abs(p - b) + pc = abs(p - c) + if pa <= pb and pa <= pc: + return a + elif pb <= pc: + return b + else: + return c + for i in xrange(length): + left = data[start + i - pixel_size] if i >= pixel_size else 0 + up = prior_row_data[i] + up_left = prior_row_data[i - pixel_size] if i >= pixel_size else 0 + data[start + i] = (data[start + i] + paeth_predictor(left, up, up_left)) % 256 + + columnbytes = ((columns * colors * bpc) + 7) // 8 + pixel_size = (colors * bpc + 7) // 8 + data = array.array('B', data) + rowlen = columnbytes + 1 + if predictor == 15: + padding = (rowlen - len(data)) % rowlen + data.extend([0] * padding) + assert len(data) % rowlen == 0 + + rows = xrange(0, len(data), rowlen) + prior_row_data = [ 0 for i in xrange(columnbytes) ] + for row_index in rows: + + filter_type = data[row_index] + + if filter_type == 0: # None filter + pass + + elif filter_type == 1: # Sub filter + subfilter(data, prior_row_data, row_index + 1, columnbytes, pixel_size) + + elif filter_type == 2: # Up filter + upfilter(data, prior_row_data, row_index + 1, columnbytes, pixel_size) + + elif filter_type == 3: # Average filter + avgfilter(data, prior_row_data, row_index + 1, columnbytes, pixel_size) + + elif filter_type == 4: # Paeth filter + paethfilter(data, prior_row_data, row_index + 1, columnbytes, pixel_size) + + else: + return None, 'Unsupported PNG filter %d' % filter_type + + prior_row_data = data[row_index + 1 : row_index + 1 + columnbytes] # without filter_type + + for row_index in reversed(rows): + data.pop(row_index) + + return data, None def flate_png(data, predictor=1, columns=1, colors=1, bpc=8): ''' PNG prediction is used to make certain kinds of data @@ -95,23 +187,8 @@ def flate_png(data, predictor=1, columns=1, colors=1, bpc=8): this technique for Xref stream objects, which are quite regular. ''' - columnbytes = ((columns * colors * bpc) + 7) // 8 - data = array.array('B', data) - rowlen = columnbytes + 1 - if predictor == 15: - padding = (rowlen - len(data)) % rowlen - data.extend([0] * padding) - assert len(data) % rowlen == 0 - rows = xrange(0, len(data), rowlen) - for row_index in rows: - offset = data[row_index] - if offset >= 2: - if offset > 2: - return None, 'Unsupported PNG filter %d' % offset - offset = rowlen if row_index else 0 - if offset: - for index in xrange(row_index + 1, row_index + rowlen): - data[index] = (data[index] + data[index - offset]) % 256 - for row_index in reversed(rows): - data.pop(row_index) - return from_array(data), None + d, e = flate_png_impl(data, predictor, columns, colors, bpc) + if d is not None: + d = from_array(d) + return d, e + diff --git a/tests/Render Bitmap.ipynb b/tests/Render Bitmap.ipynb new file mode 100644 index 0000000..7bfdc6f --- /dev/null +++ b/tests/Render Bitmap.ipynb @@ -0,0 +1,545 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Jupyter IPython notebook Capable of Rendering Buffers (rasters) Used/Produced by `test_flate_png.py` tests\n", + "\n", + "(requires matplotlib)\n", + "\n", + "After running any of these tests (`pytest -k test_flate_png_alt_file`), two files are produced: `./result.pickle` and `./expected.pickle`.\n", + "\n", + "These files contain buffers that can be rendered. Both rendered buffers must be identical\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Boiler plate" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as pyplot\n", + "import array\n", + "import ast\n", + "\n", + "def pixel(bytes, color_type):\n", + " if color_type == 0:\n", + " assert len(bytes) == 1, \"expected 1 but got %d\" % len(bytes)\n", + " #print bytes\n", + " bytes = [bytes[0]/255.0, bytes[0]/255.0, bytes[0]/255.0]\n", + " \n", + " elif color_type == 2:\n", + " assert len(bytes) == 3, \"expected 3 but got %d\" % len(bytes)\n", + " #print bytes\n", + " bytes = [bytes[0]/255.0, bytes[1]/255.0, bytes[2]/255.0]\n", + " \n", + " elif color_type == 'rgb':\n", + " assert len(bytes) == 3, \"expected 3 but got %d\" % len(bytes)\n", + " bytes = [(int)(bytes[0] * 255) % 256, (int)(bytes[1] * 255.0) % 256, (int)(bytes[2] * 255.0) % 256]\n", + " \n", + " else:\n", + " raise ValueError(\"Unsupported color_type %d\" % color_type)\n", + " return bytes" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def rasterizer(data, rowbytes, bytes_per_pixel, color_type, filter_included=False):\n", + " raster = []\n", + " \n", + " first_pixel = 0\n", + " if filter_included:\n", + " rowbytes += 1\n", + " first_pixel = 1\n", + " \n", + " for r in xrange(0, len(data), rowbytes):\n", + " row = data[r : r + rowbytes]\n", + " #print \"row\", row, len(row)\n", + " raster_row = []\n", + "\n", + " for c in xrange(first_pixel, rowbytes, bytes_per_pixel):\n", + " #print c, bytes_per_pixel, row[c : c + bytes_per_pixel]\n", + " p = pixel(row[c : c + bytes_per_pixel], color_type)\n", + " #print p\n", + " raster_row.append(p)\n", + "\n", + " raster.append(raster_row)\n", + " return raster" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def load_png_log(png_log):\n", + " '''\n", + " Lifted from test_flate_png.py :: util_test_flate_png_alt_from_png_log_file\n", + " \n", + " Reads xxxxx.png.log and produces a raster of both expected and data\n", + " '''\n", + " with open(png_log) as f:\n", + " \n", + " data = array.array('B')\n", + " expected = array.array('B')\n", + " width = 0 \n", + " bit_depth = 0 \n", + " channels = 0 \n", + " color_type = 0 \n", + " pixel_depth = 0 \n", + " rowbytes = 0 \n", + " filter = 0 \n", + " nrows = 0 \n", + "\n", + " for l in f.readlines():\n", + "\n", + " if l.startswith(\"PASS:\"):\n", + " break\n", + "\n", + " l = l.split(' = ')\n", + " var = l[0]\n", + " val = l[1]\n", + "\n", + " if var == 'width':\n", + " width = int(val)\n", + "\n", + " elif var == 'bit_depth':\n", + " bit_depth = int(val)\n", + "\n", + " elif var == 'channels':\n", + " channels = int(val)\n", + "\n", + " elif var == 'color_type':\n", + " color_type = int(val)\n", + "\n", + " elif var == 'pixel_depth':\n", + " pixel_depth = int(val)\n", + "\n", + " elif var == 'rowbytes':\n", + " rowbytes = int(val)\n", + "\n", + " elif var == 'filter':\n", + " filter = int(val)\n", + "\n", + " elif var == 'data':\n", + " d = ast.literal_eval(val)\n", + " data.append(filter)\n", + " data.extend(d)\n", + "\n", + " elif var == 'expected':\n", + " e = ast.literal_eval(val)\n", + " expected.extend(e)\n", + " nrows += 1\n", + "\n", + " print(\"width: %d\" % width)\n", + " print(\"bit_depth: %d\" % bit_depth)\n", + " print(\"channels: %d\" % channels)\n", + " print(\"color_type: %d\" % color_type)\n", + " print(\"pixel_depth: %d\" % pixel_depth)\n", + " print(\"rowbytes: %d\" % rowbytes)\n", + " print(\"filter: %d\" % filter)\n", + " print(\"expected: %d\" % len(expected))\n", + " print(\"data: %d\" % len(data))\n", + " print(\"nrows: %d\" % nrows)\n", + "\n", + " assert color_type in [\n", + " 0, # Grayscale (Y)\n", + " 2, # Truecolor (RGB)\n", + " # 3 Indexed is not supported (Palette)\n", + " 4, # Grayscale with alpha (YA)\n", + " 6, # Truecolor with alpha (RGBA)\n", + " ]\n", + " assert filter in [0, 1, 2, 3, 4]\n", + " assert channels * bit_depth == pixel_depth\n", + " assert (pixel_depth // 8) * width == rowbytes\n", + " bytes_per_pixel = pixel_depth // 8\n", + " assert 0 == pixel_depth % 8 # can't support pixels with bit_depth < 8\n", + " assert 8 == bit_depth # ideally, we should test bit_depth 16 also\n", + " assert nrows * (1 + width * bytes_per_pixel) == len(data) # 1 filter byte preceeding each row\n", + " assert nrows * width * bytes_per_pixel == len(expected)\n", + "\n", + " ### Rasterize each buffer\n", + " raster = rasterizer(expected, rowbytes, bytes_per_pixel, color_type)\n", + " raster2 = rasterizer(data, rowbytes, bytes_per_pixel, color_type, filter_included=True)\n", + " \n", + " return (raster, raster2), (data, expected), (width, bit_depth, channels, color_type, pixel_depth, rowbytes, filter)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualizations of pre-canned xxx.png.log files" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "width: 32\n", + "bit_depth: 8\n", + "channels: 3\n", + "color_type: 2\n", + "pixel_depth: 24\n", + "rowbytes: 96\n", + "filter: 1\n", + "expected: 3072\n", + "data: 3104\n", + "nrows: 32\n" + ] + }, + { + "data": { + "image/png": "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\nQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "(raster, raster2), (data, expected), (width, bit_depth, channels, color_type, pixel_depth, rowbytes, filter) \\\n", + " = load_png_log('./basn2c08.png.log')\n", + " \n", + "pyplot.imshow(raster)\n", + "pyplot.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "width: 32\n", + "bit_depth: 8\n", + "channels: 1\n", + "color_type: 0\n", + "pixel_depth: 8\n", + "rowbytes: 32\n", + "filter: 1\n", + "expected: 1024\n", + "data: 1056\n", + "nrows: 32\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "(raster, raster2), (data, expected), (width, bit_depth, channels, color_type, pixel_depth, rowbytes, filter) \\\n", + " = load_png_log('./basn0g08.png.log')\n", + "\n", + "pyplot.imshow(raster)\n", + "pyplot.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "width: 32\n", + "bit_depth: 8\n", + "channels: 3\n", + "color_type: 2\n", + "pixel_depth: 24\n", + "rowbytes: 96\n", + "filter: 1\n", + "expected: 3072\n", + "data: 3104\n", + "nrows: 32\n" + ] + }, + { + "data": { + "image/png": "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\nYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "(raster, raster2), (data, expected), (width, bit_depth, channels, color_type, pixel_depth, rowbytes, filter) \\\n", + " = load_png_log('./f01n2c08.png.log')\n", + "\n", + "pyplot.imshow(raster)\n", + "pyplot.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "width: 32\n", + "bit_depth: 8\n", + "channels: 3\n", + "color_type: 2\n", + "pixel_depth: 24\n", + "rowbytes: 96\n", + "filter: 2\n", + "expected: 3072\n", + "data: 3104\n", + "nrows: 32\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "(raster, raster2), (data, expected), (width, bit_depth, channels, color_type, pixel_depth, rowbytes, filter) \\\n", + " = load_png_log('./f02n2c08.png.log')\n", + "\n", + "pyplot.imshow(raster)\n", + "pyplot.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "width: 32\n", + "bit_depth: 8\n", + "channels: 3\n", + "color_type: 2\n", + "pixel_depth: 24\n", + "rowbytes: 96\n", + "filter: 3\n", + "expected: 3072\n", + "data: 3104\n", + "nrows: 32\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "(raster, raster2), (data, expected), (width, bit_depth, channels, color_type, pixel_depth, rowbytes, filter) \\\n", + " = load_png_log('./f03n2c08.png.log')\n", + "\n", + "pyplot.imshow(raster)\n", + "pyplot.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "width: 32\n", + "bit_depth: 8\n", + "channels: 3\n", + "color_type: 2\n", + "pixel_depth: 24\n", + "rowbytes: 96\n", + "filter: 4\n", + "expected: 3072\n", + "data: 3104\n", + "nrows: 32\n" + ] + }, + { + "data": { + "image/png": "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\n8osU6v8B4uPbVzqaMNQAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "(raster, raster2), (data, expected), (width, bit_depth, channels, color_type, pixel_depth, rowbytes, filter) \\\n", + " = load_png_log('./f04n2c08.png.log')\n", + "\n", + "pyplot.imshow(raster)\n", + "pyplot.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Utility code to visually compare the `result` produced by test-case and its `expected` output" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "32\n", + "32\n", + "32\n", + "32\n" + ] + }, + { + "data": { + "image/png": "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\n8osU6v8B4uPbVzqaMNQAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3072\n", + "32\n", + "32\n" + ] + }, + { + "data": { + "image/png": "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\n8osU6v8B4uPbVzqaMNQAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#\n", + "# After running any of these tests (pytest -k test_flate_png_alt_file),\n", + "# two files are produced: tests/result.pickle and tests/expected.pickle.\n", + "# These files contain buffers that can be rendered\n", + "# Both rendered buffers must be identical\n", + "\n", + "import pickle\n", + "with open('./result.pickle', 'rb') as f:\n", + " result = pickle.load(f)\n", + "\n", + "print len(raster)\n", + "print len(raster[0])\n", + " \n", + "res = rasterizer(result, 96, 3, 2)\n", + " \n", + "print len(res)\n", + "print len(res[0])\n", + "\n", + "pyplot.imshow(res)\n", + "pyplot.show()\n", + "\n", + "with open('./expected.pickle', 'rb') as f:\n", + " expected = pickle.load(f)\n", + "\n", + "print len(expected)\n", + " \n", + "res = rasterizer(expected, 96, 3, 2)\n", + " \n", + "print len(res)\n", + "print len(res[0])\n", + "\n", + "pyplot.imshow(res)\n", + "pyplot.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/tests/basn0g08.png.log b/tests/basn0g08.png.log new file mode 100644 index 0000000..c618afd --- /dev/null +++ b/tests/basn0g08.png.log @@ -0,0 +1,289 @@ +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 1 +data = [ 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 1 +data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 1 +data = [ 0xe0,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 1 +data = [ 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf3,0xf2,0xf1,0xf0,0xef,0xee,0xed,0xec,0xeb,0xea,0xe9,0xe8,0xe7,0xe6,0xe5,0xe4,0xe3,0xe2,0xe1,0xe0,0xdf, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0xde,0xdd,0xdc,0xdb,0xda,0xd9,0xd8,0xd7,0xd6,0xd5,0xd4,0xd3,0xd2,0xd1,0xd0,0xcf,0xce,0xcd,0xcc,0xcb,0xca,0xc9,0xc8,0xc7,0xc6,0xc5,0xc4,0xc3,0xc2,0xc1,0xc0,0xbf, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0xbe,0xbd,0xbc,0xbb,0xba,0xb9,0xb8,0xb7,0xb6,0xb5,0xb4,0xb3,0xb2,0xb1,0xb0,0xaf,0xae,0xad,0xac,0xab,0xaa,0xa9,0xa8,0xa7,0xa6,0xa5,0xa4,0xa3,0xa2,0xa1,0xa0,0x9f, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x9e,0x9d,0x9c,0x9b,0x9a,0x99,0x98,0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x90,0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x89,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80,0x7f, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x66,0x65,0x64,0x63,0x62,0x61,0x60,0x5f, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x5e,0x5d,0x5c,0x5b,0x5a,0x59,0x58,0x57,0x56,0x55,0x54,0x53,0x52,0x51,0x50,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,0x3f, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 1 +data = [ 0x1e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01, ] +expected = [ 0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x01, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 1 +data = [ 0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,0xa0,0xa1, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] +expected = [ 0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 1 +data = [ 0xe2,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xff,0xff, ] +expected = [ 0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,0xfe,0xfd, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 1 +data = [ 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf3,0xf2,0xf1,0xf0,0xef,0xee,0xed,0xec,0xeb,0xea,0xe9,0xe8,0xe7,0xe6,0xe5,0xe4,0xe3,0xe2,0xe1,0xe0,0xdf,0xde,0xdd, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0xdc,0xdb,0xda,0xd9,0xd8,0xd7,0xd6,0xd5,0xd4,0xd3,0xd2,0xd1,0xd0,0xcf,0xce,0xcd,0xcc,0xcb,0xca,0xc9,0xc8,0xc7,0xc6,0xc5,0xc4,0xc3,0xc2,0xc1,0xc0,0xbf,0xbe,0xbd, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0xbc,0xbb,0xba,0xb9,0xb8,0xb7,0xb6,0xb5,0xb4,0xb3,0xb2,0xb1,0xb0,0xaf,0xae,0xad,0xac,0xab,0xaa,0xa9,0xa8,0xa7,0xa6,0xa5,0xa4,0xa3,0xa2,0xa1,0xa0,0x9f,0x9e,0x9d, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x9c,0x9b,0x9a,0x99,0x98,0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x90,0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x89,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80,0x7f,0x7e,0x7d, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x66,0x65,0x64,0x63,0x62,0x61,0x60,0x5f,0x5e,0x5d, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x5c,0x5b,0x5a,0x59,0x58,0x57,0x56,0x55,0x54,0x53,0x52,0x51,0x50,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 4 +data = [ 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d, ] +width = 32 +bit_depth = 8 +channels = 1 +color_type = 0 +pixel_depth = 8 +rowbytes = 32 +filter = 1 +data = [ 0x1c,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01, ] +expected = [ 0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x01,0x02,0x03, ] +PASS: pngimage --exhaustive --list-combos ./contrib/pngsuite/basn0g08.png diff --git a/tests/basn2c08.png.log b/tests/basn2c08.png.log new file mode 100644 index 0000000..7f4d8bc --- /dev/null +++ b/tests/basn2c08.png.log @@ -0,0 +1,289 @@ +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff, ] +expected = [ 0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfd,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xfa,0xff,0xff,0xf9,0xff,0xff,0xf8,0xff,0xff,0xf7,0xff,0xff,0xf6,0xff,0xff,0xf5,0xff,0xff,0xf4,0xff,0xff,0xf3,0xff,0xff,0xf2,0xff,0xff,0xf1,0xff,0xff,0xf0,0xff,0xff,0xef,0xff,0xff,0xee,0xff,0xff,0xed,0xff,0xff,0xec,0xff,0xff,0xeb,0xff,0xff,0xea,0xff,0xff,0xe9,0xff,0xff,0xe8,0xff,0xff,0xe7,0xff,0xff,0xe6,0xff,0xff,0xe5,0xff,0xff,0xe4,0xff,0xff,0xe3,0xff,0xff,0xe2,0xff,0xff,0xe1,0xff,0xff,0xe0, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff, ] +expected = [ 0xff,0xff,0xdf,0xff,0xff,0xde,0xff,0xff,0xdd,0xff,0xff,0xdc,0xff,0xff,0xdb,0xff,0xff,0xda,0xff,0xff,0xd9,0xff,0xff,0xd8,0xff,0xff,0xd7,0xff,0xff,0xd6,0xff,0xff,0xd5,0xff,0xff,0xd4,0xff,0xff,0xd3,0xff,0xff,0xd2,0xff,0xff,0xd1,0xff,0xff,0xd0,0xff,0xff,0xcf,0xff,0xff,0xce,0xff,0xff,0xcd,0xff,0xff,0xcc,0xff,0xff,0xcb,0xff,0xff,0xca,0xff,0xff,0xc9,0xff,0xff,0xc8,0xff,0xff,0xc7,0xff,0xff,0xc6,0xff,0xff,0xc5,0xff,0xff,0xc4,0xff,0xff,0xc3,0xff,0xff,0xc2,0xff,0xff,0xc1,0xff,0xff,0xc0, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff, ] +expected = [ 0xff,0xff,0xbf,0xff,0xff,0xbe,0xff,0xff,0xbd,0xff,0xff,0xbc,0xff,0xff,0xbb,0xff,0xff,0xba,0xff,0xff,0xb9,0xff,0xff,0xb8,0xff,0xff,0xb7,0xff,0xff,0xb6,0xff,0xff,0xb5,0xff,0xff,0xb4,0xff,0xff,0xb3,0xff,0xff,0xb2,0xff,0xff,0xb1,0xff,0xff,0xb0,0xff,0xff,0xaf,0xff,0xff,0xae,0xff,0xff,0xad,0xff,0xff,0xac,0xff,0xff,0xab,0xff,0xff,0xaa,0xff,0xff,0xa9,0xff,0xff,0xa8,0xff,0xff,0xa7,0xff,0xff,0xa6,0xff,0xff,0xa5,0xff,0xff,0xa4,0xff,0xff,0xa3,0xff,0xff,0xa2,0xff,0xff,0xa1,0xff,0xff,0xa0, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff, ] +expected = [ 0xff,0xff,0x9f,0xff,0xff,0x9e,0xff,0xff,0x9d,0xff,0xff,0x9c,0xff,0xff,0x9b,0xff,0xff,0x9a,0xff,0xff,0x99,0xff,0xff,0x98,0xff,0xff,0x97,0xff,0xff,0x96,0xff,0xff,0x95,0xff,0xff,0x94,0xff,0xff,0x93,0xff,0xff,0x92,0xff,0xff,0x91,0xff,0xff,0x90,0xff,0xff,0x8f,0xff,0xff,0x8e,0xff,0xff,0x8d,0xff,0xff,0x8c,0xff,0xff,0x8b,0xff,0xff,0x8a,0xff,0xff,0x89,0xff,0xff,0x88,0xff,0xff,0x87,0xff,0xff,0x86,0xff,0xff,0x85,0xff,0xff,0x84,0xff,0xff,0x83,0xff,0xff,0x82,0xff,0xff,0x81,0xff,0xff,0x80, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff, ] +expected = [ 0xff,0xff,0x7f,0xff,0xff,0x7e,0xff,0xff,0x7d,0xff,0xff,0x7c,0xff,0xff,0x7b,0xff,0xff,0x7a,0xff,0xff,0x79,0xff,0xff,0x78,0xff,0xff,0x77,0xff,0xff,0x76,0xff,0xff,0x75,0xff,0xff,0x74,0xff,0xff,0x73,0xff,0xff,0x72,0xff,0xff,0x71,0xff,0xff,0x70,0xff,0xff,0x6f,0xff,0xff,0x6e,0xff,0xff,0x6d,0xff,0xff,0x6c,0xff,0xff,0x6b,0xff,0xff,0x6a,0xff,0xff,0x69,0xff,0xff,0x68,0xff,0xff,0x67,0xff,0xff,0x66,0xff,0xff,0x65,0xff,0xff,0x64,0xff,0xff,0x63,0xff,0xff,0x62,0xff,0xff,0x61,0xff,0xff,0x60, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff, ] +expected = [ 0xff,0xff,0x5f,0xff,0xff,0x5e,0xff,0xff,0x5d,0xff,0xff,0x5c,0xff,0xff,0x5b,0xff,0xff,0x5a,0xff,0xff,0x59,0xff,0xff,0x58,0xff,0xff,0x57,0xff,0xff,0x56,0xff,0xff,0x55,0xff,0xff,0x54,0xff,0xff,0x53,0xff,0xff,0x52,0xff,0xff,0x51,0xff,0xff,0x50,0xff,0xff,0x4f,0xff,0xff,0x4e,0xff,0xff,0x4d,0xff,0xff,0x4c,0xff,0xff,0x4b,0xff,0xff,0x4a,0xff,0xff,0x49,0xff,0xff,0x48,0xff,0xff,0x47,0xff,0xff,0x46,0xff,0xff,0x45,0xff,0xff,0x44,0xff,0xff,0x43,0xff,0xff,0x42,0xff,0xff,0x41,0xff,0xff,0x40, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff, ] +expected = [ 0xff,0xff,0x3f,0xff,0xff,0x3e,0xff,0xff,0x3d,0xff,0xff,0x3c,0xff,0xff,0x3b,0xff,0xff,0x3a,0xff,0xff,0x39,0xff,0xff,0x38,0xff,0xff,0x37,0xff,0xff,0x36,0xff,0xff,0x35,0xff,0xff,0x34,0xff,0xff,0x33,0xff,0xff,0x32,0xff,0xff,0x31,0xff,0xff,0x30,0xff,0xff,0x2f,0xff,0xff,0x2e,0xff,0xff,0x2d,0xff,0xff,0x2c,0xff,0xff,0x2b,0xff,0xff,0x2a,0xff,0xff,0x29,0xff,0xff,0x28,0xff,0xff,0x27,0xff,0xff,0x26,0xff,0xff,0x25,0xff,0xff,0x24,0xff,0xff,0x23,0xff,0xff,0x22,0xff,0xff,0x21,0xff,0xff,0x20, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff, ] +expected = [ 0xff,0xff,0x1f,0xff,0xff,0x1e,0xff,0xff,0x1d,0xff,0xff,0x1c,0xff,0xff,0x1b,0xff,0xff,0x1a,0xff,0xff,0x19,0xff,0xff,0x18,0xff,0xff,0x17,0xff,0xff,0x16,0xff,0xff,0x15,0xff,0xff,0x14,0xff,0xff,0x13,0xff,0xff,0x12,0xff,0xff,0x11,0xff,0xff,0x10,0xff,0xff,0x0f,0xff,0xff,0x0e,0xff,0xff,0x0d,0xff,0xff,0x0c,0xff,0xff,0x0b,0xff,0xff,0x0a,0xff,0xff,0x09,0xff,0xff,0x08,0xff,0xff,0x07,0xff,0xff,0x06,0xff,0xff,0x05,0xff,0xff,0x04,0xff,0xff,0x03,0xff,0xff,0x02,0xff,0xff,0x01,0xff,0xff,0x00, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0xff,0xff,0xff,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00, ] +expected = [ 0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfd,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xfa,0xff,0xff,0xf9,0xff,0xff,0xf8,0xff,0xff,0xf7,0xff,0xff,0xf6,0xff,0xff,0xf5,0xff,0xff,0xf4,0xff,0xff,0xf3,0xff,0xff,0xf2,0xff,0xff,0xf1,0xff,0xff,0xf0,0xff,0xff,0xef,0xff,0xff,0xee,0xff,0xff,0xed,0xff,0xff,0xec,0xff,0xff,0xeb,0xff,0xff,0xea,0xff,0xff,0xe9,0xff,0xff,0xe8,0xff,0xff,0xe7,0xff,0xff,0xe6,0xff,0xff,0xe5,0xff,0xff,0xe4,0xff,0xff,0xe3,0xff,0xff,0xe2,0xff,0xff,0xe1,0xff,0xff,0xe0,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00, ] +expected = [ 0xff,0xdf,0xff,0xff,0xde,0xff,0xff,0xdd,0xff,0xff,0xdc,0xff,0xff,0xdb,0xff,0xff,0xda,0xff,0xff,0xd9,0xff,0xff,0xd8,0xff,0xff,0xd7,0xff,0xff,0xd6,0xff,0xff,0xd5,0xff,0xff,0xd4,0xff,0xff,0xd3,0xff,0xff,0xd2,0xff,0xff,0xd1,0xff,0xff,0xd0,0xff,0xff,0xcf,0xff,0xff,0xce,0xff,0xff,0xcd,0xff,0xff,0xcc,0xff,0xff,0xcb,0xff,0xff,0xca,0xff,0xff,0xc9,0xff,0xff,0xc8,0xff,0xff,0xc7,0xff,0xff,0xc6,0xff,0xff,0xc5,0xff,0xff,0xc4,0xff,0xff,0xc3,0xff,0xff,0xc2,0xff,0xff,0xc1,0xff,0xff,0xc0,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00, ] +expected = [ 0xff,0xbf,0xff,0xff,0xbe,0xff,0xff,0xbd,0xff,0xff,0xbc,0xff,0xff,0xbb,0xff,0xff,0xba,0xff,0xff,0xb9,0xff,0xff,0xb8,0xff,0xff,0xb7,0xff,0xff,0xb6,0xff,0xff,0xb5,0xff,0xff,0xb4,0xff,0xff,0xb3,0xff,0xff,0xb2,0xff,0xff,0xb1,0xff,0xff,0xb0,0xff,0xff,0xaf,0xff,0xff,0xae,0xff,0xff,0xad,0xff,0xff,0xac,0xff,0xff,0xab,0xff,0xff,0xaa,0xff,0xff,0xa9,0xff,0xff,0xa8,0xff,0xff,0xa7,0xff,0xff,0xa6,0xff,0xff,0xa5,0xff,0xff,0xa4,0xff,0xff,0xa3,0xff,0xff,0xa2,0xff,0xff,0xa1,0xff,0xff,0xa0,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00, ] +expected = [ 0xff,0x9f,0xff,0xff,0x9e,0xff,0xff,0x9d,0xff,0xff,0x9c,0xff,0xff,0x9b,0xff,0xff,0x9a,0xff,0xff,0x99,0xff,0xff,0x98,0xff,0xff,0x97,0xff,0xff,0x96,0xff,0xff,0x95,0xff,0xff,0x94,0xff,0xff,0x93,0xff,0xff,0x92,0xff,0xff,0x91,0xff,0xff,0x90,0xff,0xff,0x8f,0xff,0xff,0x8e,0xff,0xff,0x8d,0xff,0xff,0x8c,0xff,0xff,0x8b,0xff,0xff,0x8a,0xff,0xff,0x89,0xff,0xff,0x88,0xff,0xff,0x87,0xff,0xff,0x86,0xff,0xff,0x85,0xff,0xff,0x84,0xff,0xff,0x83,0xff,0xff,0x82,0xff,0xff,0x81,0xff,0xff,0x80,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00, ] +expected = [ 0xff,0x7f,0xff,0xff,0x7e,0xff,0xff,0x7d,0xff,0xff,0x7c,0xff,0xff,0x7b,0xff,0xff,0x7a,0xff,0xff,0x79,0xff,0xff,0x78,0xff,0xff,0x77,0xff,0xff,0x76,0xff,0xff,0x75,0xff,0xff,0x74,0xff,0xff,0x73,0xff,0xff,0x72,0xff,0xff,0x71,0xff,0xff,0x70,0xff,0xff,0x6f,0xff,0xff,0x6e,0xff,0xff,0x6d,0xff,0xff,0x6c,0xff,0xff,0x6b,0xff,0xff,0x6a,0xff,0xff,0x69,0xff,0xff,0x68,0xff,0xff,0x67,0xff,0xff,0x66,0xff,0xff,0x65,0xff,0xff,0x64,0xff,0xff,0x63,0xff,0xff,0x62,0xff,0xff,0x61,0xff,0xff,0x60,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00, ] +expected = [ 0xff,0x5f,0xff,0xff,0x5e,0xff,0xff,0x5d,0xff,0xff,0x5c,0xff,0xff,0x5b,0xff,0xff,0x5a,0xff,0xff,0x59,0xff,0xff,0x58,0xff,0xff,0x57,0xff,0xff,0x56,0xff,0xff,0x55,0xff,0xff,0x54,0xff,0xff,0x53,0xff,0xff,0x52,0xff,0xff,0x51,0xff,0xff,0x50,0xff,0xff,0x4f,0xff,0xff,0x4e,0xff,0xff,0x4d,0xff,0xff,0x4c,0xff,0xff,0x4b,0xff,0xff,0x4a,0xff,0xff,0x49,0xff,0xff,0x48,0xff,0xff,0x47,0xff,0xff,0x46,0xff,0xff,0x45,0xff,0xff,0x44,0xff,0xff,0x43,0xff,0xff,0x42,0xff,0xff,0x41,0xff,0xff,0x40,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00, ] +expected = [ 0xff,0x3f,0xff,0xff,0x3e,0xff,0xff,0x3d,0xff,0xff,0x3c,0xff,0xff,0x3b,0xff,0xff,0x3a,0xff,0xff,0x39,0xff,0xff,0x38,0xff,0xff,0x37,0xff,0xff,0x36,0xff,0xff,0x35,0xff,0xff,0x34,0xff,0xff,0x33,0xff,0xff,0x32,0xff,0xff,0x31,0xff,0xff,0x30,0xff,0xff,0x2f,0xff,0xff,0x2e,0xff,0xff,0x2d,0xff,0xff,0x2c,0xff,0xff,0x2b,0xff,0xff,0x2a,0xff,0xff,0x29,0xff,0xff,0x28,0xff,0xff,0x27,0xff,0xff,0x26,0xff,0xff,0x25,0xff,0xff,0x24,0xff,0xff,0x23,0xff,0xff,0x22,0xff,0xff,0x21,0xff,0xff,0x20,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00, ] +expected = [ 0xff,0x1f,0xff,0xff,0x1e,0xff,0xff,0x1d,0xff,0xff,0x1c,0xff,0xff,0x1b,0xff,0xff,0x1a,0xff,0xff,0x19,0xff,0xff,0x18,0xff,0xff,0x17,0xff,0xff,0x16,0xff,0xff,0x15,0xff,0xff,0x14,0xff,0xff,0x13,0xff,0xff,0x12,0xff,0xff,0x11,0xff,0xff,0x10,0xff,0xff,0x0f,0xff,0xff,0x0e,0xff,0xff,0x0d,0xff,0xff,0x0c,0xff,0xff,0x0b,0xff,0xff,0x0a,0xff,0xff,0x09,0xff,0xff,0x08,0xff,0xff,0x07,0xff,0xff,0x06,0xff,0xff,0x05,0xff,0xff,0x04,0xff,0xff,0x03,0xff,0xff,0x02,0xff,0xff,0x01,0xff,0xff,0x00,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0xff,0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00, ] +expected = [ 0xff,0xff,0xff,0xfe,0xff,0xff,0xfd,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xfa,0xff,0xff,0xf9,0xff,0xff,0xf8,0xff,0xff,0xf7,0xff,0xff,0xf6,0xff,0xff,0xf5,0xff,0xff,0xf4,0xff,0xff,0xf3,0xff,0xff,0xf2,0xff,0xff,0xf1,0xff,0xff,0xf0,0xff,0xff,0xef,0xff,0xff,0xee,0xff,0xff,0xed,0xff,0xff,0xec,0xff,0xff,0xeb,0xff,0xff,0xea,0xff,0xff,0xe9,0xff,0xff,0xe8,0xff,0xff,0xe7,0xff,0xff,0xe6,0xff,0xff,0xe5,0xff,0xff,0xe4,0xff,0xff,0xe3,0xff,0xff,0xe2,0xff,0xff,0xe1,0xff,0xff,0xe0,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00, ] +expected = [ 0xdf,0xff,0xff,0xde,0xff,0xff,0xdd,0xff,0xff,0xdc,0xff,0xff,0xdb,0xff,0xff,0xda,0xff,0xff,0xd9,0xff,0xff,0xd8,0xff,0xff,0xd7,0xff,0xff,0xd6,0xff,0xff,0xd5,0xff,0xff,0xd4,0xff,0xff,0xd3,0xff,0xff,0xd2,0xff,0xff,0xd1,0xff,0xff,0xd0,0xff,0xff,0xcf,0xff,0xff,0xce,0xff,0xff,0xcd,0xff,0xff,0xcc,0xff,0xff,0xcb,0xff,0xff,0xca,0xff,0xff,0xc9,0xff,0xff,0xc8,0xff,0xff,0xc7,0xff,0xff,0xc6,0xff,0xff,0xc5,0xff,0xff,0xc4,0xff,0xff,0xc3,0xff,0xff,0xc2,0xff,0xff,0xc1,0xff,0xff,0xc0,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00, ] +expected = [ 0xbf,0xff,0xff,0xbe,0xff,0xff,0xbd,0xff,0xff,0xbc,0xff,0xff,0xbb,0xff,0xff,0xba,0xff,0xff,0xb9,0xff,0xff,0xb8,0xff,0xff,0xb7,0xff,0xff,0xb6,0xff,0xff,0xb5,0xff,0xff,0xb4,0xff,0xff,0xb3,0xff,0xff,0xb2,0xff,0xff,0xb1,0xff,0xff,0xb0,0xff,0xff,0xaf,0xff,0xff,0xae,0xff,0xff,0xad,0xff,0xff,0xac,0xff,0xff,0xab,0xff,0xff,0xaa,0xff,0xff,0xa9,0xff,0xff,0xa8,0xff,0xff,0xa7,0xff,0xff,0xa6,0xff,0xff,0xa5,0xff,0xff,0xa4,0xff,0xff,0xa3,0xff,0xff,0xa2,0xff,0xff,0xa1,0xff,0xff,0xa0,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00, ] +expected = [ 0x9f,0xff,0xff,0x9e,0xff,0xff,0x9d,0xff,0xff,0x9c,0xff,0xff,0x9b,0xff,0xff,0x9a,0xff,0xff,0x99,0xff,0xff,0x98,0xff,0xff,0x97,0xff,0xff,0x96,0xff,0xff,0x95,0xff,0xff,0x94,0xff,0xff,0x93,0xff,0xff,0x92,0xff,0xff,0x91,0xff,0xff,0x90,0xff,0xff,0x8f,0xff,0xff,0x8e,0xff,0xff,0x8d,0xff,0xff,0x8c,0xff,0xff,0x8b,0xff,0xff,0x8a,0xff,0xff,0x89,0xff,0xff,0x88,0xff,0xff,0x87,0xff,0xff,0x86,0xff,0xff,0x85,0xff,0xff,0x84,0xff,0xff,0x83,0xff,0xff,0x82,0xff,0xff,0x81,0xff,0xff,0x80,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00, ] +expected = [ 0x7f,0xff,0xff,0x7e,0xff,0xff,0x7d,0xff,0xff,0x7c,0xff,0xff,0x7b,0xff,0xff,0x7a,0xff,0xff,0x79,0xff,0xff,0x78,0xff,0xff,0x77,0xff,0xff,0x76,0xff,0xff,0x75,0xff,0xff,0x74,0xff,0xff,0x73,0xff,0xff,0x72,0xff,0xff,0x71,0xff,0xff,0x70,0xff,0xff,0x6f,0xff,0xff,0x6e,0xff,0xff,0x6d,0xff,0xff,0x6c,0xff,0xff,0x6b,0xff,0xff,0x6a,0xff,0xff,0x69,0xff,0xff,0x68,0xff,0xff,0x67,0xff,0xff,0x66,0xff,0xff,0x65,0xff,0xff,0x64,0xff,0xff,0x63,0xff,0xff,0x62,0xff,0xff,0x61,0xff,0xff,0x60,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00, ] +expected = [ 0x5f,0xff,0xff,0x5e,0xff,0xff,0x5d,0xff,0xff,0x5c,0xff,0xff,0x5b,0xff,0xff,0x5a,0xff,0xff,0x59,0xff,0xff,0x58,0xff,0xff,0x57,0xff,0xff,0x56,0xff,0xff,0x55,0xff,0xff,0x54,0xff,0xff,0x53,0xff,0xff,0x52,0xff,0xff,0x51,0xff,0xff,0x50,0xff,0xff,0x4f,0xff,0xff,0x4e,0xff,0xff,0x4d,0xff,0xff,0x4c,0xff,0xff,0x4b,0xff,0xff,0x4a,0xff,0xff,0x49,0xff,0xff,0x48,0xff,0xff,0x47,0xff,0xff,0x46,0xff,0xff,0x45,0xff,0xff,0x44,0xff,0xff,0x43,0xff,0xff,0x42,0xff,0xff,0x41,0xff,0xff,0x40,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00, ] +expected = [ 0x3f,0xff,0xff,0x3e,0xff,0xff,0x3d,0xff,0xff,0x3c,0xff,0xff,0x3b,0xff,0xff,0x3a,0xff,0xff,0x39,0xff,0xff,0x38,0xff,0xff,0x37,0xff,0xff,0x36,0xff,0xff,0x35,0xff,0xff,0x34,0xff,0xff,0x33,0xff,0xff,0x32,0xff,0xff,0x31,0xff,0xff,0x30,0xff,0xff,0x2f,0xff,0xff,0x2e,0xff,0xff,0x2d,0xff,0xff,0x2c,0xff,0xff,0x2b,0xff,0xff,0x2a,0xff,0xff,0x29,0xff,0xff,0x28,0xff,0xff,0x27,0xff,0xff,0x26,0xff,0xff,0x25,0xff,0xff,0x24,0xff,0xff,0x23,0xff,0xff,0x22,0xff,0xff,0x21,0xff,0xff,0x20,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00, ] +expected = [ 0x1f,0xff,0xff,0x1e,0xff,0xff,0x1d,0xff,0xff,0x1c,0xff,0xff,0x1b,0xff,0xff,0x1a,0xff,0xff,0x19,0xff,0xff,0x18,0xff,0xff,0x17,0xff,0xff,0x16,0xff,0xff,0x15,0xff,0xff,0x14,0xff,0xff,0x13,0xff,0xff,0x12,0xff,0xff,0x11,0xff,0xff,0x10,0xff,0xff,0x0f,0xff,0xff,0x0e,0xff,0xff,0x0d,0xff,0xff,0x0c,0xff,0xff,0x0b,0xff,0xff,0x0a,0xff,0xff,0x09,0xff,0xff,0x08,0xff,0xff,0x07,0xff,0xff,0x06,0xff,0xff,0x05,0xff,0xff,0x04,0xff,0xff,0x03,0xff,0xff,0x02,0xff,0xff,0x01,0xff,0xff,0x00,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfb,0xfb,0xfb,0xfa,0xfa,0xfa,0xf9,0xf9,0xf9,0xf8,0xf8,0xf8,0xf7,0xf7,0xf7,0xf6,0xf6,0xf6,0xf5,0xf5,0xf5,0xf4,0xf4,0xf4,0xf3,0xf3,0xf3,0xf2,0xf2,0xf2,0xf1,0xf1,0xf1,0xf0,0xf0,0xf0,0xef,0xef,0xef,0xee,0xee,0xee,0xed,0xed,0xed,0xec,0xec,0xec,0xeb,0xeb,0xeb,0xea,0xea,0xea,0xe9,0xe9,0xe9,0xe8,0xe8,0xe8,0xe7,0xe7,0xe7,0xe6,0xe6,0xe6,0xe5,0xe5,0xe5,0xe4,0xe4,0xe4,0xe3,0xe3,0xe3,0xe2,0xe2,0xe2,0xe1,0xe1,0xe1,0xe0,0xe0,0xe0, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0xe0,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0xdf,0xdf,0xdf,0xde,0xde,0xde,0xdd,0xdd,0xdd,0xdc,0xdc,0xdc,0xdb,0xdb,0xdb,0xda,0xda,0xda,0xd9,0xd9,0xd9,0xd8,0xd8,0xd8,0xd7,0xd7,0xd7,0xd6,0xd6,0xd6,0xd5,0xd5,0xd5,0xd4,0xd4,0xd4,0xd3,0xd3,0xd3,0xd2,0xd2,0xd2,0xd1,0xd1,0xd1,0xd0,0xd0,0xd0,0xcf,0xcf,0xcf,0xce,0xce,0xce,0xcd,0xcd,0xcd,0xcc,0xcc,0xcc,0xcb,0xcb,0xcb,0xca,0xca,0xca,0xc9,0xc9,0xc9,0xc8,0xc8,0xc8,0xc7,0xc7,0xc7,0xc6,0xc6,0xc6,0xc5,0xc5,0xc5,0xc4,0xc4,0xc4,0xc3,0xc3,0xc3,0xc2,0xc2,0xc2,0xc1,0xc1,0xc1,0xc0,0xc0,0xc0, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0xe0,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0xbf,0xbf,0xbf,0xbe,0xbe,0xbe,0xbd,0xbd,0xbd,0xbc,0xbc,0xbc,0xbb,0xbb,0xbb,0xba,0xba,0xba,0xb9,0xb9,0xb9,0xb8,0xb8,0xb8,0xb7,0xb7,0xb7,0xb6,0xb6,0xb6,0xb5,0xb5,0xb5,0xb4,0xb4,0xb4,0xb3,0xb3,0xb3,0xb2,0xb2,0xb2,0xb1,0xb1,0xb1,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xae,0xae,0xae,0xad,0xad,0xad,0xac,0xac,0xac,0xab,0xab,0xab,0xaa,0xaa,0xaa,0xa9,0xa9,0xa9,0xa8,0xa8,0xa8,0xa7,0xa7,0xa7,0xa6,0xa6,0xa6,0xa5,0xa5,0xa5,0xa4,0xa4,0xa4,0xa3,0xa3,0xa3,0xa2,0xa2,0xa2,0xa1,0xa1,0xa1,0xa0,0xa0,0xa0, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0xe0,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x9f,0x9f,0x9f,0x9e,0x9e,0x9e,0x9d,0x9d,0x9d,0x9c,0x9c,0x9c,0x9b,0x9b,0x9b,0x9a,0x9a,0x9a,0x99,0x99,0x99,0x98,0x98,0x98,0x97,0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x91,0x90,0x90,0x90,0x8f,0x8f,0x8f,0x8e,0x8e,0x8e,0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x88,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x80, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0xe0,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6c,0x6c,0x6c,0x6b,0x6b,0x6b,0x6a,0x6a,0x6a,0x69,0x69,0x69,0x68,0x68,0x68,0x67,0x67,0x67,0x66,0x66,0x66,0x65,0x65,0x65,0x64,0x64,0x64,0x63,0x63,0x63,0x62,0x62,0x62,0x61,0x61,0x61,0x60,0x60,0x60, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0xe0,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x5f,0x5f,0x5f,0x5e,0x5e,0x5e,0x5d,0x5d,0x5d,0x5c,0x5c,0x5c,0x5b,0x5b,0x5b,0x5a,0x5a,0x5a,0x59,0x59,0x59,0x58,0x58,0x58,0x57,0x57,0x57,0x56,0x56,0x56,0x55,0x55,0x55,0x54,0x54,0x54,0x53,0x53,0x53,0x52,0x52,0x52,0x51,0x51,0x51,0x50,0x50,0x50,0x4f,0x4f,0x4f,0x4e,0x4e,0x4e,0x4d,0x4d,0x4d,0x4c,0x4c,0x4c,0x4b,0x4b,0x4b,0x4a,0x4a,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x47,0x47,0x47,0x46,0x46,0x46,0x45,0x45,0x45,0x44,0x44,0x44,0x43,0x43,0x43,0x42,0x42,0x42,0x41,0x41,0x41,0x40,0x40,0x40, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe0,0xe0,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x3f,0x3f,0x3f,0x3e,0x3e,0x3e,0x3d,0x3d,0x3d,0x3c,0x3c,0x3c,0x3b,0x3b,0x3b,0x3a,0x3a,0x3a,0x39,0x39,0x39,0x38,0x38,0x38,0x37,0x37,0x37,0x36,0x36,0x36,0x35,0x35,0x35,0x34,0x34,0x34,0x33,0x33,0x33,0x32,0x32,0x32,0x31,0x31,0x31,0x30,0x30,0x30,0x2f,0x2f,0x2f,0x2e,0x2e,0x2e,0x2d,0x2d,0x2d,0x2c,0x2c,0x2c,0x2b,0x2b,0x2b,0x2a,0x2a,0x2a,0x29,0x29,0x29,0x28,0x28,0x28,0x27,0x27,0x27,0x26,0x26,0x26,0x25,0x25,0x25,0x24,0x24,0x24,0x23,0x23,0x23,0x22,0x22,0x22,0x21,0x21,0x21,0x20,0x20,0x20, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x1f,0x1f,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] +expected = [ 0x1f,0x1f,0x1f,0x1e,0x1e,0x1e,0x1d,0x1d,0x1d,0x1c,0x1c,0x1c,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x19,0x19,0x19,0x18,0x18,0x18,0x17,0x17,0x17,0x16,0x16,0x16,0x15,0x15,0x15,0x14,0x14,0x14,0x13,0x13,0x13,0x12,0x12,0x12,0x11,0x11,0x11,0x10,0x10,0x10,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x08,0x08,0x08,0x07,0x07,0x07,0x06,0x06,0x06,0x05,0x05,0x05,0x04,0x04,0x04,0x03,0x03,0x03,0x02,0x02,0x02,0x01,0x01,0x01,0x00,0x00,0x00, ] +PASS: pngimage --exhaustive --list-combos ./contrib/pngsuite/basn2c08.png diff --git a/tests/expected.txt b/tests/expected.txt index b1b7cca..1989623 100644 --- a/tests/expected.txt +++ b/tests/expected.txt @@ -46,19 +46,33 @@ simple/b107669d1dd69eabb89765fabb2cb321.pdf 56025c06ab8633575ddc6c6990d2 # Encrypted files repaginate/0ae80b493bc21e6de99f2ff6bbb8bc2c.pdf skip -repaginate/6e122f618c27f3aa9a689423e3be6b8d.pdf skip -repaginate/7dc787639aa6765214e9ff5494d231ed.pdf skip -repaginate/b4b27aaa1f9c7c524298e98be279bebb.pdf skip -repaginate/b5b6c6405d7b48418bccf97277957664.pdf skip -repaginate/bd0ef57aec16ded45bd89d61b54af0be.pdf skip -repaginate/dbb807a878ac1da6b91ac15c9de4e209.pdf skip simple/0ae80b493bc21e6de99f2ff6bbb8bc2c.pdf skip +compress/0ae80b493bc21e6de99f2ff6bbb8bc2c.pdf skip +decompress/0ae80b493bc21e6de99f2ff6bbb8bc2c.pdf skip +repaginate/6e122f618c27f3aa9a689423e3be6b8d.pdf skip simple/6e122f618c27f3aa9a689423e3be6b8d.pdf skip +compress/6e122f618c27f3aa9a689423e3be6b8d.pdf skip +decompress/6e122f618c27f3aa9a689423e3be6b8d.pdf skip +repaginate/7dc787639aa6765214e9ff5494d231ed.pdf skip simple/7dc787639aa6765214e9ff5494d231ed.pdf skip +compress/7dc787639aa6765214e9ff5494d231ed.pdf skip +decompress/7dc787639aa6765214e9ff5494d231ed.pdf skip +repaginate/b4b27aaa1f9c7c524298e98be279bebb.pdf skip simple/b4b27aaa1f9c7c524298e98be279bebb.pdf skip +compress/b4b27aaa1f9c7c524298e98be279bebb.pdf skip +decompress/b4b27aaa1f9c7c524298e98be279bebb.pdf skip +repaginate/b5b6c6405d7b48418bccf97277957664.pdf skip simple/b5b6c6405d7b48418bccf97277957664.pdf skip +compress/b5b6c6405d7b48418bccf97277957664.pdf skip +decompress/b5b6c6405d7b48418bccf97277957664.pdf skip +repaginate/bd0ef57aec16ded45bd89d61b54af0be.pdf skip simple/bd0ef57aec16ded45bd89d61b54af0be.pdf skip +compress/bd0ef57aec16ded45bd89d61b54af0be.pdf skip +decompress/bd0ef57aec16ded45bd89d61b54af0be.pdf skip +repaginate/dbb807a878ac1da6b91ac15c9de4e209.pdf skip simple/dbb807a878ac1da6b91ac15c9de4e209.pdf skip +compress/dbb807a878ac1da6b91ac15c9de4e209.pdf skip +decompress/dbb807a878ac1da6b91ac15c9de4e209.pdf skip @@ -172,7 +186,7 @@ decompress/71a751ce2d93a6a5d6ff21735b701fb7.pdf a825f06c934319b93474902fcf300cd2 decompress/72eb207b8f882618899aa7a65d3cecda.pdf a4366874fb6db1d9a0c998361ea32b8d decompress/97ba0a239cefa0dc727c2f1be050ec6c.pdf c24873bab85b8ecc7c5433d8d802bceb decompress/9d8626d18b1d8807d271e6ffc409446a.pdf 6498bd354bb221516517a4c49bcb94f6 -decompress/9f98322c243fe67726d56ccfa8e0885b.pdf 4b53b63b0779b81d8f9569e66ca3d8ee +decompress/9f98322c243fe67726d56ccfa8e0885b.pdf 0fa96e3669d14c64fff159d5aa457014 decompress/b107669d1dd69eabb89765fabb2cb321.pdf 56025c06ab8633575ddc6c6990d2fbf1 decompress/b1c400de699af29ea3f1983bb26870ab.pdf 08a5de62129a96d8d9a8f27052bfb227 decompress/c55eb9a13859a7fbddd8af9c16eba3a7.pdf 8e0eb14c12fc89e7cbb4001861d7198f @@ -213,7 +227,7 @@ compress/71a751ce2d93a6a5d6ff21735b701fb7.pdf faa7eb31789a3789f65de30a4e58e594 compress/72eb207b8f882618899aa7a65d3cecda.pdf 0155549fc04357220cc6be541dda7bc1 compress/97ba0a239cefa0dc727c2f1be050ec6c.pdf 067bfee3b2bd9c250e7c4157ff543a81 compress/9d8626d18b1d8807d271e6ffc409446a.pdf 7c124d2d0b0c7b21cce91740dfb2a8fd -compress/9f98322c243fe67726d56ccfa8e0885b.pdf 3167fa11a3f1f4a06f90294b21e101b7 +compress/9f98322c243fe67726d56ccfa8e0885b.pdf f9d59774a75bb2dfc08ff7df65aa3048 compress/b107669d1dd69eabb89765fabb2cb321.pdf 56025c06ab8633575ddc6c6990d2fbf1 compress/b1c400de699af29ea3f1983bb26870ab.pdf 6eaeef32b0e28959e7681c8b02d8814f compress/c55eb9a13859a7fbddd8af9c16eba3a7.pdf 6ef82921011eb79a9d860214e213c868 diff --git a/tests/f01n2c08.png.log b/tests/f01n2c08.png.log new file mode 100644 index 0000000..ba6b066 --- /dev/null +++ b/tests/f01n2c08.png.log @@ -0,0 +1,289 @@ +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0xff,0x00,0x08,0x00,0x08,0x07,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08, ] +expected = [ 0xff,0x00,0x08,0xff,0x08,0x0f,0xff,0x10,0x17,0xff,0x18,0x1f,0xff,0x20,0x27,0xff,0x29,0x2f,0xff,0x31,0x37,0xff,0x39,0x3f,0xff,0x41,0x47,0xff,0x4a,0x4f,0xff,0x52,0x57,0xff,0x5a,0x5f,0xff,0x62,0x67,0xff,0x6a,0x6f,0xff,0x73,0x77,0xff,0x7b,0x7f,0xff,0x83,0x87,0xff,0x8b,0x8f,0xff,0x94,0x97,0xff,0x9c,0x9f,0xff,0xa4,0xa7,0xff,0xac,0xaf,0xff,0xb4,0xb7,0xff,0xbd,0xbf,0xff,0xc5,0xc7,0xff,0xcd,0xcf,0xff,0xd5,0xd7,0xff,0xde,0xdf,0xff,0xe6,0xe7,0xff,0xee,0xef,0xff,0xf6,0xf7,0xff,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0xee,0x1d,0x07,0x11,0x02,0x01,0x00,0x07,0x07,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x08,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x08,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x08,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x08,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x08,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x08,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08, ] +expected = [ 0xee,0x1d,0x07,0xff,0x1f,0x08,0xff,0x26,0x0f,0xff,0x2d,0x17,0xff,0x34,0x1f,0xff,0x3b,0x27,0xff,0x43,0x2f,0xff,0x4a,0x37,0xff,0x51,0x3f,0xff,0x58,0x47,0xff,0x60,0x4f,0xff,0x67,0x57,0xff,0x6e,0x5f,0xff,0x75,0x67,0xff,0x7c,0x6f,0xff,0x84,0x77,0xff,0x8b,0x7f,0xff,0x92,0x87,0xff,0x99,0x8f,0xff,0xa1,0x97,0xff,0xa8,0x9f,0xff,0xaf,0xa7,0xff,0xb6,0xaf,0xff,0xbd,0xb7,0xff,0xc5,0xbf,0xff,0xcc,0xc7,0xff,0xd3,0xcf,0xff,0xda,0xd7,0xff,0xe2,0xdf,0xff,0xe9,0xe7,0xff,0xf0,0xef,0xff,0xf7,0xf7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0xdf,0x37,0x07,0x0f,0x04,0x00,0x11,0x04,0x01,0x00,0x06,0x07,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x07,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x07,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x07,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x07,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x07,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08, ] +expected = [ 0xdf,0x37,0x07,0xee,0x3b,0x07,0xff,0x3f,0x08,0xff,0x45,0x0f,0xff,0x4b,0x17,0xff,0x51,0x1f,0xff,0x57,0x27,0xff,0x5d,0x2f,0xff,0x64,0x37,0xff,0x6a,0x3f,0xff,0x70,0x47,0xff,0x76,0x4f,0xff,0x7c,0x57,0xff,0x83,0x5f,0xff,0x89,0x67,0xff,0x8f,0x6f,0xff,0x95,0x77,0xff,0x9b,0x7f,0xff,0xa2,0x87,0xff,0xa8,0x8f,0xff,0xae,0x97,0xff,0xb4,0x9f,0xff,0xba,0xa7,0xff,0xc1,0xaf,0xff,0xc7,0xb7,0xff,0xcd,0xbf,0xff,0xd3,0xc7,0xff,0xd9,0xcf,0xff,0xe0,0xd7,0xff,0xe6,0xdf,0xff,0xec,0xe7,0xff,0xf2,0xef, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0xd0,0x4d,0x06,0x0f,0x06,0x01,0x0f,0x05,0x00,0x11,0x07,0x01,0x00,0x05,0x07,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x06,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x06,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x06,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x06,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08, ] +expected = [ 0xd0,0x4d,0x06,0xdf,0x53,0x07,0xee,0x58,0x07,0xff,0x5f,0x08,0xff,0x64,0x0f,0xff,0x69,0x17,0xff,0x6e,0x1f,0xff,0x73,0x27,0xff,0x78,0x2f,0xff,0x7d,0x37,0xff,0x83,0x3f,0xff,0x88,0x47,0xff,0x8d,0x4f,0xff,0x92,0x57,0xff,0x97,0x5f,0xff,0x9c,0x67,0xff,0xa2,0x6f,0xff,0xa7,0x77,0xff,0xac,0x7f,0xff,0xb1,0x87,0xff,0xb6,0x8f,0xff,0xbb,0x97,0xff,0xc1,0x9f,0xff,0xc6,0xa7,0xff,0xcb,0xaf,0xff,0xd0,0xb7,0xff,0xd5,0xbf,0xff,0xda,0xc7,0xff,0xe0,0xcf,0xff,0xe5,0xd7,0xff,0xea,0xdf,0xff,0xef,0xe7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0xc1,0x60,0x05,0x0f,0x07,0x00,0x0f,0x08,0x01,0x0f,0x07,0x00,0x11,0x09,0x01,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x07,0x00,0x04,0x09,0x00,0x04,0x08,0x00,0x05,0x08,0x00,0x04,0x07,0x00,0x04,0x09,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x07,0x00,0x04,0x09,0x00,0x04,0x08,0x00,0x05,0x08,0x00,0x04,0x07,0x00,0x04,0x09,0x00,0x04,0x08,0x00,0x04,0x07,0x00,0x04,0x08,0x00,0x04,0x09,0x00,0x04,0x08,0x00,0x05,0x07,0x00,0x04,0x08,0x00,0x04,0x09,0x00,0x04,0x08, ] +expected = [ 0xc1,0x60,0x05,0xd0,0x67,0x05,0xdf,0x6f,0x06,0xee,0x76,0x06,0xff,0x7f,0x07,0xff,0x83,0x0f,0xff,0x87,0x17,0xff,0x8b,0x1f,0xff,0x8f,0x27,0xff,0x93,0x2e,0xff,0x97,0x37,0xff,0x9b,0x3f,0xff,0xa0,0x47,0xff,0xa4,0x4e,0xff,0xa8,0x57,0xff,0xac,0x5f,0xff,0xb0,0x67,0xff,0xb4,0x6e,0xff,0xb8,0x77,0xff,0xbc,0x7f,0xff,0xc1,0x87,0xff,0xc5,0x8e,0xff,0xc9,0x97,0xff,0xcd,0x9f,0xff,0xd1,0xa6,0xff,0xd5,0xae,0xff,0xd9,0xb7,0xff,0xdd,0xbf,0xff,0xe2,0xc6,0xff,0xe6,0xce,0xff,0xea,0xd7,0xff,0xee,0xdf, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0xb3,0x6f,0x04,0x0e,0x09,0x01,0x0f,0x09,0x00,0x0f,0x0a,0x01,0x0f,0x09,0x00,0x11,0x0b,0x01,0x00,0x03,0x08,0x00,0x03,0x08,0x00,0x03,0x08,0x00,0x03,0x08,0x00,0x03,0x07,0x00,0x03,0x09,0x00,0x03,0x08,0x00,0x03,0x08,0x00,0x03,0x07,0x00,0x03,0x09,0x00,0x04,0x08,0x00,0x03,0x08,0x00,0x03,0x07,0x00,0x03,0x09,0x00,0x03,0x08,0x00,0x03,0x08,0x00,0x03,0x07,0x00,0x03,0x09,0x00,0x03,0x08,0x00,0x03,0x07,0x00,0x04,0x08,0x00,0x03,0x09,0x00,0x03,0x08,0x00,0x03,0x07,0x00,0x03,0x08,0x00,0x03,0x09, ] +expected = [ 0xb3,0x6f,0x04,0xc1,0x78,0x05,0xd0,0x81,0x05,0xdf,0x8b,0x06,0xee,0x94,0x06,0xff,0x9f,0x07,0xff,0xa2,0x0f,0xff,0xa5,0x17,0xff,0xa8,0x1f,0xff,0xab,0x27,0xff,0xae,0x2e,0xff,0xb1,0x37,0xff,0xb4,0x3f,0xff,0xb7,0x47,0xff,0xba,0x4e,0xff,0xbd,0x57,0xff,0xc1,0x5f,0xff,0xc4,0x67,0xff,0xc7,0x6e,0xff,0xca,0x77,0xff,0xcd,0x7f,0xff,0xd0,0x87,0xff,0xd3,0x8e,0xff,0xd6,0x97,0xff,0xd9,0x9f,0xff,0xdc,0xa6,0xff,0xe0,0xae,0xff,0xe3,0xb7,0xff,0xe6,0xbf,0xff,0xe9,0xc6,0xff,0xec,0xce,0xff,0xef,0xd7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0xa5,0x7c,0x04,0x0e,0x0a,0x00,0x0e,0x0a,0x01,0x0f,0x0b,0x00,0x0f,0x0c,0x01,0x0f,0x0b,0x00,0x11,0x0d,0x01,0x00,0x02,0x08,0x00,0x02,0x08,0x00,0x02,0x08,0x00,0x02,0x08,0x00,0x02,0x07,0x00,0x02,0x09,0x00,0x02,0x08,0x00,0x02,0x08,0x00,0x02,0x07,0x00,0x02,0x09,0x00,0x02,0x08,0x00,0x02,0x08,0x00,0x02,0x07,0x00,0x02,0x09,0x00,0x02,0x08,0x00,0x03,0x08,0x00,0x02,0x07,0x00,0x02,0x09,0x00,0x02,0x08,0x00,0x02,0x07,0x00,0x02,0x08,0x00,0x02,0x09,0x00,0x02,0x08,0x00,0x02,0x07,0x00,0x02,0x08, ] +expected = [ 0xa5,0x7c,0x04,0xb3,0x86,0x04,0xc1,0x90,0x05,0xd0,0x9b,0x05,0xdf,0xa7,0x06,0xee,0xb2,0x06,0xff,0xbf,0x07,0xff,0xc1,0x0f,0xff,0xc3,0x17,0xff,0xc5,0x1f,0xff,0xc7,0x27,0xff,0xc9,0x2e,0xff,0xcb,0x37,0xff,0xcd,0x3f,0xff,0xcf,0x47,0xff,0xd1,0x4e,0xff,0xd3,0x57,0xff,0xd5,0x5f,0xff,0xd7,0x67,0xff,0xd9,0x6e,0xff,0xdb,0x77,0xff,0xdd,0x7f,0xff,0xe0,0x87,0xff,0xe2,0x8e,0xff,0xe4,0x97,0xff,0xe6,0x9f,0xff,0xe8,0xa6,0xff,0xea,0xae,0xff,0xec,0xb7,0xff,0xee,0xbf,0xff,0xf0,0xc6,0xff,0xf2,0xce, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x98,0x85,0x04,0x0d,0x0c,0x00,0x0e,0x0b,0x00,0x0e,0x0d,0x01,0x0f,0x0c,0x00,0x0f,0x0e,0x01,0x0f,0x0d,0x00,0x11,0x0f,0x01,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x01,0x07,0x00,0x01,0x09,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x01,0x07,0x00,0x01,0x09,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x01,0x07,0x00,0x01,0x09,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x01,0x07,0x00,0x01,0x09,0x00,0x01,0x08,0x00,0x01,0x07,0x00,0x01,0x08,0x00,0x01,0x09,0x00,0x01,0x08,0x00,0x01,0x07, ] +expected = [ 0x98,0x85,0x04,0xa5,0x91,0x04,0xb3,0x9c,0x04,0xc1,0xa9,0x05,0xd0,0xb5,0x05,0xdf,0xc3,0x06,0xee,0xd0,0x06,0xff,0xdf,0x07,0xff,0xe0,0x0f,0xff,0xe1,0x17,0xff,0xe2,0x1f,0xff,0xe3,0x27,0xff,0xe4,0x2e,0xff,0xe5,0x37,0xff,0xe6,0x3f,0xff,0xe7,0x47,0xff,0xe8,0x4e,0xff,0xe9,0x57,0xff,0xea,0x5f,0xff,0xeb,0x67,0xff,0xec,0x6e,0xff,0xed,0x77,0xff,0xee,0x7f,0xff,0xef,0x87,0xff,0xf0,0x8e,0xff,0xf1,0x97,0xff,0xf2,0x9f,0xff,0xf3,0xa6,0xff,0xf4,0xae,0xff,0xf5,0xb7,0xff,0xf6,0xbf,0xff,0xf7,0xc6, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x8c,0x8c,0x03,0x0c,0x0c,0x00,0x0d,0x0d,0x00,0x0e,0x0e,0x01,0x0e,0x0e,0x00,0x0f,0x0f,0x00,0x0f,0x0f,0x01,0x0f,0x0f,0x00,0x11,0x11,0x01,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x01,0x01,0xca,0x00,0x00,0x00,0xff,0xff,0x4e,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08, ] +expected = [ 0x8c,0x8c,0x03,0x98,0x98,0x03,0xa5,0xa5,0x03,0xb3,0xb3,0x04,0xc1,0xc1,0x04,0xd0,0xd0,0x04,0xdf,0xdf,0x05,0xee,0xee,0x05,0xff,0xff,0x06,0xff,0xff,0x0e,0xff,0xff,0x16,0xff,0xff,0x1e,0xff,0xff,0x26,0xff,0xff,0x2e,0xff,0xff,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0xff,0xff,0x56,0xff,0xff,0x5e,0xff,0xff,0x66,0xff,0xff,0x6e,0xff,0xff,0x76,0xff,0xff,0x7e,0xff,0xff,0x86,0xff,0xff,0x8e,0xff,0xff,0x96,0xff,0xff,0x9e,0xff,0xff,0xa6,0xff,0xff,0xae,0xff,0xff,0xb6,0xff,0xff,0xbe, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x70,0x80,0x03,0x0b,0x0c,0x00,0x0b,0x0c,0x00,0x0b,0x0d,0x00,0x0c,0x0e,0x01,0x0c,0x0e,0x00,0x0d,0x0f,0x00,0x0e,0x0f,0x01,0x0d,0x0f,0x00,0x0f,0x11,0x01,0x01,0x00,0x08,0x01,0x00,0x08,0x01,0x00,0x08,0x01,0x00,0x08,0x1c,0x01,0xda,0x00,0x00,0x00,0x00,0x00,0x00,0xe8,0xff,0x46,0x00,0x00,0x08,0x02,0x00,0x08,0x01,0x00,0x08,0x01,0x00,0x08,0x00,0x00,0x08,0x02,0x00,0x08,0x01,0x00,0x08,0x01,0x00,0x08,0x00,0x00,0x08,0x02,0x00,0x08,0x01,0x00,0x08,0x00,0x00,0x08,0x01,0x00,0x08,0x02,0x00,0x08, ] +expected = [ 0x70,0x80,0x03,0x7b,0x8c,0x03,0x86,0x98,0x03,0x91,0xa5,0x03,0x9d,0xb3,0x04,0xa9,0xc1,0x04,0xb6,0xd0,0x04,0xc4,0xdf,0x05,0xd1,0xee,0x05,0xe0,0xff,0x06,0xe1,0xff,0x0e,0xe2,0xff,0x16,0xe3,0xff,0x1e,0xe4,0xff,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe8,0xff,0x46,0xe8,0xff,0x4e,0xea,0xff,0x56,0xeb,0xff,0x5e,0xec,0xff,0x66,0xec,0xff,0x6e,0xee,0xff,0x76,0xef,0xff,0x7e,0xf0,0xff,0x86,0xf0,0xff,0x8e,0xf2,0xff,0x96,0xf3,0xff,0x9e,0xf3,0xff,0xa6,0xf4,0xff,0xae,0xf6,0xff,0xb6, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x58,0x75,0x02,0x08,0x0b,0x01,0x09,0x0c,0x00,0x0a,0x0c,0x00,0x09,0x0d,0x00,0x0b,0x0e,0x01,0x0a,0x0e,0x00,0x0b,0x0f,0x00,0x0c,0x0f,0x01,0x0b,0x0f,0x00,0x0d,0x11,0x01,0x02,0x00,0x08,0x02,0x00,0x08,0x3c,0x01,0xea,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xff,0x3e,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08, ] +expected = [ 0x58,0x75,0x02,0x60,0x80,0x03,0x69,0x8c,0x03,0x73,0x98,0x03,0x7c,0xa5,0x03,0x87,0xb3,0x04,0x91,0xc1,0x04,0x9c,0xd0,0x04,0xa8,0xdf,0x05,0xb3,0xee,0x05,0xc0,0xff,0x06,0xc2,0xff,0x0e,0xc4,0xff,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xff,0x3e,0xd0,0xff,0x46,0xd2,0xff,0x4e,0xd4,0xff,0x56,0xd6,0xff,0x5e,0xd8,0xff,0x66,0xda,0xff,0x6e,0xdc,0xff,0x76,0xde,0xff,0x7e,0xe0,0xff,0x86,0xe2,0xff,0x8e,0xe4,0xff,0x96,0xe6,0xff,0x9e,0xe8,0xff,0xa6,0xea,0xff,0xae, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x42,0x6a,0x02,0x07,0x0b,0x00,0x07,0x0b,0x00,0x08,0x0c,0x00,0x07,0x0c,0x00,0x09,0x0d,0x01,0x08,0x0e,0x00,0x09,0x0e,0x00,0x09,0x0f,0x01,0x0a,0x0f,0x00,0x09,0x0f,0x00,0x0b,0x11,0x01,0x60,0x01,0xfb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb2,0xff,0x35,0x03,0x00,0x08,0x03,0x00,0x08,0x03,0x00,0x08,0x03,0x00,0x08,0x03,0x00,0x08,0x03,0x00,0x08,0x03,0x00,0x08,0x03,0x00,0x08,0x03,0x00,0x08,0x04,0x00,0x09,0x03,0x00,0x08,0x03,0x00,0x08,0x03,0x00,0x08,0x03,0x00,0x08, ] +expected = [ 0x42,0x6a,0x02,0x49,0x75,0x02,0x50,0x80,0x02,0x58,0x8c,0x02,0x5f,0x98,0x02,0x68,0xa5,0x03,0x70,0xb3,0x03,0x79,0xc1,0x03,0x82,0xd0,0x04,0x8c,0xdf,0x04,0x95,0xee,0x04,0xa0,0xff,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb2,0xff,0x35,0xb5,0xff,0x3d,0xb8,0xff,0x45,0xbb,0xff,0x4d,0xbe,0xff,0x55,0xc1,0xff,0x5d,0xc4,0xff,0x65,0xc7,0xff,0x6d,0xca,0xff,0x75,0xcd,0xff,0x7d,0xd1,0xff,0x86,0xd4,0xff,0x8e,0xd7,0xff,0x96,0xda,0xff,0x9e,0xdd,0xff,0xa6, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x30,0x5f,0x01,0x05,0x0b,0x01,0x05,0x0b,0x00,0x06,0x0b,0x00,0x06,0x0c,0x00,0x06,0x0c,0x00,0x07,0x0d,0x01,0x07,0x0e,0x00,0x07,0x0e,0x00,0x07,0x0f,0x01,0x08,0x0f,0x00,0x90,0x21,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0xff,0x15,0x78,0x01,0xeb,0x00,0x00,0x00,0x94,0xff,0x2d,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x05,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x09,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08, ] +expected = [ 0x30,0x5f,0x01,0x35,0x6a,0x02,0x3a,0x75,0x02,0x40,0x80,0x02,0x46,0x8c,0x02,0x4c,0x98,0x02,0x53,0xa5,0x03,0x5a,0xb3,0x03,0x61,0xc1,0x03,0x68,0xd0,0x04,0x70,0xdf,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0xff,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x94,0xff,0x2d,0x98,0xff,0x35,0x9c,0xff,0x3d,0xa0,0xff,0x45,0xa4,0xff,0x4d,0xa8,0xff,0x55,0xad,0xff,0x5d,0xb1,0xff,0x65,0xb5,0xff,0x6d,0xb9,0xff,0x75,0xbd,0xff,0x7d,0xc1,0xff,0x86,0xc5,0xff,0x8e,0xc9,0xff,0x96,0xcd,0xff,0x9e, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x20,0x55,0x01,0x04,0x0a,0x00,0x03,0x0b,0x01,0x05,0x0b,0x00,0x04,0x0b,0x00,0x04,0x0c,0x00,0x05,0x0c,0x00,0x05,0x0d,0x01,0x05,0x0e,0x00,0x05,0x0e,0x00,0x06,0x0f,0x01,0xb2,0x30,0xfc,0x00,0x00,0x00,0x60,0xff,0x05,0x05,0x00,0x08,0x9b,0x01,0xf3,0x00,0x00,0x00,0x74,0xff,0x25,0x05,0x00,0x08,0x05,0x00,0x08,0x05,0x00,0x08,0x06,0x00,0x08,0x05,0x00,0x08,0x05,0x00,0x08,0x05,0x00,0x08,0x05,0x00,0x08,0x05,0x00,0x08,0x05,0x00,0x08,0x05,0x00,0x08,0x06,0x00,0x09,0x05,0x00,0x08,0x05,0x00,0x08, ] +expected = [ 0x20,0x55,0x01,0x24,0x5f,0x01,0x27,0x6a,0x02,0x2c,0x75,0x02,0x30,0x80,0x02,0x34,0x8c,0x02,0x39,0x98,0x02,0x3e,0xa5,0x03,0x43,0xb3,0x03,0x48,0xc1,0x03,0x4e,0xd0,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xff,0x05,0x65,0xff,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0xff,0x25,0x79,0xff,0x2d,0x7e,0xff,0x35,0x83,0xff,0x3d,0x89,0xff,0x45,0x8e,0xff,0x4d,0x93,0xff,0x55,0x98,0xff,0x5d,0x9d,0xff,0x65,0xa2,0xff,0x6d,0xa7,0xff,0x75,0xac,0xff,0x7d,0xb2,0xff,0x86,0xb7,0xff,0x8e,0xbc,0xff,0x96, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x13,0x4c,0x01,0x02,0x09,0x00,0x03,0x0a,0x00,0x02,0x0b,0x01,0x03,0x0b,0x00,0x03,0x0b,0x00,0x03,0x0c,0x00,0x03,0x0c,0x00,0x03,0x0d,0x01,0x04,0x0e,0x00,0x03,0x0e,0x00,0x04,0x0f,0x01,0x04,0x0f,0x00,0x03,0x0f,0x00,0x05,0x11,0x01,0xc0,0x01,0xfb,0x00,0x00,0x00,0x52,0xff,0x1d,0x06,0x00,0x08,0x06,0x00,0x08,0x06,0x00,0x08,0x07,0x00,0x08,0x06,0x00,0x08,0x06,0x00,0x08,0x06,0x00,0x08,0x06,0x00,0x08,0x06,0x00,0x08,0x07,0x00,0x08,0x06,0x00,0x08,0x06,0x00,0x08,0x06,0x00,0x09,0x06,0x00,0x08, ] +expected = [ 0x13,0x4c,0x01,0x15,0x55,0x01,0x18,0x5f,0x01,0x1a,0x6a,0x02,0x1d,0x75,0x02,0x20,0x80,0x02,0x23,0x8c,0x02,0x26,0x98,0x02,0x29,0xa5,0x03,0x2d,0xb3,0x03,0x30,0xc1,0x03,0x34,0xd0,0x04,0x38,0xdf,0x04,0x3b,0xee,0x04,0x40,0xff,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xff,0x1d,0x58,0xff,0x25,0x5e,0xff,0x2d,0x64,0xff,0x35,0x6b,0xff,0x3d,0x71,0xff,0x45,0x77,0xff,0x4d,0x7d,0xff,0x55,0x83,0xff,0x5d,0x89,0xff,0x65,0x90,0xff,0x6d,0x96,0xff,0x75,0x9c,0xff,0x7d,0xa2,0xff,0x86,0xa8,0xff,0x8e, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x08,0x43,0x01,0x01,0x09,0x00,0x01,0x09,0x00,0x02,0x0a,0x00,0x01,0x0b,0x00,0x01,0x0b,0x00,0x02,0x0b,0x01,0x01,0x0c,0x00,0x02,0x0c,0x00,0x01,0x0d,0x00,0x02,0x0e,0x00,0x02,0x0e,0x01,0x02,0x0f,0x00,0x02,0x0f,0x00,0x01,0x0f,0x00,0xe3,0x12,0xfd,0x00,0x00,0x00,0x2e,0xff,0x14,0x07,0x00,0x08,0x07,0x00,0x08,0x07,0x00,0x08,0x08,0x00,0x08,0x07,0x00,0x08,0x07,0x00,0x08,0x07,0x00,0x08,0x07,0x00,0x08,0x08,0x00,0x09,0x07,0x00,0x08,0x07,0x00,0x08,0x07,0x00,0x08,0x07,0x00,0x08,0x08,0x00,0x08, ] +expected = [ 0x08,0x43,0x01,0x09,0x4c,0x01,0x0a,0x55,0x01,0x0c,0x5f,0x01,0x0d,0x6a,0x01,0x0e,0x75,0x01,0x10,0x80,0x02,0x11,0x8c,0x02,0x13,0x98,0x02,0x14,0xa5,0x02,0x16,0xb3,0x02,0x18,0xc1,0x03,0x1a,0xd0,0x03,0x1c,0xdf,0x03,0x1d,0xee,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0xff,0x14,0x35,0xff,0x1c,0x3c,0xff,0x24,0x43,0xff,0x2c,0x4b,0xff,0x34,0x52,0xff,0x3c,0x59,0xff,0x44,0x60,0xff,0x4c,0x67,0xff,0x54,0x6f,0xff,0x5d,0x76,0xff,0x65,0x7d,0xff,0x6d,0x84,0xff,0x75,0x8b,0xff,0x7d,0x93,0xff,0x85, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x3b,0x00,0x01,0x08,0x00,0x00,0x09,0x00,0x00,0x09,0x00,0x00,0x0a,0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x01,0x0b,0x00,0x00,0x0c,0x00,0x00,0x0c,0x00,0x00,0x0d,0x00,0x00,0x0e,0x00,0x01,0x0e,0x00,0x00,0x0f,0x00,0x00,0x0f,0x00,0xfd,0x21,0x00,0x00,0x00,0x00,0x0c,0xff,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x09,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08, ] +expected = [ 0x00,0x3b,0x00,0x01,0x43,0x00,0x01,0x4c,0x00,0x01,0x55,0x00,0x01,0x5f,0x00,0x01,0x6a,0x00,0x01,0x75,0x00,0x02,0x80,0x00,0x02,0x8c,0x00,0x02,0x98,0x00,0x02,0xa5,0x00,0x02,0xb3,0x00,0x03,0xc1,0x00,0x03,0xd0,0x00,0x03,0xdf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xff,0x08,0x14,0xff,0x10,0x1c,0xff,0x18,0x24,0xff,0x20,0x2c,0xff,0x29,0x34,0xff,0x31,0x3c,0xff,0x39,0x44,0xff,0x41,0x4c,0xff,0x4a,0x54,0xff,0x52,0x5d,0xff,0x5a,0x65,0xff,0x62,0x6d,0xff,0x6a,0x75,0xff,0x73,0x7d,0xff,0x7b, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x34,0x06,0x00,0x07,0x01,0x01,0x08,0x01,0x00,0x09,0x01,0x00,0x09,0x01,0x00,0x0a,0x01,0x00,0x0b,0x01,0x00,0x0b,0x02,0x01,0x0b,0x01,0x00,0x0c,0x02,0x00,0x0c,0x01,0x00,0x0d,0x02,0x00,0x0e,0x01,0x01,0x0e,0x02,0x00,0x0f,0x02,0xfd,0x30,0xe7,0x00,0x00,0x00,0x04,0xff,0x1f,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x08,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x08,0x08,0x00,0x07,0x09,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x07,0x08,0x00,0x08, ] +expected = [ 0x00,0x34,0x06,0x00,0x3b,0x07,0x01,0x43,0x08,0x01,0x4c,0x09,0x01,0x55,0x0a,0x01,0x5f,0x0b,0x01,0x6a,0x0c,0x01,0x75,0x0e,0x02,0x80,0x0f,0x02,0x8c,0x11,0x02,0x98,0x12,0x02,0xa5,0x14,0x02,0xb3,0x15,0x03,0xc1,0x17,0x03,0xd0,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xff,0x1f,0x0c,0xff,0x26,0x14,0xff,0x2d,0x1c,0xff,0x34,0x24,0xff,0x3b,0x2c,0xff,0x43,0x34,0xff,0x4a,0x3c,0xff,0x51,0x44,0xff,0x58,0x4c,0xff,0x60,0x54,0xff,0x67,0x5d,0xff,0x6e,0x65,0xff,0x75,0x6d,0xff,0x7c,0x75,0xff,0x84, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x2c,0x0b,0x00,0x08,0x01,0x00,0x07,0x02,0x00,0x08,0x02,0x00,0x09,0x02,0x01,0x09,0x03,0x00,0x0a,0x02,0x00,0x0b,0x03,0x00,0x0b,0x02,0x00,0x0b,0x03,0x00,0x0c,0x03,0x00,0x0c,0x03,0x00,0x0d,0x03,0x01,0x0e,0x04,0x00,0x0e,0x03,0xfe,0x3f,0xd1,0x00,0x00,0x00,0x02,0xee,0x3b,0x01,0x11,0x04,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x07,0x08,0x00,0x06,0x09,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x06,0x08,0x00,0x07,0x08,0x00,0x06,0x08,0x00,0x06, ] +expected = [ 0x00,0x2c,0x0b,0x00,0x34,0x0c,0x00,0x3b,0x0e,0x00,0x43,0x10,0x00,0x4c,0x12,0x01,0x55,0x15,0x01,0x5f,0x17,0x01,0x6a,0x1a,0x01,0x75,0x1c,0x01,0x80,0x1f,0x01,0x8c,0x22,0x01,0x98,0x25,0x01,0xa5,0x28,0x02,0xb3,0x2c,0x02,0xc1,0x2f,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xee,0x3b,0x03,0xff,0x3f,0x0b,0xff,0x45,0x13,0xff,0x4b,0x1b,0xff,0x51,0x23,0xff,0x57,0x2b,0xff,0x5d,0x33,0xff,0x64,0x3b,0xff,0x6a,0x44,0xff,0x70,0x4c,0xff,0x76,0x54,0xff,0x7c,0x5c,0xff,0x83,0x64,0xff,0x89,0x6c,0xff,0x8f, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x26,0x0e,0x00,0x06,0x02,0x00,0x08,0x03,0x00,0x07,0x03,0x00,0x08,0x03,0x00,0x09,0x03,0x01,0x09,0x04,0x00,0x0a,0x03,0x00,0x0b,0x04,0x00,0x0b,0x04,0x00,0x0b,0x04,0x00,0x0c,0x05,0x00,0x0c,0x04,0x00,0x0d,0x05,0x01,0x0e,0x05,0xfe,0x4d,0xbe,0x00,0x00,0x00,0x02,0xdf,0x53,0x00,0x0f,0x05,0x01,0x11,0x07,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x06,0x09,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05,0x08,0x00,0x05, ] +expected = [ 0x00,0x26,0x0e,0x00,0x2c,0x10,0x00,0x34,0x13,0x00,0x3b,0x16,0x00,0x43,0x19,0x00,0x4c,0x1c,0x01,0x55,0x20,0x01,0x5f,0x23,0x01,0x6a,0x27,0x01,0x75,0x2b,0x01,0x80,0x2f,0x01,0x8c,0x34,0x01,0x98,0x38,0x01,0xa5,0x3d,0x02,0xb3,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xdf,0x53,0x02,0xee,0x58,0x03,0xff,0x5f,0x0b,0xff,0x64,0x13,0xff,0x69,0x1b,0xff,0x6e,0x23,0xff,0x73,0x2b,0xff,0x78,0x33,0xff,0x7d,0x3b,0xff,0x83,0x44,0xff,0x88,0x4c,0xff,0x8d,0x54,0xff,0x92,0x5c,0xff,0x97,0x64,0xff,0x9c, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x20,0x0f,0x00,0x06,0x04,0x00,0x06,0x03,0x00,0x08,0x03,0x00,0x07,0x04,0x00,0x08,0x04,0x00,0x09,0x05,0x01,0x09,0x04,0x00,0x0a,0x05,0x00,0x0b,0x05,0x00,0x0b,0x06,0x00,0x0b,0x05,0x00,0x0c,0x06,0x00,0x0c,0x07,0x00,0x0d,0x06,0xff,0x5b,0xae,0x00,0x00,0x00,0x02,0xd0,0x67,0x00,0x0f,0x08,0x00,0x0f,0x07,0x01,0x11,0x09,0x08,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x09,0x00,0x05,0x08,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04, ] +expected = [ 0x00,0x20,0x0f,0x00,0x26,0x13,0x00,0x2c,0x16,0x00,0x34,0x19,0x00,0x3b,0x1d,0x00,0x43,0x21,0x00,0x4c,0x26,0x01,0x55,0x2a,0x01,0x5f,0x2f,0x01,0x6a,0x34,0x01,0x75,0x3a,0x01,0x80,0x3f,0x01,0x8c,0x45,0x01,0x98,0x4c,0x01,0xa5,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xd0,0x67,0x02,0xdf,0x6f,0x02,0xee,0x76,0x03,0xff,0x7f,0x0b,0xff,0x83,0x13,0xff,0x87,0x1b,0xff,0x8b,0x23,0xff,0x8f,0x2b,0xff,0x93,0x33,0xff,0x97,0x3b,0xff,0x9b,0x44,0xff,0xa0,0x4c,0xff,0xa4,0x54,0xff,0xa8,0x5c,0xff,0xac, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x1a,0x10,0x00,0x06,0x04,0x00,0x06,0x03,0x00,0x06,0x04,0x00,0x08,0x05,0x00,0x07,0x05,0x00,0x08,0x05,0x00,0x09,0x05,0x01,0x09,0x06,0x00,0x0a,0x06,0x00,0x0b,0x07,0x00,0x0b,0x06,0x00,0x0b,0x08,0x00,0x0c,0x07,0x00,0x0c,0x08,0xff,0x68,0xa1,0x00,0x00,0x00,0x02,0xc1,0x78,0x00,0x0f,0x09,0x00,0x0f,0x0a,0x00,0x0f,0x09,0x01,0x11,0x0b,0x08,0x00,0x03,0x08,0x00,0x03,0x08,0x00,0x03,0x08,0x00,0x03,0x08,0x00,0x03,0x08,0x00,0x03,0x08,0x00,0x03,0x09,0x00,0x03,0x08,0x00,0x03,0x08,0x00,0x03, ] +expected = [ 0x00,0x1a,0x10,0x00,0x20,0x14,0x00,0x26,0x17,0x00,0x2c,0x1b,0x00,0x34,0x20,0x00,0x3b,0x25,0x00,0x43,0x2a,0x00,0x4c,0x2f,0x01,0x55,0x35,0x01,0x5f,0x3b,0x01,0x6a,0x42,0x01,0x75,0x48,0x01,0x80,0x50,0x01,0x8c,0x57,0x01,0x98,0x5f,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xc1,0x78,0x02,0xd0,0x81,0x02,0xdf,0x8b,0x02,0xee,0x94,0x03,0xff,0x9f,0x0b,0xff,0xa2,0x13,0xff,0xa5,0x1b,0xff,0xa8,0x23,0xff,0xab,0x2b,0xff,0xae,0x33,0xff,0xb1,0x3b,0xff,0xb4,0x44,0xff,0xb7,0x4c,0xff,0xba,0x54,0xff,0xbd, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x15,0x10,0x00,0x05,0x03,0x00,0x06,0x05,0x00,0x06,0x04,0x00,0x06,0x05,0x00,0x08,0x05,0x00,0x07,0x06,0x00,0x08,0x06,0x00,0x09,0x07,0x00,0x09,0x07,0x00,0x0a,0x07,0x00,0x0b,0x08,0x00,0x96,0xb1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xdf,0xa7,0x00,0x0f,0x0b,0x01,0x11,0x0d,0x08,0x00,0x02,0x08,0x00,0x02,0x08,0x00,0x02,0x08,0x00,0x02,0x08,0x00,0x02,0x08,0x00,0x02,0x09,0x00,0x02,0x08,0x00,0x02,0x08,0x00,0x02, ] +expected = [ 0x00,0x15,0x10,0x00,0x1a,0x13,0x00,0x20,0x18,0x00,0x26,0x1c,0x00,0x2c,0x21,0x00,0x34,0x26,0x00,0x3b,0x2c,0x00,0x43,0x32,0x00,0x4c,0x39,0x00,0x55,0x40,0x00,0x5f,0x47,0x00,0x6a,0x4f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xdf,0xa7,0x01,0xee,0xb2,0x02,0xff,0xbf,0x0a,0xff,0xc1,0x12,0xff,0xc3,0x1a,0xff,0xc5,0x22,0xff,0xc7,0x2a,0xff,0xc9,0x32,0xff,0xcb,0x3b,0xff,0xcd,0x43,0xff,0xcf,0x4b,0xff,0xd1, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x10,0x0e,0x00,0x05,0x04,0x00,0x05,0x05,0x00,0x06,0x05,0x00,0x06,0x05,0x00,0x06,0x06,0x00,0x08,0x06,0x00,0x07,0x07,0x00,0x08,0x07,0x00,0x09,0x08,0x00,0x09,0x08,0x00,0x0a,0x08,0x00,0xa1,0xad,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xd0,0xb5,0x00,0x0f,0x0e,0x00,0x0f,0x0d,0x01,0x11,0x0f,0x08,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x01,0x09,0x00,0x01,0x08,0x00,0x01, ] +expected = [ 0x00,0x10,0x0e,0x00,0x15,0x12,0x00,0x1a,0x17,0x00,0x20,0x1c,0x00,0x26,0x21,0x00,0x2c,0x27,0x00,0x34,0x2d,0x00,0x3b,0x34,0x00,0x43,0x3b,0x00,0x4c,0x43,0x00,0x55,0x4b,0x00,0x5f,0x53,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xd0,0xb5,0x01,0xdf,0xc3,0x01,0xee,0xd0,0x02,0xff,0xdf,0x0a,0xff,0xe0,0x12,0xff,0xe1,0x1a,0xff,0xe2,0x22,0xff,0xe3,0x2a,0xff,0xe4,0x32,0xff,0xe5,0x3b,0xff,0xe6,0x43,0xff,0xe7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x0d,0x0d,0x00,0x03,0x03,0x00,0x05,0x05,0x00,0x05,0x05,0x00,0x06,0x06,0x00,0x06,0x06,0x00,0x06,0x06,0x00,0x08,0x08,0x00,0x07,0x07,0x00,0x08,0x08,0x00,0x09,0x09,0x00,0x09,0x09,0x00,0x0a,0x0a,0x00,0x0b,0x0b,0x00,0x0b,0x0b,0x01,0x0b,0x0b,0x00,0x0c,0x0c,0x00,0x0c,0x0c,0x00,0x0d,0x0d,0x00,0x0e,0x0e,0x00,0x0e,0x0e,0x00,0x0f,0x0f,0x00,0x0f,0x0f,0x00,0x0f,0x0f,0x01,0x11,0x11,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x09,0x00,0x00, ] +expected = [ 0x00,0x0d,0x0d,0x00,0x10,0x10,0x00,0x15,0x15,0x00,0x1a,0x1a,0x00,0x20,0x20,0x00,0x26,0x26,0x00,0x2c,0x2c,0x00,0x34,0x34,0x00,0x3b,0x3b,0x00,0x43,0x43,0x00,0x4c,0x4c,0x00,0x55,0x55,0x00,0x5f,0x5f,0x00,0x6a,0x6a,0x00,0x75,0x75,0x01,0x80,0x80,0x01,0x8c,0x8c,0x01,0x98,0x98,0x01,0xa5,0xa5,0x01,0xb3,0xb3,0x01,0xc1,0xc1,0x01,0xd0,0xd0,0x01,0xdf,0xdf,0x01,0xee,0xee,0x02,0xff,0xff,0x0a,0xff,0xff,0x12,0xff,0xff,0x1a,0xff,0xff,0x22,0xff,0xff,0x2a,0xff,0xff,0x32,0xff,0xff,0x3b,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x08,0x09,0x00,0x03,0x04,0x00,0x03,0x03,0x00,0x04,0x05,0x00,0x05,0x05,0x00,0x05,0x06,0x00,0x05,0x06,0x00,0x06,0x06,0x00,0x06,0x08,0x00,0x07,0x07,0x00,0x07,0x08,0x00,0x08,0x09,0x00,0x08,0x09,0x00,0x09,0x0a,0x00,0x09,0x0b,0x00,0x09,0x0b,0x00,0x0a,0x0b,0x00,0x0b,0x0c,0x00,0x0b,0x0c,0x00,0x0b,0x0d,0x00,0x0c,0x0e,0x00,0x0c,0x0e,0x00,0x0d,0x0f,0x00,0x0e,0x0f,0x00,0x0d,0x0f,0x01,0x0f,0x11,0x08,0x01,0x00,0x08,0x01,0x00,0x08,0x01,0x00,0x08,0x01,0x00,0x08,0x00,0x00,0x09,0x02,0x00, ] +expected = [ 0x00,0x08,0x09,0x00,0x0b,0x0d,0x00,0x0e,0x10,0x00,0x12,0x15,0x00,0x17,0x1a,0x00,0x1c,0x20,0x00,0x21,0x26,0x00,0x27,0x2c,0x00,0x2d,0x34,0x00,0x34,0x3b,0x00,0x3b,0x43,0x00,0x43,0x4c,0x00,0x4b,0x55,0x00,0x54,0x5f,0x00,0x5d,0x6a,0x00,0x66,0x75,0x00,0x70,0x80,0x00,0x7b,0x8c,0x00,0x86,0x98,0x00,0x91,0xa5,0x00,0x9d,0xb3,0x00,0xa9,0xc1,0x00,0xb6,0xd0,0x00,0xc4,0xdf,0x00,0xd1,0xee,0x01,0xe0,0xff,0x09,0xe1,0xff,0x11,0xe2,0xff,0x19,0xe3,0xff,0x21,0xe4,0xff,0x29,0xe4,0xff,0x32,0xe6,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x04,0x06,0x00,0x03,0x03,0x00,0x02,0x04,0x00,0x03,0x03,0x00,0x04,0x05,0x00,0x03,0x05,0x00,0x05,0x06,0x00,0x04,0x06,0x00,0x05,0x06,0x00,0x06,0x08,0x00,0x05,0x07,0x00,0x07,0x08,0x00,0x06,0x09,0x00,0x07,0x09,0x00,0x08,0x0a,0x00,0x07,0x0b,0x00,0x09,0x0b,0x00,0x08,0x0b,0x00,0x09,0x0c,0x00,0x0a,0x0c,0x00,0x09,0x0d,0x00,0x0b,0x0e,0x00,0x0a,0x0e,0x00,0x0b,0x0f,0x00,0x0c,0x0f,0x00,0x0b,0x0f,0x01,0x0d,0x11,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00, ] +expected = [ 0x00,0x04,0x06,0x00,0x07,0x09,0x00,0x09,0x0d,0x00,0x0c,0x10,0x00,0x10,0x15,0x00,0x13,0x1a,0x00,0x18,0x20,0x00,0x1c,0x26,0x00,0x21,0x2c,0x00,0x27,0x34,0x00,0x2c,0x3b,0x00,0x33,0x43,0x00,0x39,0x4c,0x00,0x40,0x55,0x00,0x48,0x5f,0x00,0x4f,0x6a,0x00,0x58,0x75,0x00,0x60,0x80,0x00,0x69,0x8c,0x00,0x73,0x98,0x00,0x7c,0xa5,0x00,0x87,0xb3,0x00,0x91,0xc1,0x00,0x9c,0xd0,0x00,0xa8,0xdf,0x00,0xb3,0xee,0x01,0xc0,0xff,0x09,0xc2,0xff,0x11,0xc4,0xff,0x19,0xc6,0xff,0x21,0xc8,0xff,0x29,0xca,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x02,0x04,0x00,0x02,0x02,0x00,0x01,0x03,0x00,0x03,0x04,0x00,0x02,0x03,0x00,0x03,0x05,0x00,0x03,0x05,0x00,0x04,0x06,0x00,0x03,0x06,0x00,0x05,0x06,0x00,0x04,0x08,0x00,0x05,0x07,0x00,0x05,0x08,0x00,0x06,0x09,0x00,0x05,0x09,0x00,0x07,0x0a,0x00,0x06,0x0b,0x00,0x07,0x0b,0x00,0x07,0x0b,0x00,0x08,0x0c,0x00,0x07,0x0c,0x00,0x09,0x0d,0x00,0x08,0x0e,0x00,0x09,0x0e,0x00,0x09,0x0f,0x00,0x0a,0x0f,0x00,0x09,0x0f,0x01,0x0b,0x11,0x08,0x03,0x00,0x08,0x03,0x00,0x08,0x03,0x00,0x08,0x03,0x00, ] +expected = [ 0x00,0x02,0x04,0x00,0x04,0x06,0x00,0x05,0x09,0x00,0x08,0x0d,0x00,0x0a,0x10,0x00,0x0d,0x15,0x00,0x10,0x1a,0x00,0x14,0x20,0x00,0x17,0x26,0x00,0x1c,0x2c,0x00,0x20,0x34,0x00,0x25,0x3b,0x00,0x2a,0x43,0x00,0x30,0x4c,0x00,0x35,0x55,0x00,0x3c,0x5f,0x00,0x42,0x6a,0x00,0x49,0x75,0x00,0x50,0x80,0x00,0x58,0x8c,0x00,0x5f,0x98,0x00,0x68,0xa5,0x00,0x70,0xb3,0x00,0x79,0xc1,0x00,0x82,0xd0,0x00,0x8c,0xdf,0x00,0x95,0xee,0x01,0xa0,0xff,0x09,0xa3,0xff,0x11,0xa6,0xff,0x19,0xa9,0xff,0x21,0xac,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x01,0x02,0x00,0x01,0x02,0x00,0x01,0x02,0x00,0x01,0x03,0x00,0x02,0x04,0x00,0x02,0x03,0x00,0x02,0x05,0x00,0x03,0x05,0x00,0x03,0x06,0x00,0x03,0x06,0x00,0x03,0x06,0x00,0x04,0x08,0x00,0x03,0x07,0x00,0x05,0x08,0x00,0x04,0x09,0x00,0x05,0x09,0x00,0x05,0x0a,0x00,0x05,0x0b,0x00,0x05,0x0b,0x00,0x06,0x0b,0x00,0x06,0x0c,0x00,0x06,0x0c,0x00,0x07,0x0d,0x00,0x07,0x0e,0x00,0x07,0x0e,0x00,0x07,0x0f,0x00,0x08,0x0f,0x00,0x07,0x0f,0x01,0x09,0x11,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00, ] +expected = [ 0x00,0x01,0x02,0x00,0x02,0x04,0x00,0x03,0x06,0x00,0x04,0x09,0x00,0x06,0x0d,0x00,0x08,0x10,0x00,0x0a,0x15,0x00,0x0d,0x1a,0x00,0x10,0x20,0x00,0x13,0x26,0x00,0x16,0x2c,0x00,0x1a,0x34,0x00,0x1d,0x3b,0x00,0x22,0x43,0x00,0x26,0x4c,0x00,0x2b,0x55,0x00,0x30,0x5f,0x00,0x35,0x6a,0x00,0x3a,0x75,0x00,0x40,0x80,0x00,0x46,0x8c,0x00,0x4c,0x98,0x00,0x53,0xa5,0x00,0x5a,0xb3,0x00,0x61,0xc1,0x00,0x68,0xd0,0x00,0x70,0xdf,0x00,0x77,0xee,0x01,0x80,0xff,0x09,0x84,0xff,0x11,0x88,0xff,0x19,0x8c,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x02,0x00,0x01,0x02,0x00,0x01,0x03,0x00,0x01,0x04,0x00,0x02,0x03,0x00,0x02,0x05,0x00,0x01,0x05,0x00,0x03,0x06,0x00,0x02,0x06,0x00,0x02,0x06,0x00,0x03,0x08,0x00,0x03,0x07,0x00,0x03,0x08,0x00,0x03,0x09,0x00,0x04,0x09,0x00,0x04,0x0a,0x00,0x03,0x0b,0x00,0x05,0x0b,0x00,0x04,0x0b,0x00,0x04,0x0c,0x00,0x05,0x0c,0x00,0x05,0x0d,0x00,0x05,0x0e,0x00,0x05,0x0e,0x00,0x06,0x0f,0x00,0x06,0x0f,0x00,0x05,0x0f,0x00,0x07,0x11,0x08,0x05,0x00,0x08,0x05,0x00, ] +expected = [ 0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x01,0x04,0x00,0x02,0x06,0x00,0x03,0x09,0x00,0x04,0x0d,0x00,0x06,0x10,0x00,0x08,0x15,0x00,0x09,0x1a,0x00,0x0c,0x20,0x00,0x0e,0x26,0x00,0x10,0x2c,0x00,0x13,0x34,0x00,0x16,0x3b,0x00,0x19,0x43,0x00,0x1c,0x4c,0x00,0x20,0x55,0x00,0x24,0x5f,0x00,0x27,0x6a,0x00,0x2c,0x75,0x00,0x30,0x80,0x00,0x34,0x8c,0x00,0x39,0x98,0x00,0x3e,0xa5,0x00,0x43,0xb3,0x00,0x48,0xc1,0x00,0x4e,0xd0,0x00,0x54,0xdf,0x00,0x59,0xee,0x00,0x60,0xff,0x08,0x65,0xff,0x10,0x6a,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x02,0x00,0x00,0x02,0x00,0x01,0x03,0x00,0x01,0x04,0x00,0x01,0x03,0x00,0x01,0x05,0x00,0x01,0x05,0x00,0x02,0x06,0x00,0x01,0x06,0x00,0x02,0x06,0x00,0x02,0x08,0x00,0x01,0x07,0x00,0x03,0x08,0x00,0x02,0x09,0x00,0x02,0x09,0x00,0x03,0x0a,0x00,0x02,0x0b,0x00,0x03,0x0b,0x00,0x03,0x0b,0x00,0x03,0x0c,0x00,0x03,0x0c,0x00,0x03,0x0d,0x00,0x04,0x0e,0x00,0x03,0x0e,0x00,0x04,0x0f,0x00,0x04,0x0f,0x00,0x03,0x0f,0x00,0x05,0x11,0x08,0x06,0x00, ] +expected = [ 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x01,0x04,0x00,0x01,0x06,0x00,0x02,0x09,0x00,0x03,0x0d,0x00,0x04,0x10,0x00,0x05,0x15,0x00,0x06,0x1a,0x00,0x08,0x20,0x00,0x09,0x26,0x00,0x0b,0x2c,0x00,0x0d,0x34,0x00,0x0e,0x3b,0x00,0x11,0x43,0x00,0x13,0x4c,0x00,0x15,0x55,0x00,0x18,0x5f,0x00,0x1a,0x6a,0x00,0x1d,0x75,0x00,0x20,0x80,0x00,0x23,0x8c,0x00,0x26,0x98,0x00,0x29,0xa5,0x00,0x2d,0xb3,0x00,0x30,0xc1,0x00,0x34,0xd0,0x00,0x38,0xdf,0x00,0x3b,0xee,0x00,0x40,0xff,0x08,0x46,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 1 +data = [ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x01,0x03,0x00,0x00,0x04,0x00,0x01,0x03,0x00,0x00,0x05,0x00,0x01,0x05,0x00,0x01,0x06,0x00,0x00,0x06,0x00,0x01,0x06,0x00,0x01,0x08,0x00,0x01,0x07,0x00,0x01,0x08,0x00,0x01,0x09,0x00,0x01,0x09,0x00,0x02,0x0a,0x00,0x01,0x0b,0x00,0x01,0x0b,0x00,0x02,0x0b,0x00,0x01,0x0c,0x00,0x02,0x0c,0x00,0x01,0x0d,0x00,0x02,0x0e,0x00,0x02,0x0e,0x00,0x02,0x0f,0x00,0x02,0x0f,0x00,0x01,0x0f,0x00,0x03,0x11, ] +expected = [ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x06,0x00,0x01,0x09,0x00,0x01,0x0d,0x00,0x02,0x10,0x00,0x02,0x15,0x00,0x03,0x1a,0x00,0x04,0x20,0x00,0x04,0x26,0x00,0x05,0x2c,0x00,0x06,0x34,0x00,0x07,0x3b,0x00,0x08,0x43,0x00,0x09,0x4c,0x00,0x0a,0x55,0x00,0x0c,0x5f,0x00,0x0d,0x6a,0x00,0x0e,0x75,0x00,0x10,0x80,0x00,0x11,0x8c,0x00,0x13,0x98,0x00,0x14,0xa5,0x00,0x16,0xb3,0x00,0x18,0xc1,0x00,0x1a,0xd0,0x00,0x1c,0xdf,0x00,0x1d,0xee,0x00,0x20,0xff, ] +PASS: /Users/henddher/Documents/libpng/libpng-1.6.34/libpng-xcode-project/xcode/,/libpng/Build/Products/Debug/libpng-test.xctest/Contents/Resources/f01n2c08.png diff --git a/tests/f02n2c08.png.log b/tests/f02n2c08.png.log new file mode 100644 index 0000000..5aab553 --- /dev/null +++ b/tests/f02n2c08.png.log @@ -0,0 +1,289 @@ +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xff,0x00,0x08,0xff,0x08,0x0f,0xff,0x10,0x17,0xff,0x18,0x1f,0xff,0x20,0x27,0xff,0x29,0x2f,0xff,0x31,0x37,0xff,0x39,0x3f,0xff,0x41,0x47,0xff,0x4a,0x4f,0xff,0x52,0x57,0xff,0x5a,0x5f,0xff,0x62,0x67,0xff,0x6a,0x6f,0xff,0x73,0x77,0xff,0x7b,0x7f,0xff,0x83,0x87,0xff,0x8b,0x8f,0xff,0x94,0x97,0xff,0x9c,0x9f,0xff,0xa4,0xa7,0xff,0xac,0xaf,0xff,0xb4,0xb7,0xff,0xbd,0xbf,0xff,0xc5,0xc7,0xff,0xcd,0xcf,0xff,0xd5,0xd7,0xff,0xde,0xdf,0xff,0xe6,0xe7,0xff,0xee,0xef,0xff,0xf6,0xf7,0xff,0xff,0xff, ] +expected = [ 0xff,0x00,0x08,0xff,0x08,0x0f,0xff,0x10,0x17,0xff,0x18,0x1f,0xff,0x20,0x27,0xff,0x29,0x2f,0xff,0x31,0x37,0xff,0x39,0x3f,0xff,0x41,0x47,0xff,0x4a,0x4f,0xff,0x52,0x57,0xff,0x5a,0x5f,0xff,0x62,0x67,0xff,0x6a,0x6f,0xff,0x73,0x77,0xff,0x7b,0x7f,0xff,0x83,0x87,0xff,0x8b,0x8f,0xff,0x94,0x97,0xff,0x9c,0x9f,0xff,0xa4,0xa7,0xff,0xac,0xaf,0xff,0xb4,0xb7,0xff,0xbd,0xbf,0xff,0xc5,0xc7,0xff,0xcd,0xcf,0xff,0xd5,0xd7,0xff,0xde,0xdf,0xff,0xe6,0xe7,0xff,0xee,0xef,0xff,0xf6,0xf7,0xff,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xef,0x1d,0xff,0x00,0x17,0xf9,0x00,0x16,0xf8,0x00,0x15,0xf8,0x00,0x14,0xf8,0x00,0x12,0xf8,0x00,0x12,0xf8,0x00,0x11,0xf8,0x00,0x10,0xf8,0x00,0x0e,0xf8,0x00,0x0e,0xf8,0x00,0x0d,0xf8,0x00,0x0c,0xf8,0x00,0x0b,0xf8,0x00,0x09,0xf8,0x00,0x09,0xf8,0x00,0x08,0xf8,0x00,0x07,0xf8,0x00,0x05,0xf8,0x00,0x05,0xf8,0x00,0x04,0xf8,0x00,0x03,0xf8,0x00,0x02,0xf8,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0xff,0xf8,0x00,0xfe,0xf8,0x00,0xfc,0xf8,0x00,0xfc,0xf8,0x00,0xfb,0xf8,0x00,0xfa,0xf8,0x00,0xf8,0xf8, ] +expected = [ 0xee,0x1d,0x07,0xff,0x1f,0x08,0xff,0x26,0x0f,0xff,0x2d,0x17,0xff,0x34,0x1f,0xff,0x3b,0x27,0xff,0x43,0x2f,0xff,0x4a,0x37,0xff,0x51,0x3f,0xff,0x58,0x47,0xff,0x60,0x4f,0xff,0x67,0x57,0xff,0x6e,0x5f,0xff,0x75,0x67,0xff,0x7c,0x6f,0xff,0x84,0x77,0xff,0x8b,0x7f,0xff,0x92,0x87,0xff,0x99,0x8f,0xff,0xa1,0x97,0xff,0xa8,0x9f,0xff,0xaf,0xa7,0xff,0xb6,0xaf,0xff,0xbd,0xb7,0xff,0xc5,0xbf,0xff,0xcc,0xc7,0xff,0xd3,0xcf,0xff,0xda,0xd7,0xff,0xe2,0xdf,0xff,0xe9,0xe7,0xff,0xf0,0xef,0xff,0xf7,0xf7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xf1,0x1a,0x00,0xef,0x1c,0xff,0x00,0x19,0xf9,0x00,0x18,0xf8,0x00,0x17,0xf8,0x00,0x16,0xf8,0x00,0x14,0xf8,0x00,0x13,0xf8,0x00,0x13,0xf8,0x00,0x12,0xf8,0x00,0x10,0xf8,0x00,0x0f,0xf8,0x00,0x0e,0xf8,0x00,0x0e,0xf8,0x00,0x0d,0xf8,0x00,0x0b,0xf8,0x00,0x0a,0xf8,0x00,0x09,0xf8,0x00,0x09,0xf8,0x00,0x07,0xf8,0x00,0x06,0xf8,0x00,0x05,0xf8,0x00,0x04,0xf8,0x00,0x04,0xf8,0x00,0x02,0xf8,0x00,0x01,0xf8,0x00,0x00,0xf8,0x00,0xff,0xf8,0x00,0xfe,0xf8,0x00,0xfd,0xf8,0x00,0xfc,0xf8,0x00,0xfb,0xf8, ] +expected = [ 0xdf,0x37,0x07,0xee,0x3b,0x07,0xff,0x3f,0x08,0xff,0x45,0x0f,0xff,0x4b,0x17,0xff,0x51,0x1f,0xff,0x57,0x27,0xff,0x5d,0x2f,0xff,0x64,0x37,0xff,0x6a,0x3f,0xff,0x70,0x47,0xff,0x76,0x4f,0xff,0x7c,0x57,0xff,0x83,0x5f,0xff,0x89,0x67,0xff,0x8f,0x6f,0xff,0x95,0x77,0xff,0x9b,0x7f,0xff,0xa2,0x87,0xff,0xa8,0x8f,0xff,0xae,0x97,0xff,0xb4,0x9f,0xff,0xba,0xa7,0xff,0xc1,0xaf,0xff,0xc7,0xb7,0xff,0xcd,0xbf,0xff,0xd3,0xc7,0xff,0xd9,0xcf,0xff,0xe0,0xd7,0xff,0xe6,0xdf,0xff,0xec,0xe7,0xff,0xf2,0xef, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xf1,0x16,0xff,0xf1,0x18,0x00,0xef,0x19,0xff,0x00,0x1a,0xf9,0x00,0x19,0xf8,0x00,0x18,0xf8,0x00,0x17,0xf8,0x00,0x16,0xf8,0x00,0x14,0xf8,0x00,0x13,0xf8,0x00,0x13,0xf8,0x00,0x12,0xf8,0x00,0x11,0xf8,0x00,0x0f,0xf8,0x00,0x0e,0xf8,0x00,0x0d,0xf8,0x00,0x0d,0xf8,0x00,0x0c,0xf8,0x00,0x0a,0xf8,0x00,0x09,0xf8,0x00,0x08,0xf8,0x00,0x07,0xf8,0x00,0x07,0xf8,0x00,0x05,0xf8,0x00,0x04,0xf8,0x00,0x03,0xf8,0x00,0x02,0xf8,0x00,0x01,0xf8,0x00,0x00,0xf8,0x00,0xff,0xf8,0x00,0xfe,0xf8,0x00,0xfd,0xf8, ] +expected = [ 0xd0,0x4d,0x06,0xdf,0x53,0x07,0xee,0x58,0x07,0xff,0x5f,0x08,0xff,0x64,0x0f,0xff,0x69,0x17,0xff,0x6e,0x1f,0xff,0x73,0x27,0xff,0x78,0x2f,0xff,0x7d,0x37,0xff,0x83,0x3f,0xff,0x88,0x47,0xff,0x8d,0x4f,0xff,0x92,0x57,0xff,0x97,0x5f,0xff,0x9c,0x67,0xff,0xa2,0x6f,0xff,0xa7,0x77,0xff,0xac,0x7f,0xff,0xb1,0x87,0xff,0xb6,0x8f,0xff,0xbb,0x97,0xff,0xc1,0x9f,0xff,0xc6,0xa7,0xff,0xcb,0xaf,0xff,0xd0,0xb7,0xff,0xd5,0xbf,0xff,0xda,0xc7,0xff,0xe0,0xcf,0xff,0xe5,0xd7,0xff,0xea,0xdf,0xff,0xef,0xe7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xf1,0x13,0xff,0xf1,0x14,0xfe,0xf1,0x17,0xff,0xef,0x17,0xfe,0x00,0x1b,0xf8,0x00,0x1a,0xf8,0x00,0x19,0xf8,0x00,0x18,0xf8,0x00,0x17,0xf8,0x00,0x16,0xf7,0x00,0x14,0xf8,0x00,0x13,0xf8,0x00,0x13,0xf8,0x00,0x12,0xf7,0x00,0x11,0xf8,0x00,0x10,0xf8,0x00,0x0e,0xf8,0x00,0x0d,0xf7,0x00,0x0c,0xf8,0x00,0x0b,0xf8,0x00,0x0b,0xf8,0x00,0x0a,0xf7,0x00,0x08,0xf8,0x00,0x07,0xf8,0x00,0x06,0xf7,0x00,0x05,0xf7,0x00,0x04,0xf8,0x00,0x03,0xf8,0x00,0x02,0xf7,0x00,0x01,0xf7,0x00,0x00,0xf8,0x00,0xff,0xf8, ] +expected = [ 0xc1,0x60,0x05,0xd0,0x67,0x05,0xdf,0x6f,0x06,0xee,0x76,0x06,0xff,0x7f,0x07,0xff,0x83,0x0f,0xff,0x87,0x17,0xff,0x8b,0x1f,0xff,0x8f,0x27,0xff,0x93,0x2e,0xff,0x97,0x37,0xff,0x9b,0x3f,0xff,0xa0,0x47,0xff,0xa4,0x4e,0xff,0xa8,0x57,0xff,0xac,0x5f,0xff,0xb0,0x67,0xff,0xb4,0x6e,0xff,0xb8,0x77,0xff,0xbc,0x7f,0xff,0xc1,0x87,0xff,0xc5,0x8e,0xff,0xc9,0x97,0xff,0xcd,0x9f,0xff,0xd1,0xa6,0xff,0xd5,0xae,0xff,0xd9,0xb7,0xff,0xdd,0xbf,0xff,0xe2,0xc6,0xff,0xe6,0xce,0xff,0xea,0xd7,0xff,0xee,0xdf, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xf2,0x0f,0xff,0xf1,0x11,0x00,0xf1,0x12,0xff,0xf1,0x15,0x00,0xef,0x15,0xff,0x00,0x1c,0xf8,0x00,0x1b,0xf8,0x00,0x1a,0xf8,0x00,0x19,0xf8,0x00,0x18,0xf9,0x00,0x17,0xf7,0x00,0x16,0xf8,0x00,0x14,0xf8,0x00,0x13,0xf9,0x00,0x12,0xf7,0x00,0x11,0xf8,0x00,0x11,0xf8,0x00,0x10,0xf9,0x00,0x0f,0xf7,0x00,0x0e,0xf8,0x00,0x0c,0xf8,0x00,0x0b,0xf9,0x00,0x0a,0xf7,0x00,0x09,0xf8,0x00,0x08,0xf9,0x00,0x07,0xf8,0x00,0x07,0xf7,0x00,0x06,0xf8,0x00,0x04,0xf9,0x00,0x03,0xf8,0x00,0x02,0xf7,0x00,0x01,0xf8, ] +expected = [ 0xb3,0x6f,0x04,0xc1,0x78,0x05,0xd0,0x81,0x05,0xdf,0x8b,0x06,0xee,0x94,0x06,0xff,0x9f,0x07,0xff,0xa2,0x0f,0xff,0xa5,0x17,0xff,0xa8,0x1f,0xff,0xab,0x27,0xff,0xae,0x2e,0xff,0xb1,0x37,0xff,0xb4,0x3f,0xff,0xb7,0x47,0xff,0xba,0x4e,0xff,0xbd,0x57,0xff,0xc1,0x5f,0xff,0xc4,0x67,0xff,0xc7,0x6e,0xff,0xca,0x77,0xff,0xcd,0x7f,0xff,0xd0,0x87,0xff,0xd3,0x8e,0xff,0xd6,0x97,0xff,0xd9,0x9f,0xff,0xdc,0xa6,0xff,0xe0,0xae,0xff,0xe3,0xb7,0xff,0xe6,0xbf,0xff,0xe9,0xc6,0xff,0xec,0xce,0xff,0xef,0xd7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xf2,0x0d,0x00,0xf2,0x0e,0xff,0xf1,0x0f,0x00,0xf1,0x10,0xff,0xf1,0x13,0x00,0xef,0x13,0xff,0x00,0x1d,0xf8,0x00,0x1c,0xf8,0x00,0x1b,0xf8,0x00,0x1a,0xf8,0x00,0x19,0xf9,0x00,0x18,0xf7,0x00,0x17,0xf8,0x00,0x16,0xf8,0x00,0x15,0xf9,0x00,0x14,0xf7,0x00,0x12,0xf8,0x00,0x11,0xf8,0x00,0x10,0xf9,0x00,0x0f,0xf7,0x00,0x0e,0xf8,0x00,0x0d,0xf8,0x00,0x0d,0xf9,0x00,0x0c,0xf7,0x00,0x0b,0xf8,0x00,0x0a,0xf9,0x00,0x08,0xf8,0x00,0x07,0xf7,0x00,0x06,0xf8,0x00,0x05,0xf9,0x00,0x04,0xf8,0x00,0x03,0xf7, ] +expected = [ 0xa5,0x7c,0x04,0xb3,0x86,0x04,0xc1,0x90,0x05,0xd0,0x9b,0x05,0xdf,0xa7,0x06,0xee,0xb2,0x06,0xff,0xbf,0x07,0xff,0xc1,0x0f,0xff,0xc3,0x17,0xff,0xc5,0x1f,0xff,0xc7,0x27,0xff,0xc9,0x2e,0xff,0xcb,0x37,0xff,0xcd,0x3f,0xff,0xcf,0x47,0xff,0xd1,0x4e,0xff,0xd3,0x57,0xff,0xd5,0x5f,0xff,0xd7,0x67,0xff,0xd9,0x6e,0xff,0xdb,0x77,0xff,0xdd,0x7f,0xff,0xe0,0x87,0xff,0xe2,0x8e,0xff,0xe4,0x97,0xff,0xe6,0x9f,0xff,0xe8,0xa6,0xff,0xea,0xae,0xff,0xec,0xb7,0xff,0xee,0xbf,0xff,0xf0,0xc6,0xff,0xf2,0xce, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xf3,0x09,0x00,0xf2,0x0b,0x00,0xf2,0x0c,0xff,0xf1,0x0e,0x00,0xf1,0x0e,0xff,0xf1,0x11,0x00,0xef,0x11,0xff,0x00,0x1e,0xf8,0x00,0x1d,0xf8,0x00,0x1c,0xf8,0x00,0x1b,0xf8,0x00,0x1a,0xf9,0x00,0x19,0xf7,0x00,0x18,0xf8,0x00,0x17,0xf8,0x00,0x16,0xf9,0x00,0x15,0xf7,0x00,0x14,0xf8,0x00,0x13,0xf8,0x00,0x12,0xf9,0x00,0x11,0xf7,0x00,0x10,0xf8,0x00,0x0e,0xf8,0x00,0x0d,0xf9,0x00,0x0c,0xf7,0x00,0x0b,0xf8,0x00,0x0a,0xf9,0x00,0x09,0xf8,0x00,0x08,0xf7,0x00,0x07,0xf8,0x00,0x06,0xf9,0x00,0x05,0xf8, ] +expected = [ 0x98,0x85,0x04,0xa5,0x91,0x04,0xb3,0x9c,0x04,0xc1,0xa9,0x05,0xd0,0xb5,0x05,0xdf,0xc3,0x06,0xee,0xd0,0x06,0xff,0xdf,0x07,0xff,0xe0,0x0f,0xff,0xe1,0x17,0xff,0xe2,0x1f,0xff,0xe3,0x27,0xff,0xe4,0x2e,0xff,0xe5,0x37,0xff,0xe6,0x3f,0xff,0xe7,0x47,0xff,0xe8,0x4e,0xff,0xe9,0x57,0xff,0xea,0x5f,0xff,0xeb,0x67,0xff,0xec,0x6e,0xff,0xed,0x77,0xff,0xee,0x7f,0xff,0xef,0x87,0xff,0xf0,0x8e,0xff,0xf1,0x97,0xff,0xf2,0x9f,0xff,0xf3,0xa6,0xff,0xf4,0xae,0xff,0xf5,0xb7,0xff,0xf6,0xbf,0xff,0xf7,0xc6, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xf4,0x07,0xff,0xf3,0x07,0xff,0xf2,0x09,0xff,0xf2,0x0a,0xff,0xf1,0x0c,0xff,0xf1,0x0d,0xfe,0xf1,0x0f,0xff,0xef,0x0f,0xfe,0x00,0x1f,0xf7,0x00,0x1e,0xf7,0x00,0x1d,0xf7,0x00,0x1c,0xf7,0x00,0x1b,0xf8,0x01,0x1b,0xc9,0x01,0x1a,0xc1,0x01,0x19,0xb9,0x01,0x18,0xb2,0x01,0x17,0xa9,0x01,0x16,0xa1,0x00,0x14,0xf7,0x00,0x13,0xf8,0x00,0x12,0xf7,0x00,0x11,0xf7,0x00,0x10,0xf7,0x00,0x0f,0xf8,0x00,0x0e,0xf7,0x00,0x0d,0xf7,0x00,0x0c,0xf8,0x00,0x0b,0xf8,0x00,0x0a,0xf7,0x00,0x09,0xf7,0x00,0x08,0xf8, ] +expected = [ 0x8c,0x8c,0x03,0x98,0x98,0x03,0xa5,0xa5,0x03,0xb3,0xb3,0x04,0xc1,0xc1,0x04,0xd0,0xd0,0x04,0xdf,0xdf,0x05,0xee,0xee,0x05,0xff,0xff,0x06,0xff,0xff,0x0e,0xff,0xff,0x16,0xff,0xff,0x1e,0xff,0xff,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xff,0xff,0x66,0xff,0xff,0x6e,0xff,0xff,0x76,0xff,0xff,0x7e,0xff,0xff,0x86,0xff,0xff,0x8e,0xff,0xff,0x96,0xff,0xff,0x9e,0xff,0xff,0xa6,0xff,0xff,0xae,0xff,0xff,0xb6,0xff,0xff,0xbe, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xe4,0xf4,0x00,0xe3,0xf4,0x00,0xe1,0xf3,0x00,0xde,0xf2,0xff,0xdc,0xf2,0x00,0xd9,0xf1,0x00,0xd7,0xf1,0xff,0xd6,0xf1,0x00,0xd2,0xef,0xff,0xe1,0x00,0xf8,0xe2,0x00,0xf8,0xe3,0x00,0xf8,0x01,0x01,0xda,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xa2,0xec,0x00,0xf8,0xed,0x00,0xf8,0xed,0x00,0xf8,0xef,0x00,0xf8,0xf0,0x00,0xf8,0xf1,0x00,0xf8,0xf1,0x00,0xf8,0xf3,0x00,0xf8,0xf4,0x00,0xf8,0xf4,0x00,0xf8,0xf5,0x00,0xf8,0xf7,0x00,0xf8, ] +expected = [ 0x70,0x80,0x03,0x7b,0x8c,0x03,0x86,0x98,0x03,0x91,0xa5,0x03,0x9d,0xb3,0x04,0xa9,0xc1,0x04,0xb6,0xd0,0x04,0xc4,0xdf,0x05,0xd1,0xee,0x05,0xe0,0xff,0x06,0xe1,0xff,0x0e,0xe2,0xff,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xeb,0xff,0x5e,0xec,0xff,0x66,0xec,0xff,0x6e,0xee,0xff,0x76,0xef,0xff,0x7e,0xf0,0xff,0x86,0xf0,0xff,0x8e,0xf2,0xff,0x96,0xf3,0xff,0x9e,0xf3,0xff,0xa6,0xf4,0xff,0xae,0xf6,0xff,0xb6, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xe8,0xf5,0xff,0xe5,0xf4,0x00,0xe3,0xf4,0x00,0xe2,0xf3,0x00,0xdf,0xf2,0xff,0xde,0xf2,0x00,0xdb,0xf1,0x00,0xd8,0xf1,0xff,0xd7,0xf1,0x00,0xd3,0xef,0xff,0xdf,0x00,0xf8,0x1e,0x01,0xea,0x00,0x00,0x00,0x00,0x00,0x00,0xc8,0xff,0x26,0xca,0xff,0x2e,0xcc,0xff,0x36,0xce,0xff,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x01,0xa2,0xea,0x00,0xf8,0xec,0x00,0xf8,0xec,0x00,0xf8,0xed,0x00,0xf8,0xee,0x00,0xf8,0xf0,0x00,0xf8,0xf0,0x00,0xf8,0xf1,0x00,0xf8,0xf3,0x00,0xf8,0xf4,0x00,0xf8,0xf4,0x00,0xf8, ] +expected = [ 0x58,0x75,0x02,0x60,0x80,0x03,0x69,0x8c,0x03,0x73,0x98,0x03,0x7c,0xa5,0x03,0x87,0xb3,0x04,0x91,0xc1,0x04,0x9c,0xd0,0x04,0xa8,0xdf,0x05,0xb3,0xee,0x05,0xc0,0xff,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc8,0xff,0x26,0xca,0xff,0x2e,0xcc,0xff,0x36,0xce,0xff,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd6,0xff,0x5e,0xd8,0xff,0x66,0xda,0xff,0x6e,0xdc,0xff,0x76,0xde,0xff,0x7e,0xe0,0xff,0x86,0xe2,0xff,0x8e,0xe4,0xff,0x96,0xe6,0xff,0x9e,0xe8,0xff,0xa6,0xea,0xff,0xae, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xea,0xf5,0x00,0xe9,0xf5,0xff,0xe7,0xf4,0xff,0xe5,0xf4,0xff,0xe3,0xf3,0xff,0xe1,0xf2,0xff,0xdf,0xf2,0xff,0xdd,0xf1,0xff,0xda,0xf1,0xff,0xd9,0xf1,0xff,0xd5,0xef,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0xa6,0xff,0x15,0xe1,0x00,0xf7,0xe2,0x00,0xf7,0xe3,0x00,0xf7,0xe4,0x00,0xf7,0xb5,0xff,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0xe8,0x00,0xf7,0xe9,0x00,0xf7,0xea,0x00,0xf7,0xeb,0x00,0xf7,0xec,0x00,0xf7,0xed,0x00,0xf7,0xef,0x00,0xf8,0xf0,0x00,0xf8,0xf1,0x00,0xf8,0xf2,0x00,0xf8,0xf3,0x00,0xf8, ] +expected = [ 0x42,0x6a,0x02,0x49,0x75,0x02,0x50,0x80,0x02,0x58,0x8c,0x02,0x5f,0x98,0x02,0x68,0xa5,0x03,0x70,0xb3,0x03,0x79,0xc1,0x03,0x82,0xd0,0x04,0x8c,0xdf,0x04,0x95,0xee,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0xa6,0xff,0x15,0xa9,0xff,0x1d,0xac,0xff,0x25,0xaf,0xff,0x2d,0xb2,0xff,0x35,0xb5,0xff,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0xbe,0xff,0x55,0xc1,0xff,0x5d,0xc4,0xff,0x65,0xc7,0xff,0x6d,0xca,0xff,0x75,0xcd,0xff,0x7d,0xd1,0xff,0x86,0xd4,0xff,0x8e,0xd7,0xff,0x96,0xda,0xff,0x9e,0xdd,0xff,0xa6, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xee,0xf5,0xff,0xec,0xf5,0x00,0xea,0xf5,0x00,0xe8,0xf4,0x00,0xe7,0xf4,0x00,0xe4,0xf3,0xff,0xe3,0xf2,0x00,0xe1,0xf2,0x00,0xdf,0xf1,0xff,0xdc,0xf1,0x00,0xdb,0xf1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xde,0x00,0xf8,0xdf,0x00,0xf8,0xe0,0x00,0xf8,0xe1,0x00,0xf8,0xe2,0x00,0xf8,0xe3,0x00,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0x00,0xf8,0xe7,0x00,0xf8,0xe9,0x00,0xf8,0xea,0x00,0xf8,0xeb,0x00,0xf8,0xec,0x00,0xf8,0xec,0x00,0xf7,0xed,0x00,0xf8,0xee,0x00,0xf8,0xef,0x00,0xf8,0xf0,0x00,0xf8, ] +expected = [ 0x30,0x5f,0x01,0x35,0x6a,0x02,0x3a,0x75,0x02,0x40,0x80,0x02,0x46,0x8c,0x02,0x4c,0x98,0x02,0x53,0xa5,0x03,0x5a,0xb3,0x03,0x61,0xc1,0x03,0x68,0xd0,0x04,0x70,0xdf,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0xff,0x0d,0x88,0xff,0x15,0x8c,0xff,0x1d,0x90,0xff,0x25,0x94,0xff,0x2d,0x98,0xff,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0xa4,0xff,0x4d,0xa8,0xff,0x55,0xad,0xff,0x5d,0xb1,0xff,0x65,0xb5,0xff,0x6d,0xb9,0xff,0x75,0xbd,0xff,0x7d,0xc1,0xff,0x86,0xc5,0xff,0x8e,0xc9,0xff,0x96,0xcd,0xff,0x9e, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xf0,0xf6,0x00,0xef,0xf5,0xff,0xed,0xf5,0x00,0xec,0xf5,0x00,0xea,0xf4,0x00,0xe8,0xf4,0x00,0xe6,0xf3,0xff,0xe4,0xf2,0x00,0xe2,0xf2,0x00,0xe0,0xf1,0xff,0xde,0xf1,0x00,0x54,0xdf,0x04,0x59,0xee,0x04,0xdc,0x00,0xf8,0xdd,0x00,0xf8,0xde,0x00,0xf8,0xdf,0x00,0xf8,0xe0,0x00,0xf8,0xe1,0x00,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0xe5,0x00,0xf8,0xe6,0x00,0xf8,0xe6,0x00,0xf8,0xe7,0x00,0xf8,0xe8,0x00,0xf8,0xe9,0x00,0xf8,0xea,0x00,0xf8,0xeb,0x00,0xf7,0xed,0x00,0xf8,0xee,0x00,0xf8,0xef,0x00,0xf8, ] +expected = [ 0x20,0x55,0x01,0x24,0x5f,0x01,0x27,0x6a,0x02,0x2c,0x75,0x02,0x30,0x80,0x02,0x34,0x8c,0x02,0x39,0x98,0x02,0x3e,0xa5,0x03,0x43,0xb3,0x03,0x48,0xc1,0x03,0x4e,0xd0,0x04,0x54,0xdf,0x04,0x59,0xee,0x04,0x60,0xff,0x05,0x65,0xff,0x0d,0x6a,0xff,0x15,0x6f,0xff,0x1d,0x74,0xff,0x25,0x79,0xff,0x2d,0x00,0x00,0x00,0x00,0x00,0x00,0x89,0xff,0x45,0x8e,0xff,0x4d,0x93,0xff,0x55,0x98,0xff,0x5d,0x9d,0xff,0x65,0xa2,0xff,0x6d,0xa7,0xff,0x75,0xac,0xff,0x7d,0xb2,0xff,0x86,0xb7,0xff,0x8e,0xbc,0xff,0x96, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xf3,0xf7,0x00,0xf1,0xf6,0x00,0xf1,0xf5,0xff,0xee,0xf5,0x00,0xed,0xf5,0x00,0xec,0xf4,0x00,0xea,0xf4,0x00,0xe8,0xf3,0xff,0xe6,0xf2,0x00,0xe5,0xf2,0x00,0xe2,0xf1,0xff,0xe0,0xf1,0x00,0xdf,0xf1,0x00,0xdb,0xef,0xff,0xdb,0x00,0xf8,0xdc,0x00,0xf8,0xdd,0x00,0xf8,0xde,0x00,0xf8,0xdf,0x00,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0xe2,0x00,0xf8,0xe3,0x00,0xf8,0xe4,0x00,0xf8,0xe5,0x00,0xf8,0xe6,0x00,0xf8,0xe7,0x00,0xf8,0xe9,0x00,0xf8,0xea,0x00,0xf8,0xea,0x00,0xf7,0xeb,0x00,0xf8,0xec,0x00,0xf8, ] +expected = [ 0x13,0x4c,0x01,0x15,0x55,0x01,0x18,0x5f,0x01,0x1a,0x6a,0x02,0x1d,0x75,0x02,0x20,0x80,0x02,0x23,0x8c,0x02,0x26,0x98,0x02,0x29,0xa5,0x03,0x2d,0xb3,0x03,0x30,0xc1,0x03,0x34,0xd0,0x04,0x38,0xdf,0x04,0x3b,0xee,0x04,0x40,0xff,0x05,0x46,0xff,0x0d,0x4c,0xff,0x15,0x52,0xff,0x1d,0x58,0xff,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x6b,0xff,0x3d,0x71,0xff,0x45,0x77,0xff,0x4d,0x7d,0xff,0x55,0x83,0xff,0x5d,0x89,0xff,0x65,0x90,0xff,0x6d,0x96,0xff,0x75,0x9c,0xff,0x7d,0xa2,0xff,0x86,0xa8,0xff,0x8e, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xf5,0xf7,0x00,0xf4,0xf7,0x00,0xf2,0xf6,0x00,0xf2,0xf5,0xff,0xf0,0xf5,0xff,0xee,0xf5,0xff,0xed,0xf4,0x00,0xeb,0xf4,0x00,0xea,0xf3,0xff,0xe7,0xf2,0xff,0xe6,0xf2,0xff,0xe4,0xf1,0xff,0xe2,0xf1,0xff,0xe1,0xf1,0xff,0xdd,0xef,0xfe,0xda,0x00,0xf7,0xdb,0x00,0xf7,0xdc,0x00,0xf7,0xa8,0x01,0xdb,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0xf7,0xe1,0x00,0xf7,0xe2,0x00,0xf7,0xe3,0x00,0xf7,0xe4,0x00,0xf7,0xe6,0x00,0xf8,0xe6,0x00,0xf8,0xe7,0x00,0xf8,0xe8,0x00,0xf8,0xe9,0x00,0xf7,0xeb,0x00,0xf7, ] +expected = [ 0x08,0x43,0x01,0x09,0x4c,0x01,0x0a,0x55,0x01,0x0c,0x5f,0x01,0x0d,0x6a,0x01,0x0e,0x75,0x01,0x10,0x80,0x02,0x11,0x8c,0x02,0x13,0x98,0x02,0x14,0xa5,0x02,0x16,0xb3,0x02,0x18,0xc1,0x03,0x1a,0xd0,0x03,0x1c,0xdf,0x03,0x1d,0xee,0x03,0x20,0xff,0x04,0x27,0xff,0x0c,0x2e,0xff,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4b,0xff,0x34,0x52,0xff,0x3c,0x59,0xff,0x44,0x60,0xff,0x4c,0x67,0xff,0x54,0x6f,0xff,0x5d,0x76,0xff,0x65,0x7d,0xff,0x6d,0x84,0xff,0x75,0x8b,0xff,0x7d,0x93,0xff,0x85, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0xf8,0xf8,0xff,0xf8,0xf7,0xff,0xf7,0xf7,0xff,0xf5,0xf6,0xff,0xf4,0xf5,0xff,0xf3,0xf5,0xff,0xf1,0xf5,0xfe,0xf1,0xf4,0xfe,0xef,0xf4,0xfe,0xee,0xf3,0xfe,0xec,0xf2,0xfe,0xea,0xf2,0xfd,0xe9,0xf1,0xfd,0xe7,0xf1,0xfd,0xe6,0xf1,0xfd,0xe3,0xef,0xfc,0xdd,0x00,0xf4,0xd2,0x01,0xec,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0xff,0x20,0xe1,0x00,0xf5,0xe2,0x00,0xf5,0xe3,0x00,0xf5,0xe4,0x00,0xf5,0xe5,0x00,0xf6,0xe5,0x00,0xf5,0xe7,0x00,0xf5,0xe8,0x00,0xf5,0xe9,0x00,0xf5,0xea,0x00,0xf6,0xea,0x00,0xf6, ] +expected = [ 0x00,0x3b,0x00,0x01,0x43,0x00,0x01,0x4c,0x00,0x01,0x55,0x00,0x01,0x5f,0x00,0x01,0x6a,0x00,0x01,0x75,0x00,0x02,0x80,0x00,0x02,0x8c,0x00,0x02,0x98,0x00,0x02,0xa5,0x00,0x02,0xb3,0x00,0x03,0xc1,0x00,0x03,0xd0,0x00,0x03,0xdf,0x00,0x03,0xee,0x00,0x04,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0xff,0x20,0x2c,0xff,0x29,0x34,0xff,0x31,0x3c,0xff,0x39,0x44,0xff,0x41,0x4c,0xff,0x4a,0x54,0xff,0x52,0x5d,0xff,0x5a,0x65,0xff,0x62,0x6d,0xff,0x6a,0x75,0xff,0x73,0x7d,0xff,0x7b, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xf9,0x06,0xff,0xf8,0x07,0x00,0xf7,0x08,0x00,0xf7,0x09,0x00,0xf6,0x0a,0x00,0xf5,0x0b,0x00,0xf5,0x0c,0xff,0xf5,0x0e,0x00,0xf4,0x0f,0x00,0xf4,0x11,0x00,0xf3,0x12,0x00,0xf2,0x14,0xff,0xf2,0x15,0x00,0xf1,0x17,0x00,0xf1,0x19,0x00,0xf1,0x1b,0xfc,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0xff,0x2d,0xf8,0x00,0x14,0xf8,0x00,0x12,0xf8,0x00,0x12,0xf8,0x00,0x11,0xf8,0x00,0x10,0xf8,0x00,0x0e,0xf8,0x00,0x0e,0xf7,0x00,0x0d,0xf8,0x00,0x0c,0xf8,0x00,0x0b,0xf8,0x00,0x09,0xf8,0x00,0x09, ] +expected = [ 0x00,0x34,0x06,0x00,0x3b,0x07,0x01,0x43,0x08,0x01,0x4c,0x09,0x01,0x55,0x0a,0x01,0x5f,0x0b,0x01,0x6a,0x0c,0x01,0x75,0x0e,0x02,0x80,0x0f,0x02,0x8c,0x11,0x02,0x98,0x12,0x02,0xa5,0x14,0x02,0xb3,0x15,0x03,0xc1,0x17,0x03,0xd0,0x19,0x03,0xdf,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0xff,0x2d,0x1c,0xff,0x34,0x24,0xff,0x3b,0x2c,0xff,0x43,0x34,0xff,0x4a,0x3c,0xff,0x51,0x44,0xff,0x58,0x4c,0xff,0x60,0x54,0xff,0x67,0x5d,0xff,0x6e,0x65,0xff,0x75,0x6d,0xff,0x7c,0x75,0xff,0x84, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xf8,0x05,0x00,0xf9,0x05,0xff,0xf8,0x06,0xff,0xf7,0x07,0xff,0xf7,0x08,0x00,0xf6,0x0a,0x00,0xf5,0x0b,0x00,0xf5,0x0c,0xff,0xf5,0x0d,0xff,0xf4,0x0e,0xff,0xf4,0x10,0xff,0xf3,0x11,0xff,0xf2,0x13,0xff,0xf2,0x15,0xff,0xf1,0x16,0xfd,0x21,0xe5,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0x3f,0xf7,0x00,0x18,0xf7,0x00,0x17,0xf7,0x00,0x16,0xf7,0x00,0x14,0xf7,0x00,0x13,0xf7,0x00,0x13,0xf7,0x00,0x12,0xf8,0x00,0x10,0xf8,0x00,0x0f,0xf7,0x00,0x0e,0xf7,0x00,0x0e,0xf7,0x00,0x0d,0xf7,0x00,0x0b, ] +expected = [ 0x00,0x2c,0x0b,0x00,0x34,0x0c,0x00,0x3b,0x0e,0x00,0x43,0x10,0x00,0x4c,0x12,0x01,0x55,0x15,0x01,0x5f,0x17,0x01,0x6a,0x1a,0x01,0x75,0x1c,0x01,0x80,0x1f,0x01,0x8c,0x22,0x01,0x98,0x25,0x01,0xa5,0x28,0x02,0xb3,0x2c,0x02,0xc1,0x2f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0x3f,0x0b,0xff,0x45,0x13,0xff,0x4b,0x1b,0xff,0x51,0x23,0xff,0x57,0x2b,0xff,0x5d,0x33,0xff,0x64,0x3b,0xff,0x6a,0x44,0xff,0x70,0x4c,0xff,0x76,0x54,0xff,0x7c,0x5c,0xff,0x83,0x64,0xff,0x89,0x6c,0xff,0x8f, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xfa,0x03,0x00,0xf8,0x04,0x00,0xf9,0x05,0x00,0xf8,0x06,0x00,0xf7,0x07,0xff,0xf7,0x07,0x00,0xf6,0x09,0x00,0xf5,0x09,0x00,0xf5,0x0b,0x00,0xf5,0x0c,0x00,0xf4,0x0d,0x00,0xf4,0x0f,0x00,0xf3,0x10,0xff,0xf2,0x11,0xfe,0x3f,0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xdf,0x53,0xff,0xef,0x19,0xf8,0x00,0x1a,0xf8,0x00,0x19,0xf8,0x00,0x18,0xf8,0x00,0x17,0xf8,0x00,0x16,0xf8,0x00,0x14,0xf8,0x00,0x13,0xf7,0x00,0x13,0xf8,0x00,0x12,0xf8,0x00,0x11,0xf8,0x00,0x0f,0xf8,0x00,0x0e,0xf8,0x00,0x0d, ] +expected = [ 0x00,0x26,0x0e,0x00,0x2c,0x10,0x00,0x34,0x13,0x00,0x3b,0x16,0x00,0x43,0x19,0x00,0x4c,0x1c,0x01,0x55,0x20,0x01,0x5f,0x23,0x01,0x6a,0x27,0x01,0x75,0x2b,0x01,0x80,0x2f,0x01,0x8c,0x34,0x01,0x98,0x38,0x01,0xa5,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xdf,0x53,0x02,0xee,0x58,0x03,0xff,0x5f,0x0b,0xff,0x64,0x13,0xff,0x69,0x1b,0xff,0x6e,0x23,0xff,0x73,0x2b,0xff,0x78,0x33,0xff,0x7d,0x3b,0xff,0x83,0x44,0xff,0x88,0x4c,0xff,0x8d,0x54,0xff,0x92,0x5c,0xff,0x97,0x64,0xff,0x9c, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xfa,0x01,0x00,0xfa,0x03,0x00,0xf8,0x03,0x00,0xf9,0x03,0x00,0xf8,0x04,0x00,0xf7,0x05,0xff,0xf7,0x06,0x00,0xf6,0x07,0x00,0xf5,0x08,0x00,0xf5,0x09,0x00,0xf5,0x0b,0x00,0xf4,0x0b,0x00,0xf4,0x0d,0xff,0x5b,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xc1,0x60,0x00,0xf1,0x14,0x00,0xf1,0x17,0xff,0xef,0x17,0xf8,0x00,0x1b,0xf8,0x00,0x1a,0xf8,0x00,0x19,0xf8,0x00,0x18,0xf8,0x00,0x17,0xf8,0x00,0x16,0xf8,0x00,0x14,0xf7,0x00,0x13,0xf8,0x00,0x13,0xf8,0x00,0x12,0xf8,0x00,0x11,0xf8,0x00,0x10, ] +expected = [ 0x00,0x20,0x0f,0x00,0x26,0x13,0x00,0x2c,0x16,0x00,0x34,0x19,0x00,0x3b,0x1d,0x00,0x43,0x21,0x00,0x4c,0x26,0x01,0x55,0x2a,0x01,0x5f,0x2f,0x01,0x6a,0x34,0x01,0x75,0x3a,0x01,0x80,0x3f,0x01,0x8c,0x45,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xc1,0x60,0x02,0xd0,0x67,0x02,0xdf,0x6f,0x02,0xee,0x76,0x03,0xff,0x7f,0x0b,0xff,0x83,0x13,0xff,0x87,0x1b,0xff,0x8b,0x23,0xff,0x8f,0x2b,0xff,0x93,0x33,0xff,0x97,0x3b,0xff,0x9b,0x44,0xff,0xa0,0x4c,0xff,0xa4,0x54,0xff,0xa8,0x5c,0xff,0xac, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xfa,0x01,0x00,0xfa,0x01,0x00,0xfa,0x01,0x00,0xf8,0x02,0x00,0xf9,0x03,0x00,0xf8,0x04,0x00,0xf7,0x04,0xff,0xf7,0x05,0x00,0xf6,0x06,0x00,0xf5,0x07,0x00,0xf5,0x08,0x00,0xf5,0x09,0xff,0x74,0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xa5,0x67,0x00,0xf2,0x0f,0x00,0xf1,0x11,0x00,0xf1,0x12,0x00,0xf1,0x15,0xff,0xef,0x15,0xf8,0x00,0x1c,0xf8,0x00,0x1b,0xf8,0x00,0x1a,0xf8,0x00,0x19,0xf8,0x00,0x18,0xf8,0x00,0x17,0xf8,0x00,0x16,0xf7,0x00,0x14,0xf8,0x00,0x13,0xf8,0x00,0x12,0xf8,0x00,0x11, ] +expected = [ 0x00,0x1a,0x10,0x00,0x20,0x14,0x00,0x26,0x17,0x00,0x2c,0x1b,0x00,0x34,0x20,0x00,0x3b,0x25,0x00,0x43,0x2a,0x00,0x4c,0x2f,0x01,0x55,0x35,0x01,0x5f,0x3b,0x01,0x6a,0x42,0x01,0x75,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xa5,0x67,0x02,0xb3,0x6f,0x02,0xc1,0x78,0x02,0xd0,0x81,0x02,0xdf,0x8b,0x02,0xee,0x94,0x03,0xff,0x9f,0x0b,0xff,0xa2,0x13,0xff,0xa5,0x1b,0xff,0xa8,0x23,0xff,0xab,0x2b,0xff,0xae,0x33,0xff,0xb1,0x3b,0xff,0xb4,0x44,0xff,0xb7,0x4c,0xff,0xba,0x54,0xff,0xbd, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xfb,0x00,0x00,0xfa,0xff,0x00,0xfa,0x01,0x00,0xfa,0x01,0x00,0xf8,0x01,0x00,0xf9,0x01,0x00,0xf8,0x02,0x00,0xf7,0x03,0xff,0xf7,0x04,0xff,0xf6,0x05,0xff,0xf5,0x05,0xff,0x8b,0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x5b,0x99,0xfe,0x4d,0x91,0xfe,0x3f,0x88,0xfe,0x30,0x7f,0xfe,0x21,0x75,0xfe,0x12,0x6c,0xfe,0xef,0x13,0xf7,0x00,0x1d,0xf7,0x00,0x1c,0xf7,0x00,0x1b,0xf7,0x00,0x1a,0xf7,0x00,0x19,0xf7,0x00,0x18,0xf7,0x00,0x17,0xf7,0x00,0x16,0xf7,0x00,0x15,0xf7,0x00,0x14, ] +expected = [ 0x00,0x15,0x10,0x00,0x1a,0x13,0x00,0x20,0x18,0x00,0x26,0x1c,0x00,0x2c,0x21,0x00,0x34,0x26,0x00,0x3b,0x2c,0x00,0x43,0x32,0x00,0x4c,0x39,0x00,0x55,0x40,0x00,0x5f,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xee,0xb2,0x02,0xff,0xbf,0x0a,0xff,0xc1,0x12,0xff,0xc3,0x1a,0xff,0xc5,0x22,0xff,0xc7,0x2a,0xff,0xc9,0x32,0xff,0xcb,0x3b,0xff,0xcd,0x43,0xff,0xcf,0x4b,0xff,0xd1, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xfb,0xfe,0x00,0xfb,0xff,0x00,0xfa,0xff,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00,0xf8,0x01,0x00,0xf9,0x01,0x00,0xf8,0x02,0x00,0xf7,0x02,0x00,0xf7,0x03,0x00,0xf6,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf1,0x11,0xff,0xef,0x11,0xf8,0x00,0x1e,0xf8,0x00,0x1d,0xf8,0x00,0x1c,0xf8,0x00,0x1b,0xf8,0x00,0x1a,0xf8,0x00,0x19,0xf7,0x00,0x18,0xf8,0x00,0x17,0xf8,0x00,0x16, ] +expected = [ 0x00,0x10,0x0e,0x00,0x15,0x12,0x00,0x1a,0x17,0x00,0x20,0x1c,0x00,0x26,0x21,0x00,0x2c,0x27,0x00,0x34,0x2d,0x00,0x3b,0x34,0x00,0x43,0x3b,0x00,0x4c,0x43,0x00,0x55,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xdf,0xc3,0x01,0xee,0xd0,0x02,0xff,0xdf,0x0a,0xff,0xe0,0x12,0xff,0xe1,0x1a,0xff,0xe2,0x22,0xff,0xe3,0x2a,0xff,0xe4,0x32,0xff,0xe5,0x3b,0xff,0xe6,0x43,0xff,0xe7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xfd,0xff,0x00,0xfb,0xfe,0x00,0xfb,0xfe,0x00,0xfa,0xfe,0x00,0xfa,0xff,0x00,0xfa,0xff,0x00,0xf8,0xff,0x00,0xf9,0x00,0x00,0xf8,0x00,0x00,0xf7,0x00,0x00,0xf7,0x01,0x00,0x55,0x55,0x00,0x5f,0x5f,0x00,0x6a,0x6a,0x00,0x75,0x75,0x01,0x80,0x80,0x01,0x8c,0x8c,0x01,0x98,0x98,0x01,0xa5,0xa5,0x01,0xb3,0xb3,0x01,0xc1,0xc1,0x00,0xf1,0x0d,0x00,0xf1,0x0f,0xff,0xef,0x0f,0xf8,0x00,0x1f,0xf8,0x00,0x1e,0xf8,0x00,0x1d,0xf8,0x00,0x1c,0xf8,0x00,0x1b,0xf8,0x00,0x1a,0xf7,0x00,0x19,0xf8,0x00,0x18, ] +expected = [ 0x00,0x0d,0x0d,0x00,0x10,0x10,0x00,0x15,0x15,0x00,0x1a,0x1a,0x00,0x20,0x20,0x00,0x26,0x26,0x00,0x2c,0x2c,0x00,0x34,0x34,0x00,0x3b,0x3b,0x00,0x43,0x43,0x00,0x4c,0x4c,0x00,0x55,0x55,0x00,0x5f,0x5f,0x00,0x6a,0x6a,0x00,0x75,0x75,0x01,0x80,0x80,0x01,0x8c,0x8c,0x01,0x98,0x98,0x01,0xa5,0xa5,0x01,0xb3,0xb3,0x01,0xc1,0xc1,0x01,0xd0,0xd0,0x01,0xdf,0xdf,0x01,0xee,0xee,0x02,0xff,0xff,0x0a,0xff,0xff,0x12,0xff,0xff,0x1a,0xff,0xff,0x22,0xff,0xff,0x2a,0xff,0xff,0x32,0xff,0xff,0x3b,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xfb,0xfc,0x00,0xfb,0xfd,0x00,0xf9,0xfb,0x00,0xf8,0xfb,0x00,0xf7,0xfa,0x00,0xf6,0xfa,0x00,0xf5,0xfa,0x00,0xf3,0xf8,0x00,0xf2,0xf9,0x00,0xf1,0xf8,0x00,0xef,0xf7,0x00,0xee,0xf7,0x00,0xec,0xf6,0x00,0xea,0xf5,0x00,0xe8,0xf5,0xff,0xe6,0xf5,0xff,0xe4,0xf4,0xff,0xe3,0xf4,0xff,0xe1,0xf3,0xff,0xde,0xf2,0xff,0xdc,0xf2,0xff,0xd9,0xf1,0xff,0xd7,0xf1,0xff,0xd6,0xf1,0xfe,0xd2,0xef,0xf7,0xe1,0x00,0xf7,0xe2,0x00,0xf7,0xe3,0x00,0xf7,0xe4,0x00,0xf7,0xe5,0x00,0xf7,0xe5,0x00,0xf7,0xe7,0x00, ] +expected = [ 0x00,0x08,0x09,0x00,0x0b,0x0d,0x00,0x0e,0x10,0x00,0x12,0x15,0x00,0x17,0x1a,0x00,0x1c,0x20,0x00,0x21,0x26,0x00,0x27,0x2c,0x00,0x2d,0x34,0x00,0x34,0x3b,0x00,0x3b,0x43,0x00,0x43,0x4c,0x00,0x4b,0x55,0x00,0x54,0x5f,0x00,0x5d,0x6a,0x00,0x66,0x75,0x00,0x70,0x80,0x00,0x7b,0x8c,0x00,0x86,0x98,0x00,0x91,0xa5,0x00,0x9d,0xb3,0x00,0xa9,0xc1,0x00,0xb6,0xd0,0x00,0xc4,0xdf,0x00,0xd1,0xee,0x01,0xe0,0xff,0x09,0xe1,0xff,0x11,0xe2,0xff,0x19,0xe3,0xff,0x21,0xe4,0xff,0x29,0xe4,0xff,0x32,0xe6,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xfc,0xfd,0x00,0xfc,0xfc,0x00,0xfb,0xfd,0x00,0xfa,0xfb,0x00,0xf9,0xfb,0x00,0xf7,0xfa,0x00,0xf7,0xfa,0x00,0xf5,0xfa,0x00,0xf4,0xf8,0x00,0xf3,0xf9,0x00,0xf1,0xf8,0x00,0xf0,0xf7,0x00,0xee,0xf7,0x00,0xec,0xf6,0x00,0xeb,0xf5,0x00,0xe9,0xf5,0x00,0xe8,0xf5,0x00,0xe5,0xf4,0x00,0xe3,0xf4,0x00,0xe2,0xf3,0x00,0xdf,0xf2,0x00,0xde,0xf2,0x00,0xdb,0xf1,0x00,0xd8,0xf1,0x00,0xd7,0xf1,0xff,0xd3,0xef,0xf8,0xdf,0x00,0xf8,0xe0,0x00,0xf8,0xe1,0x00,0xf8,0xe2,0x00,0xf8,0xe4,0x00,0xf7,0xe4,0x00, ] +expected = [ 0x00,0x04,0x06,0x00,0x07,0x09,0x00,0x09,0x0d,0x00,0x0c,0x10,0x00,0x10,0x15,0x00,0x13,0x1a,0x00,0x18,0x20,0x00,0x1c,0x26,0x00,0x21,0x2c,0x00,0x27,0x34,0x00,0x2c,0x3b,0x00,0x33,0x43,0x00,0x39,0x4c,0x00,0x40,0x55,0x00,0x48,0x5f,0x00,0x4f,0x6a,0x00,0x58,0x75,0x00,0x60,0x80,0x00,0x69,0x8c,0x00,0x73,0x98,0x00,0x7c,0xa5,0x00,0x87,0xb3,0x00,0x91,0xc1,0x00,0x9c,0xd0,0x00,0xa8,0xdf,0x00,0xb3,0xee,0x01,0xc0,0xff,0x09,0xc2,0xff,0x11,0xc4,0xff,0x19,0xc6,0xff,0x21,0xc8,0xff,0x29,0xca,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xfe,0xfe,0x00,0xfd,0xfd,0x00,0xfc,0xfc,0x00,0xfc,0xfd,0x00,0xfa,0xfb,0x00,0xfa,0xfb,0x00,0xf8,0xfa,0x00,0xf8,0xfa,0x00,0xf6,0xfa,0x00,0xf5,0xf8,0x00,0xf4,0xf9,0x00,0xf2,0xf8,0x00,0xf1,0xf7,0x00,0xf0,0xf7,0x00,0xed,0xf6,0x00,0xed,0xf5,0x00,0xea,0xf5,0x00,0xe9,0xf5,0x00,0xe7,0xf4,0x00,0xe5,0xf4,0x00,0xe3,0xf3,0x00,0xe1,0xf2,0x00,0xdf,0xf2,0x00,0xdd,0xf1,0x00,0xda,0xf1,0x00,0xd9,0xf1,0xff,0xd5,0xef,0xf8,0xde,0x00,0xf8,0xdf,0x00,0xf8,0xe0,0x00,0xf8,0xe1,0x00,0xf8,0xe2,0x00, ] +expected = [ 0x00,0x02,0x04,0x00,0x04,0x06,0x00,0x05,0x09,0x00,0x08,0x0d,0x00,0x0a,0x10,0x00,0x0d,0x15,0x00,0x10,0x1a,0x00,0x14,0x20,0x00,0x17,0x26,0x00,0x1c,0x2c,0x00,0x20,0x34,0x00,0x25,0x3b,0x00,0x2a,0x43,0x00,0x30,0x4c,0x00,0x35,0x55,0x00,0x3c,0x5f,0x00,0x42,0x6a,0x00,0x49,0x75,0x00,0x50,0x80,0x00,0x58,0x8c,0x00,0x5f,0x98,0x00,0x68,0xa5,0x00,0x70,0xb3,0x00,0x79,0xc1,0x00,0x82,0xd0,0x00,0x8c,0xdf,0x00,0x95,0xee,0x01,0xa0,0xff,0x09,0xa3,0xff,0x11,0xa6,0xff,0x19,0xa9,0xff,0x21,0xac,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xff,0xfe,0x00,0xfe,0xfe,0x00,0xfe,0xfd,0x00,0xfc,0xfc,0x00,0xfc,0xfd,0x00,0xfb,0xfb,0x00,0xfa,0xfb,0x00,0xf9,0xfa,0x00,0xf9,0xfa,0x00,0xf7,0xfa,0x00,0xf6,0xf8,0x00,0xf5,0xf9,0x00,0xf3,0xf8,0x00,0xf2,0xf7,0x00,0xf1,0xf7,0x00,0xef,0xf6,0x00,0xee,0xf5,0x00,0xec,0xf5,0x00,0xea,0xf5,0x00,0xe8,0xf4,0x00,0xe7,0xf4,0x00,0xe4,0xf3,0x00,0xe3,0xf2,0x00,0xe1,0xf2,0x00,0xdf,0xf1,0x00,0xdc,0xf1,0x00,0xdb,0xf1,0xff,0xd7,0xef,0xf8,0xdd,0x00,0xf8,0xde,0x00,0xf8,0xdf,0x00,0xf8,0xe0,0x00, ] +expected = [ 0x00,0x01,0x02,0x00,0x02,0x04,0x00,0x03,0x06,0x00,0x04,0x09,0x00,0x06,0x0d,0x00,0x08,0x10,0x00,0x0a,0x15,0x00,0x0d,0x1a,0x00,0x10,0x20,0x00,0x13,0x26,0x00,0x16,0x2c,0x00,0x1a,0x34,0x00,0x1d,0x3b,0x00,0x22,0x43,0x00,0x26,0x4c,0x00,0x2b,0x55,0x00,0x30,0x5f,0x00,0x35,0x6a,0x00,0x3a,0x75,0x00,0x40,0x80,0x00,0x46,0x8c,0x00,0x4c,0x98,0x00,0x53,0xa5,0x00,0x5a,0xb3,0x00,0x61,0xc1,0x00,0x68,0xd0,0x00,0x70,0xdf,0x00,0x77,0xee,0x01,0x80,0xff,0x09,0x84,0xff,0x11,0x88,0xff,0x19,0x8c,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0xff,0xff,0x00,0xfe,0xfe,0x00,0xfe,0xfe,0x00,0xfe,0xfd,0x00,0xfd,0xfc,0x00,0xfc,0xfd,0x00,0xfc,0xfb,0x00,0xfb,0xfb,0x00,0xf9,0xfa,0x00,0xf9,0xfa,0x00,0xf8,0xfa,0x00,0xf6,0xf8,0x00,0xf6,0xf9,0x00,0xf4,0xf8,0x00,0xf3,0xf7,0x00,0xf1,0xf7,0x00,0xf0,0xf6,0x00,0xef,0xf5,0x00,0xed,0xf5,0x00,0xec,0xf5,0x00,0xea,0xf4,0x00,0xe8,0xf4,0x00,0xe6,0xf3,0x00,0xe4,0xf2,0x00,0xe2,0xf2,0x00,0xe0,0xf1,0x00,0xde,0xf1,0x00,0xdd,0xf1,0xff,0xd9,0xef,0xf7,0xdc,0x00,0xf7,0xdd,0x00,0xf7,0xde,0x00, ] +expected = [ 0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x01,0x04,0x00,0x02,0x06,0x00,0x03,0x09,0x00,0x04,0x0d,0x00,0x06,0x10,0x00,0x08,0x15,0x00,0x09,0x1a,0x00,0x0c,0x20,0x00,0x0e,0x26,0x00,0x10,0x2c,0x00,0x13,0x34,0x00,0x16,0x3b,0x00,0x19,0x43,0x00,0x1c,0x4c,0x00,0x20,0x55,0x00,0x24,0x5f,0x00,0x27,0x6a,0x00,0x2c,0x75,0x00,0x30,0x80,0x00,0x34,0x8c,0x00,0x39,0x98,0x00,0x3e,0xa5,0x00,0x43,0xb3,0x00,0x48,0xc1,0x00,0x4e,0xd0,0x00,0x54,0xdf,0x00,0x59,0xee,0x00,0x60,0xff,0x08,0x65,0xff,0x10,0x6a,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0x00,0xff,0x00,0x00,0xff,0x00,0xff,0xfe,0x00,0xff,0xfe,0x00,0xfe,0xfd,0x00,0xfe,0xfc,0x00,0xfd,0xfd,0x00,0xfc,0xfb,0x00,0xfc,0xfb,0x00,0xfa,0xfa,0x00,0xfa,0xfa,0x00,0xf9,0xfa,0x00,0xf8,0xf8,0x00,0xf7,0xf9,0x00,0xf5,0xf8,0x00,0xf5,0xf7,0x00,0xf3,0xf7,0x00,0xf1,0xf6,0x00,0xf1,0xf5,0x00,0xee,0xf5,0x00,0xed,0xf5,0x00,0xec,0xf4,0x00,0xea,0xf4,0x00,0xe8,0xf3,0x00,0xe6,0xf2,0x00,0xe5,0xf2,0x00,0xe2,0xf1,0x00,0xe0,0xf1,0x00,0xdf,0xf1,0x00,0xdb,0xef,0xf8,0xdb,0x00,0xf8,0xdc,0x00, ] +expected = [ 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x01,0x04,0x00,0x01,0x06,0x00,0x02,0x09,0x00,0x03,0x0d,0x00,0x04,0x10,0x00,0x05,0x15,0x00,0x06,0x1a,0x00,0x08,0x20,0x00,0x09,0x26,0x00,0x0b,0x2c,0x00,0x0d,0x34,0x00,0x0e,0x3b,0x00,0x11,0x43,0x00,0x13,0x4c,0x00,0x15,0x55,0x00,0x18,0x5f,0x00,0x1a,0x6a,0x00,0x1d,0x75,0x00,0x20,0x80,0x00,0x23,0x8c,0x00,0x26,0x98,0x00,0x29,0xa5,0x00,0x2d,0xb3,0x00,0x30,0xc1,0x00,0x34,0xd0,0x00,0x38,0xdf,0x00,0x3b,0xee,0x00,0x40,0xff,0x08,0x46,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 2 +data = [ 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0xff,0xfe,0x00,0xff,0xfe,0x00,0xfe,0xfd,0x00,0xfe,0xfc,0x00,0xfd,0xfd,0x00,0xfd,0xfb,0x00,0xfc,0xfb,0x00,0xfb,0xfa,0x00,0xfb,0xfa,0x00,0xf9,0xfa,0x00,0xf8,0xf8,0x00,0xf8,0xf9,0x00,0xf6,0xf8,0x00,0xf5,0xf7,0x00,0xf4,0xf7,0x00,0xf2,0xf6,0x00,0xf2,0xf5,0x00,0xf0,0xf5,0x00,0xee,0xf5,0x00,0xed,0xf4,0x00,0xeb,0xf4,0x00,0xea,0xf3,0x00,0xe7,0xf2,0x00,0xe6,0xf2,0x00,0xe4,0xf1,0x00,0xe2,0xf1,0x00,0xe1,0xf1,0x00,0xdd,0xef,0xf8,0xda,0x00, ] +expected = [ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x06,0x00,0x01,0x09,0x00,0x01,0x0d,0x00,0x02,0x10,0x00,0x02,0x15,0x00,0x03,0x1a,0x00,0x04,0x20,0x00,0x04,0x26,0x00,0x05,0x2c,0x00,0x06,0x34,0x00,0x07,0x3b,0x00,0x08,0x43,0x00,0x09,0x4c,0x00,0x0a,0x55,0x00,0x0c,0x5f,0x00,0x0d,0x6a,0x00,0x0e,0x75,0x00,0x10,0x80,0x00,0x11,0x8c,0x00,0x13,0x98,0x00,0x14,0xa5,0x00,0x16,0xb3,0x00,0x18,0xc1,0x00,0x1a,0xd0,0x00,0x1c,0xdf,0x00,0x1d,0xee,0x00,0x20,0xff, ] +PASS: /Users/henddher/Documents/libpng/libpng-1.6.34/libpng-xcode-project/xcode/,/libpng/Build/Products/Debug/libpng-test.xctest/Contents/Resources/f02n2c08.png diff --git a/tests/f03n2c08.png.log b/tests/f03n2c08.png.log new file mode 100644 index 0000000..ca7cd67 --- /dev/null +++ b/tests/f03n2c08.png.log @@ -0,0 +1,290 @@ +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0xff,0x00,0x08,0x80,0x08,0x0b,0x80,0x0c,0x10,0x80,0x10,0x14,0x80,0x14,0x18,0x80,0x19,0x1c,0x80,0x1d,0x20,0x80,0x21,0x24,0x80,0x25,0x28,0x80,0x2a,0x2c,0x80,0x2d,0x30,0x80,0x31,0x34,0x80,0x35,0x38,0x80,0x39,0x3c,0x80,0x3e,0x40,0x80,0x42,0x44,0x80,0x46,0x48,0x80,0x4a,0x4c,0x80,0x4f,0x50,0x80,0x52,0x54,0x80,0x56,0x58,0x80,0x5a,0x5c,0x80,0x5e,0x60,0x80,0x63,0x64,0x80,0x67,0x68,0x80,0x6b,0x6c,0x80,0x6f,0x70,0x80,0x74,0x74,0x80,0x77,0x78,0x80,0x7b,0x7c,0x80,0x7f,0x80,0x80,0x84,0x84, ] +expected = [ 0xff,0x00,0x08,0xff,0x08,0x0f,0xff,0x10,0x17,0xff,0x18,0x1f,0xff,0x20,0x27,0xff,0x29,0x2f,0xff,0x31,0x37,0xff,0x39,0x3f,0xff,0x41,0x47,0xff,0x4a,0x4f,0xff,0x52,0x57,0xff,0x5a,0x5f,0xff,0x62,0x67,0xff,0x6a,0x6f,0xff,0x73,0x77,0xff,0x7b,0x7f,0xff,0x83,0x87,0xff,0x8b,0x8f,0xff,0x94,0x97,0xff,0x9c,0x9f,0xff,0xa4,0xa7,0xff,0xac,0xaf,0xff,0xb4,0xb7,0xff,0xbd,0xbf,0xff,0xc5,0xc7,0xff,0xcd,0xcf,0xff,0xd5,0xd7,0xff,0xde,0xdf,0xff,0xe6,0xe7,0xff,0xee,0xef,0xff,0xf6,0xf7,0xff,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x6f,0x1d,0x03,0x09,0x0d,0xfd,0x00,0x0f,0x00,0x00,0x0e,0x00,0x00,0x0e,0x00,0x00,0x0d,0x00,0x00,0x0d,0x00,0x00,0x0c,0x00,0x00,0x0c,0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00,0x0a,0x00,0x00,0x0a,0x00,0x00,0x09,0x00,0x00,0x08,0x00,0x00,0x09,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00, ] +expected = [ 0xee,0x1d,0x07,0xff,0x1f,0x08,0xff,0x26,0x0f,0xff,0x2d,0x17,0xff,0x34,0x1f,0xff,0x3b,0x27,0xff,0x43,0x2f,0xff,0x4a,0x37,0xff,0x51,0x3f,0xff,0x58,0x47,0xff,0x60,0x4f,0xff,0x67,0x57,0xff,0x6e,0x5f,0xff,0x75,0x67,0xff,0x7c,0x6f,0xff,0x84,0x77,0xff,0x8b,0x7f,0xff,0x92,0x87,0xff,0x99,0x8f,0xff,0xa1,0x97,0xff,0xa8,0x9f,0xff,0xaf,0xa7,0xff,0xb6,0xaf,0xff,0xbd,0xb7,0xff,0xc5,0xbf,0xff,0xcc,0xc7,0xff,0xd3,0xcf,0xff,0xda,0xd7,0xff,0xe2,0xdf,0xff,0xe9,0xe7,0xff,0xf0,0xef,0xff,0xf7,0xf7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x68,0x29,0x04,0xff,0x10,0x00,0x09,0x0f,0xfd,0x00,0x0f,0x00,0x00,0x0f,0x00,0x00,0x0e,0x00,0x00,0x0d,0x00,0x00,0x0d,0x00,0x00,0x0d,0x00,0x00,0x0c,0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00,0x0a,0x00,0x00,0x0b,0x00,0x00,0x0a,0x00,0x00,0x09,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x01,0x00, ] +expected = [ 0xdf,0x37,0x07,0xee,0x3b,0x07,0xff,0x3f,0x08,0xff,0x45,0x0f,0xff,0x4b,0x17,0xff,0x51,0x1f,0xff,0x57,0x27,0xff,0x5d,0x2f,0xff,0x64,0x37,0xff,0x6a,0x3f,0xff,0x70,0x47,0xff,0x76,0x4f,0xff,0x7c,0x57,0xff,0x83,0x5f,0xff,0x89,0x67,0xff,0x8f,0x6f,0xff,0x95,0x77,0xff,0x9b,0x7f,0xff,0xa2,0x87,0xff,0xa8,0x8f,0xff,0xae,0x97,0xff,0xb4,0x9f,0xff,0xba,0xa7,0xff,0xc1,0xaf,0xff,0xc7,0xb7,0xff,0xcd,0xbf,0xff,0xd3,0xc7,0xff,0xd9,0xcf,0xff,0xe0,0xd7,0xff,0xe6,0xdf,0xff,0xec,0xe7,0xff,0xf2,0xef, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x61,0x32,0x03,0x00,0x0f,0x01,0xff,0x0f,0x00,0x09,0x11,0xfd,0x00,0x0f,0x00,0x00,0x0f,0x00,0x00,0x0e,0x00,0x00,0x0e,0x00,0x00,0x0d,0x00,0x00,0x0c,0x00,0x00,0x0d,0x00,0x00,0x0c,0x00,0x00,0x0b,0x00,0x00,0x0a,0x00,0x00,0x0a,0x00,0x00,0x09,0x00,0x00,0x0a,0x00,0x00,0x09,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x01,0x00, ] +expected = [ 0xd0,0x4d,0x06,0xdf,0x53,0x07,0xee,0x58,0x07,0xff,0x5f,0x08,0xff,0x64,0x0f,0xff,0x69,0x17,0xff,0x6e,0x1f,0xff,0x73,0x27,0xff,0x78,0x2f,0xff,0x7d,0x37,0xff,0x83,0x3f,0xff,0x88,0x47,0xff,0x8d,0x4f,0xff,0x92,0x57,0xff,0x97,0x5f,0xff,0x9c,0x67,0xff,0xa2,0x6f,0xff,0xa7,0x77,0xff,0xac,0x7f,0xff,0xb1,0x87,0xff,0xb6,0x8f,0xff,0xbb,0x97,0xff,0xc1,0x9f,0xff,0xc6,0xa7,0xff,0xcb,0xaf,0xff,0xd0,0xb7,0xff,0xd5,0xbf,0xff,0xda,0xc7,0xff,0xe0,0xcf,0xff,0xe5,0xd7,0xff,0xea,0xdf,0xff,0xef,0xe7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x59,0x3a,0x02,0x00,0x0e,0xff,0x00,0x10,0x00,0xff,0x0f,0xff,0x09,0x12,0xfd,0x00,0x0f,0x00,0x00,0x0f,0x00,0x00,0x0e,0x00,0x00,0x0e,0x00,0x00,0x0d,0xff,0x00,0x0c,0x01,0x00,0x0c,0x00,0x00,0x0c,0x00,0x00,0x0b,0xff,0x00,0x0b,0x01,0x00,0x0a,0x00,0x00,0x09,0x00,0x00,0x09,0xff,0x00,0x08,0x01,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x07,0xff,0x00,0x06,0x01,0x00,0x06,0x00,0x00,0x05,0xff,0x00,0x05,0x00,0x00,0x04,0x01,0x00,0x04,0x00,0x00,0x04,0xff,0x00,0x03,0x00,0x00,0x02,0x01,0x00,0x02,0x00, ] +expected = [ 0xc1,0x60,0x05,0xd0,0x67,0x05,0xdf,0x6f,0x06,0xee,0x76,0x06,0xff,0x7f,0x07,0xff,0x83,0x0f,0xff,0x87,0x17,0xff,0x8b,0x1f,0xff,0x8f,0x27,0xff,0x93,0x2e,0xff,0x97,0x37,0xff,0x9b,0x3f,0xff,0xa0,0x47,0xff,0xa4,0x4e,0xff,0xa8,0x57,0xff,0xac,0x5f,0xff,0xb0,0x67,0xff,0xb4,0x6e,0xff,0xb8,0x77,0xff,0xbc,0x7f,0xff,0xc1,0x87,0xff,0xc5,0x8e,0xff,0xc9,0x97,0xff,0xcd,0x9f,0xff,0xd1,0xa6,0xff,0xd5,0xae,0xff,0xd9,0xb7,0xff,0xdd,0xbf,0xff,0xe2,0xc6,0xff,0xe6,0xce,0xff,0xea,0xd7,0xff,0xee,0xdf, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x53,0x3f,0x02,0x00,0x0d,0x01,0x00,0x0e,0x00,0x00,0x10,0x01,0xff,0x0f,0x00,0x09,0x14,0xfd,0x00,0x0f,0x00,0x00,0x0f,0x00,0x00,0x0e,0x00,0x00,0x0e,0x01,0x00,0x0d,0xff,0x00,0x0d,0x01,0x00,0x0c,0x00,0x00,0x0b,0x01,0x00,0x0b,0xff,0x00,0x0a,0x01,0x00,0x0b,0x00,0x00,0x0a,0x01,0x00,0x09,0xff,0x00,0x09,0x01,0x00,0x08,0x00,0x00,0x07,0x01,0x00,0x07,0xff,0x00,0x06,0x01,0x00,0x06,0x01,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x05,0x01,0x00,0x04,0x01,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x02,0x01, ] +expected = [ 0xb3,0x6f,0x04,0xc1,0x78,0x05,0xd0,0x81,0x05,0xdf,0x8b,0x06,0xee,0x94,0x06,0xff,0x9f,0x07,0xff,0xa2,0x0f,0xff,0xa5,0x17,0xff,0xa8,0x1f,0xff,0xab,0x27,0xff,0xae,0x2e,0xff,0xb1,0x37,0xff,0xb4,0x3f,0xff,0xb7,0x47,0xff,0xba,0x4e,0xff,0xbd,0x57,0xff,0xc1,0x5f,0xff,0xc4,0x67,0xff,0xc7,0x6e,0xff,0xca,0x77,0xff,0xcd,0x7f,0xff,0xd0,0x87,0xff,0xd3,0x8e,0xff,0xd6,0x97,0xff,0xd9,0x9f,0xff,0xdc,0xa6,0xff,0xe0,0xae,0xff,0xe3,0xb7,0xff,0xe6,0xbf,0xff,0xe9,0xc6,0xff,0xec,0xce,0xff,0xef,0xd7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x4c,0x45,0x02,0x00,0x0c,0x00,0x00,0x0d,0x01,0x00,0x0e,0x00,0x00,0x10,0x01,0xff,0x0f,0x00,0x09,0x15,0xfd,0x00,0x0f,0x00,0x00,0x0f,0x00,0x00,0x0e,0x00,0x00,0x0e,0x01,0x00,0x0d,0xff,0x00,0x0d,0x01,0x00,0x0c,0x00,0x00,0x0c,0x01,0x00,0x0b,0xff,0x00,0x0a,0x01,0x00,0x0a,0x00,0x00,0x09,0x01,0x00,0x09,0xff,0x00,0x08,0x01,0x00,0x08,0x00,0x00,0x08,0x01,0x00,0x07,0xff,0x00,0x07,0x01,0x00,0x06,0x01,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x04,0x01,0x00,0x04,0x01,0x00,0x03,0x00,0x00,0x03,0x00, ] +expected = [ 0xa5,0x7c,0x04,0xb3,0x86,0x04,0xc1,0x90,0x05,0xd0,0x9b,0x05,0xdf,0xa7,0x06,0xee,0xb2,0x06,0xff,0xbf,0x07,0xff,0xc1,0x0f,0xff,0xc3,0x17,0xff,0xc5,0x1f,0xff,0xc7,0x27,0xff,0xc9,0x2e,0xff,0xcb,0x37,0xff,0xcd,0x3f,0xff,0xcf,0x47,0xff,0xd1,0x4e,0xff,0xd3,0x57,0xff,0xd5,0x5f,0xff,0xd7,0x67,0xff,0xd9,0x6e,0xff,0xdb,0x77,0xff,0xdd,0x7f,0xff,0xe0,0x87,0xff,0xe2,0x8e,0xff,0xe4,0x97,0xff,0xe6,0x9f,0xff,0xe8,0xa6,0xff,0xea,0xae,0xff,0xec,0xb7,0xff,0xee,0xbf,0xff,0xf0,0xc6,0xff,0xf2,0xce, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x46,0x47,0x02,0x00,0x0c,0x00,0x00,0x0c,0x00,0x00,0x0e,0x01,0x00,0x0d,0x00,0x00,0x10,0x01,0xff,0x0f,0x00,0x09,0x17,0xfd,0x00,0x0f,0x00,0x00,0x0f,0x00,0x00,0x0e,0x00,0x00,0x0e,0x01,0x00,0x0d,0xff,0x00,0x0d,0x01,0x00,0x0c,0x00,0x00,0x0c,0x01,0x00,0x0b,0xff,0x00,0x0b,0x01,0x00,0x0a,0x00,0x00,0x0a,0x01,0x00,0x09,0xff,0x00,0x09,0x01,0x00,0x08,0x00,0x00,0x07,0x01,0x00,0x07,0xff,0x00,0x06,0x01,0x00,0x06,0x01,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x04,0x01,0x00,0x04,0x01,0x00,0x03,0x00, ] +expected = [ 0x98,0x85,0x04,0xa5,0x91,0x04,0xb3,0x9c,0x04,0xc1,0xa9,0x05,0xd0,0xb5,0x05,0xdf,0xc3,0x06,0xee,0xd0,0x06,0xff,0xdf,0x07,0xff,0xe0,0x0f,0xff,0xe1,0x17,0xff,0xe2,0x1f,0xff,0xe3,0x27,0xff,0xe4,0x2e,0xff,0xe5,0x37,0xff,0xe6,0x3f,0xff,0xe7,0x47,0xff,0xe8,0x4e,0xff,0xe9,0x57,0xff,0xea,0x5f,0xff,0xeb,0x67,0xff,0xec,0x6e,0xff,0xed,0x77,0xff,0xee,0x7f,0xff,0xef,0x87,0xff,0xf0,0x8e,0xff,0xf1,0x97,0xff,0xf2,0x9f,0xff,0xf3,0xa6,0xff,0xf4,0xae,0xff,0xf5,0xb7,0xff,0xf6,0xbf,0xff,0xf7,0xc6, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x40,0x4a,0x01,0x00,0x0a,0x00,0x00,0x0b,0x00,0x00,0x0c,0x00,0x00,0x0d,0x00,0x00,0x0e,0xff,0x00,0x0f,0x00,0xff,0x0f,0xff,0x09,0x18,0xfc,0x00,0x0f,0x00,0x00,0x0f,0x00,0x01,0x0f,0xe2,0x81,0x8e,0xe9,0x81,0x8e,0xe5,0x81,0x8d,0xe1,0x81,0x8d,0xdd,0x81,0x8c,0xd9,0x81,0x8c,0xd5,0x81,0x8b,0xd1,0x81,0x8b,0xcd,0x81,0x8a,0xc9,0x80,0x89,0x33,0x00,0x09,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x04,0x00, ] +expected = [ 0x8c,0x8c,0x03,0x98,0x98,0x03,0xa5,0xa5,0x03,0xb3,0xb3,0x04,0xc1,0xc1,0x04,0xd0,0xd0,0x04,0xdf,0xdf,0x05,0xee,0xee,0x05,0xff,0xff,0x06,0xff,0xff,0x0e,0xff,0xff,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6e,0xff,0xff,0x76,0xff,0xff,0x7e,0xff,0xff,0x86,0xff,0xff,0x8e,0xff,0xff,0x96,0xff,0xff,0x9e,0xff,0xff,0xa6,0xff,0xff,0xae,0xff,0xff,0xb6,0xff,0xff,0xbe, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x2a,0x3a,0x02,0xf7,0x00,0x00,0xf6,0x00,0x00,0xf5,0x00,0x00,0xf4,0x00,0x01,0xf3,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0x01,0xf0,0xff,0x00,0xf8,0x09,0xfd,0xf2,0x00,0x00,0x90,0x81,0xf9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6d,0x80,0x2f,0xf7,0x00,0x00,0xf9,0x00,0x00,0xf9,0x00,0x00,0xf9,0x00,0x00,0xf9,0x00,0x00,0xfb,0x00,0x00,0xfb,0x00,0x00,0xfa,0x00,0x00,0xfb,0x00,0x00,0xfd,0x00,0x00, ] +expected = [ 0x70,0x80,0x03,0x7b,0x8c,0x03,0x86,0x98,0x03,0x91,0xa5,0x03,0x9d,0xb3,0x04,0xa9,0xc1,0x04,0xb6,0xd0,0x04,0xc4,0xdf,0x05,0xd1,0xee,0x05,0xe0,0xff,0x06,0xe1,0xff,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xec,0xff,0x66,0xec,0xff,0x6e,0xee,0xff,0x76,0xef,0xff,0x7e,0xf0,0xff,0x86,0xf0,0xff,0x8e,0xf2,0xff,0x96,0xf3,0xff,0x9e,0xf3,0xff,0xa6,0xf4,0xff,0xae,0xf6,0xff,0xb6, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x20,0x35,0x01,0xf7,0x00,0x01,0xf6,0x00,0x00,0xf6,0x00,0x00,0xf4,0x00,0x00,0xf5,0x00,0x01,0xf3,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0x01,0xef,0xff,0x00,0xf6,0x09,0xfd,0x62,0x80,0x0b,0x63,0x80,0x0f,0x64,0x80,0x13,0x65,0x80,0x17,0x66,0x80,0x1b,0x67,0x80,0x1f,0x9a,0x81,0xe5,0x00,0x00,0x00,0x00,0x00,0x00,0xd4,0xff,0x56,0xf6,0x00,0x00,0xf7,0x00,0x00,0xf7,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0xf9,0x00,0x00,0xf9,0x00,0x00,0xfa,0x00,0x00,0xfb,0x00,0x00,0xfb,0x00,0x00,0xfb,0x00,0x00, ] +expected = [ 0x58,0x75,0x02,0x60,0x80,0x03,0x69,0x8c,0x03,0x73,0x98,0x03,0x7c,0xa5,0x03,0x87,0xb3,0x04,0x91,0xc1,0x04,0x9c,0xd0,0x04,0xa8,0xdf,0x05,0xb3,0xee,0x05,0xc0,0xff,0x06,0xc2,0xff,0x0e,0xc4,0xff,0x16,0xc6,0xff,0x1e,0xc8,0xff,0x26,0xca,0xff,0x2e,0xcc,0xff,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd4,0xff,0x56,0xd6,0xff,0x5e,0xd8,0xff,0x66,0xda,0xff,0x6e,0xdc,0xff,0x76,0xde,0xff,0x7e,0xe0,0xff,0x86,0xe2,0xff,0x8e,0xe4,0xff,0x96,0xe6,0xff,0x9e,0xe8,0xff,0xa6,0xea,0xff,0xae, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x16,0x30,0x01,0xf8,0x00,0x00,0xf7,0x00,0x00,0xf7,0x00,0x00,0xf5,0x00,0x00,0xf5,0x00,0x00,0xf4,0x00,0x00,0xf3,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0x00,0xef,0xff,0xff,0xf5,0x09,0xfc,0xf1,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0x00,0xf3,0x00,0x00,0x44,0x01,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0xb8,0xff,0x45,0xf5,0x00,0x00,0xf6,0x00,0x00,0xf6,0x00,0x00,0xf7,0x00,0x00,0xf7,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0xfa,0x00,0x01,0xfa,0x00,0x00,0xfa,0x00,0x00,0xfb,0x00,0x00,0xfb,0x00,0x00, ] +expected = [ 0x42,0x6a,0x02,0x49,0x75,0x02,0x50,0x80,0x02,0x58,0x8c,0x02,0x5f,0x98,0x02,0x68,0xa5,0x03,0x70,0xb3,0x03,0x79,0xc1,0x03,0x82,0xd0,0x04,0x8c,0xdf,0x04,0x95,0xee,0x04,0xa0,0xff,0x05,0xa3,0xff,0x0d,0xa6,0xff,0x15,0xa9,0xff,0x1d,0xac,0xff,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb8,0xff,0x45,0xbb,0xff,0x4d,0xbe,0xff,0x55,0xc1,0xff,0x5d,0xc4,0xff,0x65,0xc7,0xff,0x6d,0xca,0xff,0x75,0xcd,0xff,0x7d,0xd1,0xff,0x86,0xd4,0xff,0x8e,0xd7,0xff,0x96,0xda,0xff,0x9e,0xdd,0xff,0xa6, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x0f,0x2a,0x00,0xf9,0x00,0x01,0xf8,0x00,0x00,0xf7,0x00,0x00,0xf7,0x00,0x00,0xf5,0x00,0x00,0xf5,0x00,0x01,0xf4,0x00,0x00,0xf3,0x00,0x00,0xf2,0x00,0x01,0xf2,0x00,0x00,0xef,0xff,0x00,0xf3,0x09,0xfd,0xf1,0x00,0x00,0xf2,0x00,0x00,0x66,0x01,0xe3,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0xff,0x35,0xf4,0x00,0x00,0xf5,0x00,0x00,0xf5,0x00,0x00,0xf6,0x00,0x00,0xf7,0x00,0x00,0xf7,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0xf9,0x00,0x01,0xf9,0x00,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00, ] +expected = [ 0x30,0x5f,0x01,0x35,0x6a,0x02,0x3a,0x75,0x02,0x40,0x80,0x02,0x46,0x8c,0x02,0x4c,0x98,0x02,0x53,0xa5,0x03,0x5a,0xb3,0x03,0x61,0xc1,0x03,0x68,0xd0,0x04,0x70,0xdf,0x04,0x77,0xee,0x04,0x80,0xff,0x05,0x84,0xff,0x0d,0x88,0xff,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0xff,0x35,0x9c,0xff,0x3d,0xa0,0xff,0x45,0xa4,0xff,0x4d,0xa8,0xff,0x55,0xad,0xff,0x5d,0xb1,0xff,0x65,0xb5,0xff,0x6d,0xb9,0xff,0x75,0xbd,0xff,0x7d,0xc1,0xff,0x86,0xc5,0xff,0x8e,0xc9,0xff,0x96,0xcd,0xff,0x9e, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x08,0x26,0x01,0xfa,0x00,0x00,0xf8,0x00,0x01,0xf9,0x00,0x00,0xf7,0x00,0x00,0xf6,0x00,0x00,0xf6,0x00,0x00,0xf5,0x00,0x01,0xf4,0x00,0x00,0xf3,0x00,0x00,0xf2,0x00,0x01,0xf2,0x00,0x00,0xef,0xff,0x00,0xf2,0x09,0xfd,0x8c,0x01,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0xff,0x25,0xf3,0x00,0x00,0xf4,0x00,0x00,0xf4,0x00,0x00,0xf6,0x00,0x00,0xf6,0x00,0x00,0xf6,0x00,0x00,0xf6,0x00,0x00,0xf7,0x00,0x00,0xf7,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0xfa,0x00,0x01,0xfa,0x00,0x00,0xfa,0x00,0x00, ] +expected = [ 0x20,0x55,0x01,0x24,0x5f,0x01,0x27,0x6a,0x02,0x2c,0x75,0x02,0x30,0x80,0x02,0x34,0x8c,0x02,0x39,0x98,0x02,0x3e,0xa5,0x03,0x43,0xb3,0x03,0x48,0xc1,0x03,0x4e,0xd0,0x04,0x54,0xdf,0x04,0x59,0xee,0x04,0x60,0xff,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0xff,0x25,0x79,0xff,0x2d,0x7e,0xff,0x35,0x83,0xff,0x3d,0x89,0xff,0x45,0x8e,0xff,0x4d,0x93,0xff,0x55,0x98,0xff,0x5d,0x9d,0xff,0x65,0xa2,0xff,0x6d,0xa7,0xff,0x75,0xac,0xff,0x7d,0xb2,0xff,0x86,0xb7,0xff,0x8e,0xbc,0xff,0x96, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x03,0x22,0x01,0xfa,0x00,0x00,0xfa,0x00,0x00,0xf8,0x00,0x01,0xf8,0x00,0x00,0xf8,0x00,0x00,0xf7,0x00,0x00,0xf6,0x00,0x00,0xf5,0x00,0x01,0xf5,0x00,0x00,0xf3,0x00,0x00,0xf2,0x00,0x01,0xf2,0x00,0x00,0xb4,0x11,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0x81,0xee,0xc4,0x81,0xea,0x1f,0x80,0x13,0xf4,0x00,0x00,0xf5,0x00,0x00,0xf5,0x00,0x00,0xf5,0x00,0x00,0xf6,0x00,0x00,0xf6,0x00,0x00,0xf7,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0xf9,0x00,0x01,0xf9,0x00,0x00, ] +expected = [ 0x13,0x4c,0x01,0x15,0x55,0x01,0x18,0x5f,0x01,0x1a,0x6a,0x02,0x1d,0x75,0x02,0x20,0x80,0x02,0x23,0x8c,0x02,0x26,0x98,0x02,0x29,0xa5,0x03,0x2d,0xb3,0x03,0x30,0xc1,0x03,0x34,0xd0,0x04,0x38,0xdf,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5e,0xff,0x2d,0x64,0xff,0x35,0x6b,0xff,0x3d,0x71,0xff,0x45,0x77,0xff,0x4d,0x7d,0xff,0x55,0x83,0xff,0x5d,0x89,0xff,0x65,0x90,0xff,0x6d,0x96,0xff,0x75,0x9c,0xff,0x7d,0xa2,0xff,0x86,0xa8,0xff,0x8e, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0xff,0x1d,0x01,0xfb,0x00,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00,0xf9,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x01,0xf6,0x00,0x00,0xf6,0x00,0x00,0xf4,0x00,0x00,0xf4,0x00,0x00,0xf3,0x00,0x00,0xf2,0x00,0x00,0xf3,0x98,0xff,0x00,0x00,0x00,0x20,0xff,0x04,0x17,0x80,0x0a,0xed,0x81,0xfa,0x00,0x00,0x00,0xd1,0x81,0xea,0x11,0x80,0x12,0xf4,0x00,0x00,0xf4,0x00,0x00,0xf5,0x00,0x00,0xf5,0x00,0x00,0xf6,0x00,0x00,0xf7,0x00,0x01,0xf7,0x00,0x00,0xf7,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0xfa,0x00,0x00, ] +expected = [ 0x08,0x43,0x01,0x09,0x4c,0x01,0x0a,0x55,0x01,0x0c,0x5f,0x01,0x0d,0x6a,0x01,0x0e,0x75,0x01,0x10,0x80,0x02,0x11,0x8c,0x02,0x13,0x98,0x02,0x14,0xa5,0x02,0x16,0xb3,0x02,0x18,0xc1,0x03,0x1a,0xd0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xff,0x04,0x27,0xff,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43,0xff,0x2c,0x4b,0xff,0x34,0x52,0xff,0x3c,0x59,0xff,0x44,0x60,0xff,0x4c,0x67,0xff,0x54,0x6f,0xff,0x5d,0x76,0xff,0x65,0x7d,0xff,0x6d,0x84,0xff,0x75,0x8b,0xff,0x7d,0x93,0xff,0x85, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0xfc,0x1a,0x00,0xfd,0x00,0x00,0xfc,0x00,0x00,0xfb,0x00,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00,0xf9,0x00,0xff,0xf9,0x00,0xff,0xf8,0x00,0xff,0xf7,0x00,0xff,0xf6,0x00,0xff,0xf5,0x00,0xff,0xf5,0x00,0xff,0x02,0x70,0x00,0x02,0x77,0x00,0xf2,0xff,0xfe,0xef,0x09,0xfa,0x0a,0x80,0x08,0xfa,0x81,0xfc,0x00,0x00,0x00,0xdf,0x81,0xea,0x07,0x80,0x0f,0xf5,0x00,0xff,0xf6,0x00,0xff,0xf6,0x00,0xff,0xf7,0x00,0x00,0xf7,0x00,0xff,0xf8,0x00,0xff,0xf8,0x00,0xff,0xf9,0x00,0xff,0xf9,0x00,0x00,0xf9,0x00,0xff, ] +expected = [ 0x00,0x3b,0x00,0x01,0x43,0x00,0x01,0x4c,0x00,0x01,0x55,0x00,0x01,0x5f,0x00,0x01,0x6a,0x00,0x01,0x75,0x00,0x02,0x80,0x00,0x02,0x8c,0x00,0x02,0x98,0x00,0x02,0xa5,0x00,0x02,0xb3,0x00,0x03,0xc1,0x00,0x03,0xd0,0x00,0x03,0xdf,0x00,0x03,0xee,0x00,0x04,0xff,0x00,0x0c,0xff,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2c,0xff,0x29,0x34,0xff,0x31,0x3c,0xff,0x39,0x44,0xff,0x41,0x4c,0xff,0x4a,0x54,0xff,0x52,0x5d,0xff,0x5a,0x65,0xff,0x62,0x6d,0xff,0x6a,0x75,0xff,0x73,0x7d,0xff,0x7b, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x17,0x06,0x00,0x00,0x04,0x01,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x08,0x01,0x00,0x08,0x00,0x00,0x0a,0x00,0x00,0x0a,0x00,0x00,0x0b,0x00,0x00,0x0b,0x01,0x00,0x0d,0x00,0x00,0x0e,0x00,0x00,0x0f,0x00,0xff,0x10,0xfd,0x09,0x0d,0x0a,0x80,0x17,0xfa,0x81,0xed,0x00,0x00,0x00,0x0e,0x80,0x27,0x00,0x00,0x0d,0x00,0x00,0x0c,0x00,0x00,0x0c,0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00,0x0a,0x01,0x00,0x0a,0x00,0x00,0x09,0x00,0x00,0x08,0x00,0x00,0x09, ] +expected = [ 0x00,0x34,0x06,0x00,0x3b,0x07,0x01,0x43,0x08,0x01,0x4c,0x09,0x01,0x55,0x0a,0x01,0x5f,0x0b,0x01,0x6a,0x0c,0x01,0x75,0x0e,0x02,0x80,0x0f,0x02,0x8c,0x11,0x02,0x98,0x12,0x02,0xa5,0x14,0x02,0xb3,0x15,0x03,0xc1,0x17,0x03,0xd0,0x19,0x03,0xdf,0x1b,0x03,0xee,0x1d,0x04,0xff,0x1f,0x0c,0xff,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0xff,0x3b,0x2c,0xff,0x43,0x34,0xff,0x4a,0x3c,0xff,0x51,0x44,0xff,0x58,0x4c,0xff,0x60,0x54,0xff,0x67,0x5d,0xff,0x6e,0x65,0xff,0x75,0x6d,0xff,0x7c,0x75,0xff,0x84, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x12,0x08,0x00,0x01,0x03,0x00,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x05,0x01,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x09,0x00,0x00,0x0a,0x00,0x00,0x0a,0x00,0x00,0x0b,0x00,0x00,0x0d,0x00,0x00,0x0d,0x00,0x00,0x0e,0x00,0x00,0x0f,0xff,0xff,0x10,0xfc,0x09,0x0f,0xff,0x81,0xe1,0x00,0x00,0x00,0x09,0x80,0x34,0x00,0x00,0x0d,0x00,0x00,0x0d,0x00,0x00,0x0d,0x00,0x00,0x0c,0x01,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00,0x0a,0x00,0x00,0x0b,0x00,0x00,0x0a,0x00,0x00,0x09, ] +expected = [ 0x00,0x2c,0x0b,0x00,0x34,0x0c,0x00,0x3b,0x0e,0x00,0x43,0x10,0x00,0x4c,0x12,0x01,0x55,0x15,0x01,0x5f,0x17,0x01,0x6a,0x1a,0x01,0x75,0x1c,0x01,0x80,0x1f,0x01,0x8c,0x22,0x01,0x98,0x25,0x01,0xa5,0x28,0x02,0xb3,0x2c,0x02,0xc1,0x2f,0x02,0xd0,0x33,0x02,0xdf,0x37,0x02,0xee,0x3b,0x03,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xff,0x51,0x23,0xff,0x57,0x2b,0xff,0x5d,0x33,0xff,0x64,0x3b,0xff,0x6a,0x44,0xff,0x70,0x4c,0xff,0x76,0x54,0xff,0x7c,0x5c,0xff,0x83,0x64,0xff,0x89,0x6c,0xff,0x8f, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x10,0x09,0x00,0xff,0x03,0x00,0x01,0x04,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x01,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x09,0x00,0x00,0x0a,0x00,0x00,0x0a,0x00,0x00,0x0b,0x01,0x00,0x0c,0x00,0x00,0x0e,0x00,0x00,0x0e,0x00,0x00,0x0f,0x00,0xff,0x0f,0xff,0x89,0xd4,0x00,0x00,0x00,0x06,0x80,0x41,0x00,0x00,0x0e,0x00,0x00,0x0e,0x00,0x00,0x0d,0x00,0x00,0x0c,0x00,0x00,0x0d,0x01,0x00,0x0c,0x00,0x00,0x0b,0x00,0x00,0x0a,0x00,0x00,0x0a,0x00,0x00,0x09, ] +expected = [ 0x00,0x26,0x0e,0x00,0x2c,0x10,0x00,0x34,0x13,0x00,0x3b,0x16,0x00,0x43,0x19,0x00,0x4c,0x1c,0x01,0x55,0x20,0x01,0x5f,0x23,0x01,0x6a,0x27,0x01,0x75,0x2b,0x01,0x80,0x2f,0x01,0x8c,0x34,0x01,0x98,0x38,0x01,0xa5,0x3d,0x02,0xb3,0x42,0x02,0xc1,0x48,0x02,0xd0,0x4d,0x02,0xdf,0x53,0x02,0xee,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0xff,0x69,0x1b,0xff,0x6e,0x23,0xff,0x73,0x2b,0xff,0x78,0x33,0xff,0x7d,0x3b,0xff,0x83,0x44,0xff,0x88,0x4c,0xff,0x8d,0x54,0xff,0x92,0x5c,0xff,0x97,0x64,0xff,0x9c, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x0d,0x08,0x00,0x00,0x04,0x00,0xff,0x03,0x00,0x01,0x03,0x00,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x06,0x01,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x09,0xff,0x80,0xc9,0x00,0xb4,0xe4,0x01,0x46,0x2e,0x00,0x00,0x0b,0x01,0x00,0x0c,0x00,0x00,0x0d,0x00,0x00,0x0e,0x00,0x00,0x10,0xff,0x91,0xc9,0x00,0x00,0x00,0x02,0x80,0x4f,0x00,0x00,0x0f,0x00,0x00,0x0e,0x00,0x00,0x0e,0x00,0x00,0x0d,0x00,0x00,0x0c,0x00,0x00,0x0c,0x01,0x00,0x0c,0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00,0x0a, ] +expected = [ 0x00,0x20,0x0f,0x00,0x26,0x13,0x00,0x2c,0x16,0x00,0x34,0x19,0x00,0x3b,0x1d,0x00,0x43,0x21,0x00,0x4c,0x26,0x01,0x55,0x2a,0x01,0x5f,0x2f,0x01,0x6a,0x34,0x01,0x75,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x98,0x4c,0x01,0xa5,0x52,0x02,0xb3,0x59,0x02,0xc1,0x60,0x02,0xd0,0x67,0x02,0xdf,0x6f,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0xff,0x83,0x13,0xff,0x87,0x1b,0xff,0x8b,0x23,0xff,0x8f,0x2b,0xff,0x93,0x33,0xff,0x97,0x3b,0xff,0x9b,0x44,0xff,0xa0,0x4c,0xff,0xa4,0x54,0xff,0xa8,0x5c,0xff,0xac, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x0a,0x09,0x00,0x00,0x03,0x00,0x00,0x02,0x00,0xff,0x03,0x00,0x01,0x04,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x01,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x08,0x00,0xcb,0xdf,0x00,0x00,0x00,0x00,0xb4,0xda,0x01,0x46,0x36,0x00,0x00,0x0b,0x01,0x00,0x0c,0x00,0x00,0x0d,0xfe,0x30,0x8d,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x80,0x5e,0x00,0x00,0x0f,0x00,0x00,0x0f,0x00,0x00,0x0e,0x00,0x00,0x0e,0x00,0x00,0x0d,0x00,0x00,0x0d,0x00,0x00,0x0c,0x01,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00,0x0a, ] +expected = [ 0x00,0x1a,0x10,0x00,0x20,0x14,0x00,0x26,0x17,0x00,0x2c,0x1b,0x00,0x34,0x20,0x00,0x3b,0x25,0x00,0x43,0x2a,0x00,0x4c,0x2f,0x01,0x55,0x35,0x01,0x5f,0x3b,0x01,0x6a,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x98,0x5f,0x01,0xa5,0x67,0x02,0xb3,0x6f,0x02,0xc1,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0x9f,0x0b,0xff,0xa2,0x13,0xff,0xa5,0x1b,0xff,0xa8,0x23,0xff,0xab,0x2b,0xff,0xae,0x33,0xff,0xb1,0x3b,0xff,0xb4,0x44,0xff,0xb7,0x4c,0xff,0xba,0x54,0xff,0xbd, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x08,0x08,0x00,0x00,0x01,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0xff,0x03,0x00,0x01,0x03,0x00,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x3b,0x2c,0x00,0xcb,0xd9,0x00,0x00,0x00,0x00,0xb4,0xd1,0x00,0xae,0xcd,0xff,0xa7,0xc9,0xff,0xa0,0xc4,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xdf,0xa7,0xff,0xff,0x0f,0xfc,0x09,0x15,0x00,0x00,0x0f,0x00,0x00,0x0f,0x00,0x00,0x0e,0x00,0x00,0x0e,0x00,0x00,0x0d,0x00,0x00,0x0d,0x00,0x00,0x0c,0x00,0x00,0x0c,0x00,0x00,0x0b, ] +expected = [ 0x00,0x15,0x10,0x00,0x1a,0x13,0x00,0x20,0x18,0x00,0x26,0x1c,0x00,0x2c,0x21,0x00,0x34,0x26,0x00,0x3b,0x2c,0x00,0x43,0x32,0x00,0x4c,0x39,0x00,0x55,0x40,0x00,0x5f,0x47,0x00,0x6a,0x4f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xdf,0xa7,0x01,0xee,0xb2,0x02,0xff,0xbf,0x0a,0xff,0xc1,0x12,0xff,0xc3,0x1a,0xff,0xc5,0x22,0xff,0xc7,0x2a,0xff,0xc9,0x32,0xff,0xcb,0x3b,0xff,0xcd,0x43,0xff,0xcf,0x4b,0xff,0xd1, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x06,0x06,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0xff,0x04,0x00,0x01,0x04,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x3b,0x33,0x00,0xcb,0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xc1,0xa9,0x00,0x00,0x0d,0x00,0x00,0x10,0x00,0xff,0x0f,0xfd,0x09,0x17,0x00,0x00,0x0f,0x00,0x00,0x0f,0x00,0x00,0x0e,0x00,0x00,0x0e,0x00,0x00,0x0d,0x00,0x00,0x0d,0x01,0x00,0x0c,0x00,0x00,0x0c, ] +expected = [ 0x00,0x10,0x0e,0x00,0x15,0x12,0x00,0x1a,0x17,0x00,0x20,0x1c,0x00,0x26,0x21,0x00,0x2c,0x27,0x00,0x34,0x2d,0x00,0x3b,0x34,0x00,0x43,0x3b,0x00,0x4c,0x43,0x00,0x55,0x4b,0x00,0x5f,0x53,0x00,0x6a,0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xc1,0xa9,0x01,0xd0,0xb5,0x01,0xdf,0xc3,0x01,0xee,0xd0,0x02,0xff,0xdf,0x0a,0xff,0xe0,0x12,0xff,0xe1,0x1a,0xff,0xe2,0x22,0xff,0xe3,0x2a,0xff,0xe4,0x32,0xff,0xe5,0x3b,0xff,0xe6,0x43,0xff,0xe7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x05,0x06,0x00,0xff,0x01,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0xff,0x03,0x00,0x01,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x3b,0x3b,0x00,0x40,0x40,0x01,0x46,0x46,0x01,0x4c,0x4c,0x01,0x52,0x52,0x01,0x59,0x59,0x00,0x00,0x0c,0x00,0x00,0x0d,0x00,0x00,0x0e,0x00,0x00,0x0f,0x00,0xff,0x0f,0xfd,0x09,0x18,0x00,0x00,0x0f,0x00,0x00,0x0f,0x00,0x00,0x0e,0x00,0x00,0x0e,0x00,0x00,0x0d,0x00,0x00,0x0d,0x01,0x00,0x0c, ] +expected = [ 0x00,0x0d,0x0d,0x00,0x10,0x10,0x00,0x15,0x15,0x00,0x1a,0x1a,0x00,0x20,0x20,0x00,0x26,0x26,0x00,0x2c,0x2c,0x00,0x34,0x34,0x00,0x3b,0x3b,0x00,0x43,0x43,0x00,0x4c,0x4c,0x00,0x55,0x55,0x00,0x5f,0x5f,0x00,0x6a,0x6a,0x00,0x75,0x75,0x01,0x80,0x80,0x01,0x8c,0x8c,0x01,0x98,0x98,0x01,0xa5,0xa5,0x01,0xb3,0xb3,0x01,0xc1,0xc1,0x01,0xd0,0xd0,0x01,0xdf,0xdf,0x01,0xee,0xee,0x02,0xff,0xff,0x0a,0xff,0xff,0x12,0xff,0xff,0x1a,0xff,0xff,0x22,0xff,0xff,0x2a,0xff,0xff,0x32,0xff,0xff,0x3b,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x02,0x03,0x00,0xff,0x01,0x00,0xfe,0xff,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfd,0x00,0x00,0xfd,0xff,0x00,0xfc,0x01,0x00,0xfc,0x00,0x00,0xfb,0x00,0x00,0xfb,0x00,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00,0xf9,0x00,0x00,0xf8,0x00,0x00,0xf7,0x00,0x00,0xf7,0x00,0x00,0xf6,0x00,0x00,0xf5,0x00,0x00,0xf4,0x00,0x00,0xf3,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0xff,0xf0,0xff,0xfc,0xf8,0x09,0x00,0xf2,0x00,0x00,0xf2,0x00,0x00,0xf3,0x00,0x00,0xf3,0x00,0x00,0xf3,0x00,0x00,0xf5,0x00, ] +expected = [ 0x00,0x08,0x09,0x00,0x0b,0x0d,0x00,0x0e,0x10,0x00,0x12,0x15,0x00,0x17,0x1a,0x00,0x1c,0x20,0x00,0x21,0x26,0x00,0x27,0x2c,0x00,0x2d,0x34,0x00,0x34,0x3b,0x00,0x3b,0x43,0x00,0x43,0x4c,0x00,0x4b,0x55,0x00,0x54,0x5f,0x00,0x5d,0x6a,0x00,0x66,0x75,0x00,0x70,0x80,0x00,0x7b,0x8c,0x00,0x86,0x98,0x00,0x91,0xa5,0x00,0x9d,0xb3,0x00,0xa9,0xc1,0x00,0xb6,0xd0,0x00,0xc4,0xdf,0x00,0xd1,0xee,0x01,0xe0,0xff,0x09,0xe1,0xff,0x11,0xe2,0xff,0x19,0xe3,0xff,0x21,0xe4,0xff,0x29,0xe4,0xff,0x32,0xe6,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x00,0x02,0x00,0x00,0x00,0x00,0xff,0x01,0x00,0xff,0xff,0x00,0xff,0x00,0x00,0xfd,0x00,0x00,0xfe,0x00,0x00,0xfd,0x00,0x00,0xfd,0xff,0x00,0xfd,0x01,0x00,0xfb,0x00,0x00,0xfc,0x00,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00,0xf8,0x00,0x00,0xf9,0x00,0x00,0xf7,0x00,0x00,0xf6,0x00,0x00,0xf6,0x00,0x00,0xf4,0x00,0x00,0xf5,0x00,0x00,0xf3,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0x00,0xef,0xff,0xfd,0xf6,0x09,0x00,0xf1,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0x00,0xf3,0x00,0x00,0xf3,0x00, ] +expected = [ 0x00,0x04,0x06,0x00,0x07,0x09,0x00,0x09,0x0d,0x00,0x0c,0x10,0x00,0x10,0x15,0x00,0x13,0x1a,0x00,0x18,0x20,0x00,0x1c,0x26,0x00,0x21,0x2c,0x00,0x27,0x34,0x00,0x2c,0x3b,0x00,0x33,0x43,0x00,0x39,0x4c,0x00,0x40,0x55,0x00,0x48,0x5f,0x00,0x4f,0x6a,0x00,0x58,0x75,0x00,0x60,0x80,0x00,0x69,0x8c,0x00,0x73,0x98,0x00,0x7c,0xa5,0x00,0x87,0xb3,0x00,0x91,0xc1,0x00,0x9c,0xd0,0x00,0xa8,0xdf,0x00,0xb3,0xee,0x01,0xc0,0xff,0x09,0xc2,0xff,0x11,0xc4,0xff,0x19,0xc6,0xff,0x21,0xc8,0xff,0x29,0xca,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x01,0x00,0xfe,0xff,0x00,0xff,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfd,0x00,0x00,0xfd,0xff,0x00,0xfc,0x01,0x00,0xfc,0x00,0x00,0xfb,0x00,0x00,0xfb,0x00,0x00,0xf9,0x00,0x00,0xfa,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0xf7,0x00,0x00,0xf7,0x00,0x00,0xf5,0x00,0x00,0xf5,0x00,0x00,0xf4,0x00,0x00,0xf3,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0x00,0xef,0xff,0xfd,0xf5,0x09,0x00,0xf1,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0x00,0xf3,0x00, ] +expected = [ 0x00,0x02,0x04,0x00,0x04,0x06,0x00,0x05,0x09,0x00,0x08,0x0d,0x00,0x0a,0x10,0x00,0x0d,0x15,0x00,0x10,0x1a,0x00,0x14,0x20,0x00,0x17,0x26,0x00,0x1c,0x2c,0x00,0x20,0x34,0x00,0x25,0x3b,0x00,0x2a,0x43,0x00,0x30,0x4c,0x00,0x35,0x55,0x00,0x3c,0x5f,0x00,0x42,0x6a,0x00,0x49,0x75,0x00,0x50,0x80,0x00,0x58,0x8c,0x00,0x5f,0x98,0x00,0x68,0xa5,0x00,0x70,0xb3,0x00,0x79,0xc1,0x00,0x82,0xd0,0x00,0x8c,0xdf,0x00,0x95,0xee,0x01,0xa0,0xff,0x09,0xa3,0xff,0x11,0xa6,0xff,0x19,0xa9,0xff,0x21,0xac,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0x01,0x00,0xff,0xff,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfd,0x00,0x00,0xfd,0xff,0x00,0xfd,0x01,0x00,0xfb,0x00,0x00,0xfc,0x00,0x00,0xfb,0x00,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00,0xf9,0x00,0x00,0xf8,0x00,0x00,0xf7,0x00,0x00,0xf7,0x00,0x00,0xf5,0x00,0x00,0xf5,0x00,0x00,0xf4,0x00,0x00,0xf3,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0x00,0xef,0xff,0xfd,0xf3,0x09,0x00,0xf1,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00, ] +expected = [ 0x00,0x01,0x02,0x00,0x02,0x04,0x00,0x03,0x06,0x00,0x04,0x09,0x00,0x06,0x0d,0x00,0x08,0x10,0x00,0x0a,0x15,0x00,0x0d,0x1a,0x00,0x10,0x20,0x00,0x13,0x26,0x00,0x16,0x2c,0x00,0x1a,0x34,0x00,0x1d,0x3b,0x00,0x22,0x43,0x00,0x26,0x4c,0x00,0x2b,0x55,0x00,0x30,0x5f,0x00,0x35,0x6a,0x00,0x3a,0x75,0x00,0x40,0x80,0x00,0x46,0x8c,0x00,0x4c,0x98,0x00,0x53,0xa5,0x00,0x5a,0xb3,0x00,0x61,0xc1,0x00,0x68,0xd0,0x00,0x70,0xdf,0x00,0x77,0xee,0x01,0x80,0xff,0x09,0x84,0xff,0x11,0x88,0xff,0x19,0x8c,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0x01,0x00,0xff,0xff,0x00,0xff,0x00,0x00,0xfd,0x00,0x00,0xfe,0x00,0x00,0xfd,0x00,0x00,0xfc,0xff,0x00,0xfd,0x01,0x00,0xfc,0x00,0x00,0xfb,0x00,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00,0xf8,0x00,0x00,0xf9,0x00,0x00,0xf7,0x00,0x00,0xf6,0x00,0x00,0xf6,0x00,0x00,0xf5,0x00,0x00,0xf4,0x00,0x00,0xf3,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0x00,0xef,0xff,0xfc,0xf2,0x09,0x00,0xf1,0x00,0x00,0xf2,0x00, ] +expected = [ 0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x01,0x04,0x00,0x02,0x06,0x00,0x03,0x09,0x00,0x04,0x0d,0x00,0x06,0x10,0x00,0x08,0x15,0x00,0x09,0x1a,0x00,0x0c,0x20,0x00,0x0e,0x26,0x00,0x10,0x2c,0x00,0x13,0x34,0x00,0x16,0x3b,0x00,0x19,0x43,0x00,0x1c,0x4c,0x00,0x20,0x55,0x00,0x24,0x5f,0x00,0x27,0x6a,0x00,0x2c,0x75,0x00,0x30,0x80,0x00,0x34,0x8c,0x00,0x39,0x98,0x00,0x3e,0xa5,0x00,0x43,0xb3,0x00,0x48,0xc1,0x00,0x4e,0xd0,0x00,0x54,0xdf,0x00,0x59,0xee,0x00,0x60,0xff,0x08,0x65,0xff,0x10,0x6a,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0x01,0x00,0xff,0xff,0x00,0xff,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfd,0x00,0x00,0xfd,0xff,0x00,0xfd,0x01,0x00,0xfb,0x00,0x00,0xfc,0x00,0x00,0xfb,0x00,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0xf7,0x00,0x00,0xf6,0x00,0x00,0xf5,0x00,0x00,0xf5,0x00,0x00,0xf3,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0x00,0xef,0xff,0xfc,0xf0,0x09,0x00,0xf1,0x00, ] +expected = [ 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x01,0x04,0x00,0x01,0x06,0x00,0x02,0x09,0x00,0x03,0x0d,0x00,0x04,0x10,0x00,0x05,0x15,0x00,0x06,0x1a,0x00,0x08,0x20,0x00,0x09,0x26,0x00,0x0b,0x2c,0x00,0x0d,0x34,0x00,0x0e,0x3b,0x00,0x11,0x43,0x00,0x13,0x4c,0x00,0x15,0x55,0x00,0x18,0x5f,0x00,0x1a,0x6a,0x00,0x1d,0x75,0x00,0x20,0x80,0x00,0x23,0x8c,0x00,0x26,0x98,0x00,0x29,0xa5,0x00,0x2d,0xb3,0x00,0x30,0xc1,0x00,0x34,0xd0,0x00,0x38,0xdf,0x00,0x3b,0xee,0x00,0x40,0xff,0x08,0x46,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 3 +data = [ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0x01,0x00,0xff,0xff,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfd,0x00,0x00,0xfd,0xff,0x00,0xfd,0x01,0x00,0xfc,0x00,0x00,0xfb,0x00,0x00,0xfb,0x00,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00,0xf9,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0xf6,0x00,0x00,0xf6,0x00,0x00,0xf4,0x00,0x00,0xf4,0x00,0x00,0xf3,0x00,0x00,0xf2,0x00,0x00,0xf2,0x00,0x00,0xef,0xff,0xfc,0xef,0x09, ] +expected = [ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x06,0x00,0x01,0x09,0x00,0x01,0x0d,0x00,0x02,0x10,0x00,0x02,0x15,0x00,0x03,0x1a,0x00,0x04,0x20,0x00,0x04,0x26,0x00,0x05,0x2c,0x00,0x06,0x34,0x00,0x07,0x3b,0x00,0x08,0x43,0x00,0x09,0x4c,0x00,0x0a,0x55,0x00,0x0c,0x5f,0x00,0x0d,0x6a,0x00,0x0e,0x75,0x00,0x10,0x80,0x00,0x11,0x8c,0x00,0x13,0x98,0x00,0x14,0xa5,0x00,0x16,0xb3,0x00,0x18,0xc1,0x00,0x1a,0xd0,0x00,0x1c,0xdf,0x00,0x1d,0xee,0x00,0x20,0xff, ] +PASS: /Users/henddher/Documents/libpng/libpng-1.6.34/libpng-xcode-project/xcode/,/libpng/Build/Products/Debug/libpng-test.xctest/Contents/Resources/f03n2c08.png + diff --git a/tests/f04n2c08.png.log b/tests/f04n2c08.png.log new file mode 100644 index 0000000..c569077 --- /dev/null +++ b/tests/f04n2c08.png.log @@ -0,0 +1,289 @@ +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xff,0x00,0x08,0x00,0x08,0x07,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08, ] +expected = [ 0xff,0x00,0x08,0xff,0x08,0x0f,0xff,0x10,0x17,0xff,0x18,0x1f,0xff,0x20,0x27,0xff,0x29,0x2f,0xff,0x31,0x37,0xff,0x39,0x3f,0xff,0x41,0x47,0xff,0x4a,0x4f,0xff,0x52,0x57,0xff,0x5a,0x5f,0xff,0x62,0x67,0xff,0x6a,0x6f,0xff,0x73,0x77,0xff,0x7b,0x7f,0xff,0x83,0x87,0xff,0x8b,0x8f,0xff,0x94,0x97,0xff,0x9c,0x9f,0xff,0xa4,0xa7,0xff,0xac,0xaf,0xff,0xb4,0xb7,0xff,0xbd,0xbf,0xff,0xc5,0xc7,0xff,0xcd,0xcf,0xff,0xd5,0xd7,0xff,0xde,0xdf,0xff,0xe6,0xe7,0xff,0xee,0xef,0xff,0xf6,0xf7,0xff,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xef,0x1d,0xff,0x11,0x02,0xf9,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x04,0x00,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xfe,0x00,0x00,0xfc,0x00,0x00,0xfc,0x00,0x00,0xfb,0x00,0x00,0x02,0x00,0x00,0x01,0x00, ] +expected = [ 0xee,0x1d,0x07,0xff,0x1f,0x08,0xff,0x26,0x0f,0xff,0x2d,0x17,0xff,0x34,0x1f,0xff,0x3b,0x27,0xff,0x43,0x2f,0xff,0x4a,0x37,0xff,0x51,0x3f,0xff,0x58,0x47,0xff,0x60,0x4f,0xff,0x67,0x57,0xff,0x6e,0x5f,0xff,0x75,0x67,0xff,0x7c,0x6f,0xff,0x84,0x77,0xff,0x8b,0x7f,0xff,0x92,0x87,0xff,0x99,0x8f,0xff,0xa1,0x97,0xff,0xa8,0x9f,0xff,0xaf,0xa7,0xff,0xb6,0xaf,0xff,0xbd,0xb7,0xff,0xc5,0xbf,0xff,0xcc,0xc7,0xff,0xd3,0xcf,0xff,0xda,0xd7,0xff,0xe2,0xdf,0xff,0xe9,0xe7,0xff,0xf0,0xef,0xff,0xf7,0xf7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xf1,0x1a,0x00,0x00,0x04,0xff,0x11,0x04,0xf9,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x05,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xfe,0x00,0x00,0xfd,0x00,0x00,0xfc,0x00,0x00,0x02,0x00, ] +expected = [ 0xdf,0x37,0x07,0xee,0x3b,0x07,0xff,0x3f,0x08,0xff,0x45,0x0f,0xff,0x4b,0x17,0xff,0x51,0x1f,0xff,0x57,0x27,0xff,0x5d,0x2f,0xff,0x64,0x37,0xff,0x6a,0x3f,0xff,0x70,0x47,0xff,0x76,0x4f,0xff,0x7c,0x57,0xff,0x83,0x5f,0xff,0x89,0x67,0xff,0x8f,0x6f,0xff,0x95,0x77,0xff,0x9b,0x7f,0xff,0xa2,0x87,0xff,0xa8,0x8f,0xff,0xae,0x97,0xff,0xb4,0x9f,0xff,0xba,0xa7,0xff,0xc1,0xaf,0xff,0xc7,0xb7,0xff,0xcd,0xbf,0xff,0xd3,0xc7,0xff,0xd9,0xcf,0xff,0xe0,0xd7,0xff,0xe6,0xdf,0xff,0xec,0xe7,0xff,0xf2,0xef, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xf1,0x16,0xff,0x00,0x06,0x01,0x00,0x05,0xff,0x11,0x07,0xf9,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x05,0x00,0x00,0x04,0x00,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xfe,0x00,0x00,0xfd,0x00, ] +expected = [ 0xd0,0x4d,0x06,0xdf,0x53,0x07,0xee,0x58,0x07,0xff,0x5f,0x08,0xff,0x64,0x0f,0xff,0x69,0x17,0xff,0x6e,0x1f,0xff,0x73,0x27,0xff,0x78,0x2f,0xff,0x7d,0x37,0xff,0x83,0x3f,0xff,0x88,0x47,0xff,0x8d,0x4f,0xff,0x92,0x57,0xff,0x97,0x5f,0xff,0x9c,0x67,0xff,0xa2,0x6f,0xff,0xa7,0x77,0xff,0xac,0x7f,0xff,0xb1,0x87,0xff,0xb6,0x8f,0xff,0xbb,0x97,0xff,0xc1,0x9f,0xff,0xc6,0xa7,0xff,0xcb,0xaf,0xff,0xd0,0xb7,0xff,0xd5,0xbf,0xff,0xda,0xc7,0xff,0xe0,0xcf,0xff,0xe5,0xd7,0xff,0xea,0xdf,0xff,0xef,0xe7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xf1,0x13,0xff,0x00,0x07,0xff,0x00,0x08,0x01,0x00,0x07,0xff,0x11,0x09,0xf8,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0xff,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x04,0xff,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0xff,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x04,0xff,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0xff,0x00,0x04,0xff,0x00,0x04,0x00,0x00,0x03,0x00,0x00,0x02,0xff,0x00,0x01,0xff,0x00,0x00,0x00,0x00,0xff,0x00, ] +expected = [ 0xc1,0x60,0x05,0xd0,0x67,0x05,0xdf,0x6f,0x06,0xee,0x76,0x06,0xff,0x7f,0x07,0xff,0x83,0x0f,0xff,0x87,0x17,0xff,0x8b,0x1f,0xff,0x8f,0x27,0xff,0x93,0x2e,0xff,0x97,0x37,0xff,0x9b,0x3f,0xff,0xa0,0x47,0xff,0xa4,0x4e,0xff,0xa8,0x57,0xff,0xac,0x5f,0xff,0xb0,0x67,0xff,0xb4,0x6e,0xff,0xb8,0x77,0xff,0xbc,0x7f,0xff,0xc1,0x87,0xff,0xc5,0x8e,0xff,0xc9,0x97,0xff,0xcd,0x9f,0xff,0xd1,0xa6,0xff,0xd5,0xae,0xff,0xd9,0xb7,0xff,0xdd,0xbf,0xff,0xe2,0xc6,0xff,0xe6,0xce,0xff,0xea,0xd7,0xff,0xee,0xdf, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xf2,0x0f,0xff,0x00,0x09,0x01,0x00,0x09,0xff,0x00,0x0a,0x01,0x00,0x09,0xff,0x11,0x0b,0xf8,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0x01,0x00, ] +expected = [ 0xb3,0x6f,0x04,0xc1,0x78,0x05,0xd0,0x81,0x05,0xdf,0x8b,0x06,0xee,0x94,0x06,0xff,0x9f,0x07,0xff,0xa2,0x0f,0xff,0xa5,0x17,0xff,0xa8,0x1f,0xff,0xab,0x27,0xff,0xae,0x2e,0xff,0xb1,0x37,0xff,0xb4,0x3f,0xff,0xb7,0x47,0xff,0xba,0x4e,0xff,0xbd,0x57,0xff,0xc1,0x5f,0xff,0xc4,0x67,0xff,0xc7,0x6e,0xff,0xca,0x77,0xff,0xcd,0x7f,0xff,0xd0,0x87,0xff,0xd3,0x8e,0xff,0xd6,0x97,0xff,0xd9,0x9f,0xff,0xdc,0xa6,0xff,0xe0,0xae,0xff,0xe3,0xb7,0xff,0xe6,0xbf,0xff,0xe9,0xc6,0xff,0xec,0xce,0xff,0xef,0xd7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xf2,0x0d,0x00,0x00,0x0a,0xff,0x00,0x0a,0x01,0x00,0x0b,0xff,0x00,0x0c,0x01,0x00,0x0b,0xff,0x11,0x0d,0xf8,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00, ] +expected = [ 0xa5,0x7c,0x04,0xb3,0x86,0x04,0xc1,0x90,0x05,0xd0,0x9b,0x05,0xdf,0xa7,0x06,0xee,0xb2,0x06,0xff,0xbf,0x07,0xff,0xc1,0x0f,0xff,0xc3,0x17,0xff,0xc5,0x1f,0xff,0xc7,0x27,0xff,0xc9,0x2e,0xff,0xcb,0x37,0xff,0xcd,0x3f,0xff,0xcf,0x47,0xff,0xd1,0x4e,0xff,0xd3,0x57,0xff,0xd5,0x5f,0xff,0xd7,0x67,0xff,0xd9,0x6e,0xff,0xdb,0x77,0xff,0xdd,0x7f,0xff,0xe0,0x87,0xff,0xe2,0x8e,0xff,0xe4,0x97,0xff,0xe6,0x9f,0xff,0xe8,0xa6,0xff,0xea,0xae,0xff,0xec,0xb7,0xff,0xee,0xbf,0xff,0xf0,0xc6,0xff,0xf2,0xce, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xf3,0x09,0x00,0x00,0x0b,0x00,0x00,0x0b,0xff,0x00,0x0d,0x01,0x00,0x0c,0xff,0x00,0x0e,0x01,0x00,0x0d,0xff,0x11,0x0f,0xf8,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00, ] +expected = [ 0x98,0x85,0x04,0xa5,0x91,0x04,0xb3,0x9c,0x04,0xc1,0xa9,0x05,0xd0,0xb5,0x05,0xdf,0xc3,0x06,0xee,0xd0,0x06,0xff,0xdf,0x07,0xff,0xe0,0x0f,0xff,0xe1,0x17,0xff,0xe2,0x1f,0xff,0xe3,0x27,0xff,0xe4,0x2e,0xff,0xe5,0x37,0xff,0xe6,0x3f,0xff,0xe7,0x47,0xff,0xe8,0x4e,0xff,0xe9,0x57,0xff,0xea,0x5f,0xff,0xeb,0x67,0xff,0xec,0x6e,0xff,0xed,0x77,0xff,0xee,0x7f,0xff,0xef,0x87,0xff,0xf0,0x8e,0xff,0xf1,0x97,0xff,0xf2,0x9f,0xff,0xf3,0xa6,0xff,0xf4,0xae,0xff,0xf5,0xb7,0xff,0xf6,0xbf,0xff,0xf7,0xc6, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xf4,0x07,0xff,0x00,0x07,0x00,0x00,0x09,0x00,0x00,0x0a,0x00,0x00,0x0c,0x00,0x00,0x0d,0xff,0x00,0x0f,0x01,0x00,0x0f,0xff,0x11,0x11,0xf7,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0x01,0x01,0xc1,0x00,0x00,0x00,0xff,0xff,0x4e,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff, ] +expected = [ 0x8c,0x8c,0x03,0x98,0x98,0x03,0xa5,0xa5,0x03,0xb3,0xb3,0x04,0xc1,0xc1,0x04,0xd0,0xd0,0x04,0xdf,0xdf,0x05,0xee,0xee,0x05,0xff,0xff,0x06,0xff,0xff,0x0e,0xff,0xff,0x16,0xff,0xff,0x1e,0xff,0xff,0x26,0xff,0xff,0x2e,0xff,0xff,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0xff,0xff,0x56,0xff,0xff,0x5e,0xff,0xff,0x66,0xff,0xff,0x6e,0xff,0xff,0x76,0xff,0xff,0x7e,0xff,0xff,0x86,0xff,0xff,0x8e,0xff,0xff,0x96,0xff,0xff,0x9e,0xff,0xff,0xa6,0xff,0xff,0xae,0xff,0xff,0xb6,0xff,0xff,0xbe, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe4,0xf4,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0xff,0x0c,0x00,0x01,0x0c,0x00,0x00,0x0d,0x00,0xff,0x0e,0x00,0x01,0x0d,0x00,0xff,0x0f,0x11,0xf8,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe9,0x00,0xf8,0x00,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00, ] +expected = [ 0x70,0x80,0x03,0x7b,0x8c,0x03,0x86,0x98,0x03,0x91,0xa5,0x03,0x9d,0xb3,0x04,0xa9,0xc1,0x04,0xb6,0xd0,0x04,0xc4,0xdf,0x05,0xd1,0xee,0x05,0xe0,0xff,0x06,0xe1,0xff,0x0e,0xe2,0xff,0x16,0xe3,0xff,0x1e,0xe4,0xff,0x26,0xe4,0xff,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0xe8,0xff,0x46,0xe8,0xff,0x4e,0xea,0xff,0x56,0xeb,0xff,0x5e,0xec,0xff,0x66,0xec,0xff,0x6e,0xee,0xff,0x76,0xef,0xff,0x7e,0xf0,0xff,0x86,0xf0,0xff,0x8e,0xf2,0xff,0x96,0xf3,0xff,0x9e,0xf3,0xff,0xa6,0xf4,0xff,0xae,0xf6,0xff,0xb6, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xe8,0xf5,0xff,0x08,0x00,0x01,0x09,0x00,0x00,0x0a,0x00,0x00,0x09,0x00,0xff,0x0b,0x00,0x01,0x0a,0x00,0x00,0x0b,0x00,0xff,0x0c,0x00,0x01,0x0b,0x00,0xff,0x0d,0x11,0xf8,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x3a,0x01,0xda,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0x00,0xf8,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00, ] +expected = [ 0x58,0x75,0x02,0x60,0x80,0x03,0x69,0x8c,0x03,0x73,0x98,0x03,0x7c,0xa5,0x03,0x87,0xb3,0x04,0x91,0xc1,0x04,0x9c,0xd0,0x04,0xa8,0xdf,0x05,0xb3,0xee,0x05,0xc0,0xff,0x06,0xc2,0xff,0x0e,0xc4,0xff,0x16,0xc6,0xff,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xff,0x3e,0xd0,0xff,0x46,0xd2,0xff,0x4e,0xd4,0xff,0x56,0xd6,0xff,0x5e,0xd8,0xff,0x66,0xda,0xff,0x6e,0xdc,0xff,0x76,0xde,0xff,0x7e,0xe0,0xff,0x86,0xe2,0xff,0x8e,0xe4,0xff,0x96,0xe6,0xff,0x9e,0xe8,0xff,0xa6,0xea,0xff,0xae, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xea,0xf5,0x00,0x07,0x00,0xff,0x07,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x09,0x00,0x00,0x08,0x00,0x00,0x09,0x00,0x00,0x09,0x00,0x00,0x0a,0x00,0x00,0x09,0x00,0xff,0x0b,0x11,0xf7,0x03,0x00,0xff,0x03,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xaf,0xff,0x2d,0xe4,0x00,0xf7,0x03,0x00,0xff,0x03,0x00,0xff,0x03,0x00,0xff,0x03,0x00,0xff,0x03,0x00,0xff,0x03,0x00,0xff,0x03,0x00,0xff,0x03,0x00,0xff,0x03,0x00,0xff,0x04,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00, ] +expected = [ 0x42,0x6a,0x02,0x49,0x75,0x02,0x50,0x80,0x02,0x58,0x8c,0x02,0x5f,0x98,0x02,0x68,0xa5,0x03,0x70,0xb3,0x03,0x79,0xc1,0x03,0x82,0xd0,0x04,0x8c,0xdf,0x04,0x95,0xee,0x04,0xa0,0xff,0x05,0xa3,0xff,0x0d,0xa6,0xff,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0xaf,0xff,0x2d,0xb2,0xff,0x35,0xb5,0xff,0x3d,0xb8,0xff,0x45,0xbb,0xff,0x4d,0xbe,0xff,0x55,0xc1,0xff,0x5d,0xc4,0xff,0x65,0xc7,0xff,0x6d,0xca,0xff,0x75,0xcd,0xff,0x7d,0xd1,0xff,0x86,0xd4,0xff,0x8e,0xd7,0xff,0x96,0xda,0xff,0x9e,0xdd,0xff,0xa6, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xee,0xf5,0xff,0x05,0x00,0x01,0x05,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0xff,0x07,0x00,0x01,0x07,0x00,0x00,0x07,0x00,0xff,0x07,0x00,0x01,0x08,0x00,0x00,0x07,0x00,0xff,0x09,0x11,0xf8,0x80,0x01,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0xe1,0x00,0xf8,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00, ] +expected = [ 0x30,0x5f,0x01,0x35,0x6a,0x02,0x3a,0x75,0x02,0x40,0x80,0x02,0x46,0x8c,0x02,0x4c,0x98,0x02,0x53,0xa5,0x03,0x5a,0xb3,0x03,0x61,0xc1,0x03,0x68,0xd0,0x04,0x70,0xdf,0x04,0x77,0xee,0x04,0x80,0xff,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0xff,0x25,0x94,0xff,0x2d,0x98,0xff,0x35,0x9c,0xff,0x3d,0xa0,0xff,0x45,0xa4,0xff,0x4d,0xa8,0xff,0x55,0xad,0xff,0x5d,0xb1,0xff,0x65,0xb5,0xff,0x6d,0xb9,0xff,0x75,0xbd,0xff,0x7d,0xc1,0xff,0x86,0xc5,0xff,0x8e,0xc9,0xff,0x96,0xcd,0xff,0x9e, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xf0,0xf6,0x00,0x04,0x00,0xff,0x03,0x00,0x01,0x05,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x05,0x00,0xff,0x05,0x00,0x01,0x05,0x00,0x00,0x05,0x00,0xff,0x06,0x00,0x01,0x06,0x00,0x00,0x05,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x6a,0xff,0x15,0xdf,0x00,0xf8,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00, ] +expected = [ 0x20,0x55,0x01,0x24,0x5f,0x01,0x27,0x6a,0x02,0x2c,0x75,0x02,0x30,0x80,0x02,0x34,0x8c,0x02,0x39,0x98,0x02,0x3e,0xa5,0x03,0x43,0xb3,0x03,0x48,0xc1,0x03,0x4e,0xd0,0x04,0x54,0xdf,0x04,0x59,0xee,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x6a,0xff,0x15,0x6f,0xff,0x1d,0x74,0xff,0x25,0x79,0xff,0x2d,0x7e,0xff,0x35,0x83,0xff,0x3d,0x89,0xff,0x45,0x8e,0xff,0x4d,0x93,0xff,0x55,0x98,0xff,0x5d,0x9d,0xff,0x65,0xa2,0xff,0x6d,0xa7,0xff,0x75,0xac,0xff,0x7d,0xb2,0xff,0x86,0xb7,0xff,0x8e,0xbc,0xff,0x96, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xf3,0xf7,0x00,0x02,0x00,0x00,0x03,0x00,0xff,0x02,0x00,0x01,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0xff,0x03,0x00,0x01,0x04,0x00,0x00,0x03,0x00,0xff,0x04,0x00,0x01,0xcc,0x21,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x00,0xf8,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00, ] +expected = [ 0x13,0x4c,0x01,0x15,0x55,0x01,0x18,0x5f,0x01,0x1a,0x6a,0x02,0x1d,0x75,0x02,0x20,0x80,0x02,0x23,0x8c,0x02,0x26,0x98,0x02,0x29,0xa5,0x03,0x2d,0xb3,0x03,0x30,0xc1,0x03,0x34,0xd0,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0xff,0x0d,0x4c,0xff,0x15,0x52,0xff,0x1d,0x58,0xff,0x25,0x5e,0xff,0x2d,0x64,0xff,0x35,0x6b,0xff,0x3d,0x71,0xff,0x45,0x77,0xff,0x4d,0x7d,0xff,0x55,0x83,0xff,0x5d,0x89,0xff,0x65,0x90,0xff,0x6d,0x96,0xff,0x75,0x9c,0xff,0x7d,0xa2,0xff,0x86,0xa8,0xff,0x8e, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xf5,0xf7,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0xff,0x01,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0xff,0x01,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0xee,0x03,0xda,0x00,0xf7,0x07,0x00,0xff,0x07,0x00,0xff,0x07,0x00,0xff,0x07,0x00,0xff,0x07,0x00,0xff,0x08,0x00,0xff,0x07,0x00,0xff,0x07,0x00,0xff,0x07,0x00,0xff,0x07,0x00,0xff,0x08,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x08,0x00,0xff, ] +expected = [ 0x08,0x43,0x01,0x09,0x4c,0x01,0x0a,0x55,0x01,0x0c,0x5f,0x01,0x0d,0x6a,0x01,0x0e,0x75,0x01,0x10,0x80,0x02,0x11,0x8c,0x02,0x13,0x98,0x02,0x14,0xa5,0x02,0x16,0xb3,0x02,0x18,0xc1,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0xee,0x03,0x20,0xff,0x04,0x27,0xff,0x0c,0x2e,0xff,0x14,0x35,0xff,0x1c,0x3c,0xff,0x24,0x43,0xff,0x2c,0x4b,0xff,0x34,0x52,0xff,0x3c,0x59,0xff,0x44,0x60,0xff,0x4c,0x67,0xff,0x54,0x6f,0xff,0x5d,0x76,0xff,0x65,0x7d,0xff,0x6d,0x84,0xff,0x75,0x8b,0xff,0x7d,0x93,0xff,0x85, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0xf8,0xf8,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x4d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0xf1,0xfd,0x00,0x00,0x00,0x01,0x11,0xf4,0xfc,0x01,0xf4,0x00,0x00,0x00,0x1c,0xff,0x18,0x08,0x00,0xfc,0x08,0x00,0xfd,0x08,0x00,0xfd,0x08,0x00,0xfd,0x08,0x00,0xfd,0x08,0x00,0xfe,0x08,0x00,0xfe,0x09,0x00,0xfd,0x08,0x00,0xfd,0x08,0x00,0xfd,0x08,0x00,0xfe,0x08,0x00,0xfe, ] +expected = [ 0x00,0x3b,0x00,0x01,0x43,0x00,0x01,0x4c,0x00,0x01,0x55,0x00,0x01,0x5f,0x00,0x01,0x6a,0x00,0x01,0x75,0x00,0x02,0x80,0x00,0x02,0x8c,0x00,0x02,0x98,0x00,0x02,0xa5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xdf,0x00,0x03,0xee,0x00,0x04,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0xff,0x18,0x24,0xff,0x20,0x2c,0xff,0x29,0x34,0xff,0x31,0x3c,0xff,0x39,0x44,0xff,0x41,0x4c,0xff,0x4a,0x54,0xff,0x52,0x5d,0xff,0x5a,0x65,0xff,0x62,0x6d,0xff,0x6a,0x75,0xff,0x73,0x7d,0xff,0x7b, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xf9,0x06,0xff,0x00,0x01,0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0xff,0x00,0x02,0x01,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0xee,0x00,0x00,0x00,0x03,0xc1,0x17,0x00,0xf1,0x02,0x00,0x00,0x02,0xff,0x00,0x02,0x00,0x00,0xe3,0x00,0x00,0x00,0xf8,0x00,0x15,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x08, ] +expected = [ 0x00,0x34,0x06,0x00,0x3b,0x07,0x01,0x43,0x08,0x01,0x4c,0x09,0x01,0x55,0x0a,0x01,0x5f,0x0b,0x01,0x6a,0x0c,0x01,0x75,0x0e,0x02,0x80,0x0f,0x02,0x8c,0x11,0x02,0x98,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xc1,0x17,0x03,0xd0,0x19,0x03,0xdf,0x1b,0x03,0xee,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0xff,0x2d,0x1c,0xff,0x34,0x24,0xff,0x3b,0x2c,0xff,0x43,0x34,0xff,0x4a,0x3c,0xff,0x51,0x44,0xff,0x58,0x4c,0xff,0x60,0x54,0xff,0x67,0x5d,0xff,0x6e,0x65,0xff,0x75,0x6d,0xff,0x7c,0x75,0xff,0x84, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xf8,0x05,0x00,0x00,0x01,0xff,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x01,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0x03,0xff,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0xee,0x00,0x00,0x00,0xff,0xf2,0x15,0x00,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0xe3,0x00,0x00,0x00,0xf7,0x00,0x18,0xff,0x00,0x06,0xff,0x00,0x06,0xff,0x00,0x06,0xff,0x00,0x06,0xff,0x00,0x07,0xff,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0xff,0x00,0x07,0xff,0x00,0x06,0xff,0x00,0x06, ] +expected = [ 0x00,0x2c,0x0b,0x00,0x34,0x0c,0x00,0x3b,0x0e,0x00,0x43,0x10,0x00,0x4c,0x12,0x01,0x55,0x15,0x01,0x5f,0x17,0x01,0x6a,0x1a,0x01,0x75,0x1c,0x01,0x80,0x1f,0x01,0x8c,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xb3,0x2c,0x02,0xc1,0x2f,0x02,0xd0,0x33,0x02,0xdf,0x37,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0xff,0x45,0x13,0xff,0x4b,0x1b,0xff,0x51,0x23,0xff,0x57,0x2b,0xff,0x5d,0x33,0xff,0x64,0x3b,0xff,0x6a,0x44,0xff,0x70,0x4c,0xff,0x76,0x54,0xff,0x7c,0x5c,0xff,0x83,0x64,0xff,0x89,0x6c,0xff,0x8f, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xfa,0x03,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0xff,0x00,0x03,0x01,0x00,0x04,0x00,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x4d,0xd4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf5,0x01,0xbb,0xf5,0x00,0x00,0x13,0xff,0x69,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05, ] +expected = [ 0x00,0x26,0x0e,0x00,0x2c,0x10,0x00,0x34,0x13,0x00,0x3b,0x16,0x00,0x43,0x19,0x00,0x4c,0x1c,0x01,0x55,0x20,0x01,0x5f,0x23,0x01,0x6a,0x27,0x01,0x75,0x2b,0x01,0x80,0x2f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0xff,0x69,0x1b,0xff,0x6e,0x23,0xff,0x73,0x2b,0xff,0x78,0x33,0xff,0x7d,0x3b,0xff,0x83,0x44,0xff,0x88,0x4c,0xff,0x8d,0x54,0xff,0x92,0x5c,0xff,0x97,0x64,0xff,0x9c, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xfa,0x01,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x04,0xff,0x00,0x05,0x01,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x00,0x1a,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04, ] +expected = [ 0x00,0x20,0x0f,0x00,0x26,0x13,0x00,0x2c,0x16,0x00,0x34,0x19,0x00,0x3b,0x1d,0x00,0x43,0x21,0x00,0x4c,0x26,0x01,0x55,0x2a,0x01,0x5f,0x2f,0x01,0x6a,0x34,0x01,0x75,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0xff,0x83,0x13,0xff,0x87,0x1b,0xff,0x8b,0x23,0xff,0x8f,0x2b,0xff,0x93,0x33,0xff,0x97,0x3b,0xff,0x9b,0x44,0xff,0xa0,0x4c,0xff,0xa4,0x54,0xff,0xa8,0x5c,0xff,0xac, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xfa,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x04,0xff,0x00,0x05,0x01,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x07,0x01,0x75,0x48,0x00,0x0b,0x08,0x00,0x0c,0x07,0x00,0x0c,0x08,0x00,0x0d,0x08,0x01,0x0e,0x08,0xfe,0x4d,0x91,0x00,0x00,0x00,0x02,0xdf,0x8b,0x00,0x0f,0x09,0xf8,0x00,0x0b,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03, ] +expected = [ 0x00,0x1a,0x10,0x00,0x20,0x14,0x00,0x26,0x17,0x00,0x2c,0x1b,0x00,0x34,0x20,0x00,0x3b,0x25,0x00,0x43,0x2a,0x00,0x4c,0x2f,0x01,0x55,0x35,0x01,0x5f,0x3b,0x01,0x6a,0x42,0x01,0x75,0x48,0x01,0x80,0x50,0x01,0x8c,0x57,0x01,0x98,0x5f,0x01,0xa5,0x67,0x02,0xb3,0x6f,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xdf,0x8b,0x02,0xee,0x94,0x03,0xff,0x9f,0x0b,0xff,0xa2,0x13,0xff,0xa5,0x1b,0xff,0xa8,0x23,0xff,0xab,0x2b,0xff,0xae,0x33,0xff,0xb1,0x3b,0xff,0xb4,0x44,0xff,0xb7,0x4c,0xff,0xba,0x54,0xff,0xbd, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xfb,0x00,0x00,0x00,0xff,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x03,0xff,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x07,0x00,0x00,0x07,0x01,0x00,0x09,0x00,0x00,0x09,0x00,0x00,0x09,0xff,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf1,0x10,0x00,0x00,0x0c,0xff,0x00,0x0b,0xf7,0x11,0x0d,0xff,0x00,0x02,0xff,0x00,0x02,0xff,0x00,0x02,0xff,0x00,0x02,0xff,0x00,0x02,0xff,0x00,0x02,0x00,0x00,0x02,0xff,0x00,0x02,0xff,0x00,0x02, ] +expected = [ 0x00,0x15,0x10,0x00,0x1a,0x13,0x00,0x20,0x18,0x00,0x26,0x1c,0x00,0x2c,0x21,0x00,0x34,0x26,0x00,0x3b,0x2c,0x00,0x43,0x32,0x00,0x4c,0x39,0x00,0x55,0x40,0x00,0x5f,0x47,0x00,0x6a,0x4f,0x00,0x75,0x57,0x01,0x80,0x60,0x01,0x8c,0x69,0x01,0x98,0x72,0x01,0xa5,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xd0,0x9b,0x01,0xdf,0xa7,0x01,0xee,0xb2,0x02,0xff,0xbf,0x0a,0xff,0xc1,0x12,0xff,0xc3,0x1a,0xff,0xc5,0x22,0xff,0xc7,0x2a,0xff,0xc9,0x32,0xff,0xcb,0x3b,0xff,0xcd,0x43,0xff,0xcf,0x4b,0xff,0xd1, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xfb,0xfe,0x00,0x00,0x02,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x05,0xff,0x00,0x06,0x01,0x00,0x07,0x00,0x00,0x08,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf1,0x0e,0x00,0x00,0x0c,0x00,0x00,0x0e,0xff,0x00,0x0d,0xf8,0x11,0x0f,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01, ] +expected = [ 0x00,0x10,0x0e,0x00,0x15,0x12,0x00,0x1a,0x17,0x00,0x20,0x1c,0x00,0x26,0x21,0x00,0x2c,0x27,0x00,0x34,0x2d,0x00,0x3b,0x34,0x00,0x43,0x3b,0x00,0x4c,0x43,0x00,0x55,0x4b,0x00,0x5f,0x53,0x00,0x6a,0x5c,0x00,0x75,0x66,0x01,0x80,0x70,0x01,0x8c,0x7a,0x01,0x98,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xc1,0xa9,0x01,0xd0,0xb5,0x01,0xdf,0xc3,0x01,0xee,0xd0,0x02,0xff,0xdf,0x0a,0xff,0xe0,0x12,0xff,0xe1,0x1a,0xff,0xe2,0x22,0xff,0xe3,0x2a,0xff,0xe4,0x32,0xff,0xe5,0x3b,0xff,0xe6,0x43,0xff,0xe7, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xfd,0xff,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x04,0xff,0x00,0x05,0x01,0x00,0x06,0x00,0x00,0x07,0x01,0x98,0x98,0x00,0x0d,0x0d,0x00,0xf2,0x0a,0x00,0x00,0x0c,0x00,0x00,0x0d,0x00,0x00,0x0f,0xff,0x00,0x0f,0xf8,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, ] +expected = [ 0x00,0x0d,0x0d,0x00,0x10,0x10,0x00,0x15,0x15,0x00,0x1a,0x1a,0x00,0x20,0x20,0x00,0x26,0x26,0x00,0x2c,0x2c,0x00,0x34,0x34,0x00,0x3b,0x3b,0x00,0x43,0x43,0x00,0x4c,0x4c,0x00,0x55,0x55,0x00,0x5f,0x5f,0x00,0x6a,0x6a,0x00,0x75,0x75,0x01,0x80,0x80,0x01,0x8c,0x8c,0x01,0x98,0x98,0x01,0xa5,0xa5,0x01,0xb3,0xb3,0x01,0xc1,0xc1,0x01,0xd0,0xd0,0x01,0xdf,0xdf,0x01,0xee,0xee,0x02,0xff,0xff,0x0a,0xff,0xff,0x12,0xff,0xff,0x1a,0xff,0xff,0x22,0xff,0xff,0x2a,0xff,0xff,0x32,0xff,0xff,0x3b,0xff,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xfb,0xfc,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfd,0x00,0x00,0xfd,0x00,0x00,0xfc,0x00,0x00,0xfb,0x00,0x00,0xfb,0x00,0x00,0xf9,0x00,0x00,0xf9,0x00,0x00,0xf8,0x00,0x00,0xf7,0x00,0x00,0xf6,0x00,0x00,0xf5,0x00,0x00,0x09,0x00,0xff,0x09,0x00,0x00,0x0a,0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00,0x0c,0x00,0x00,0x0c,0x00,0x00,0x0d,0x00,0x00,0x0e,0x00,0xff,0x0d,0x00,0xf7,0x0f,0x11,0xff,0x01,0x00,0xff,0x01,0x00,0xff,0x01,0x00,0xff,0x01,0x00,0xff,0x00,0x00,0x00,0x02,0x00, ] +expected = [ 0x00,0x08,0x09,0x00,0x0b,0x0d,0x00,0x0e,0x10,0x00,0x12,0x15,0x00,0x17,0x1a,0x00,0x1c,0x20,0x00,0x21,0x26,0x00,0x27,0x2c,0x00,0x2d,0x34,0x00,0x34,0x3b,0x00,0x3b,0x43,0x00,0x43,0x4c,0x00,0x4b,0x55,0x00,0x54,0x5f,0x00,0x5d,0x6a,0x00,0x66,0x75,0x00,0x70,0x80,0x00,0x7b,0x8c,0x00,0x86,0x98,0x00,0x91,0xa5,0x00,0x9d,0xb3,0x00,0xa9,0xc1,0x00,0xb6,0xd0,0x00,0xc4,0xdf,0x00,0xd1,0xee,0x01,0xe0,0xff,0x09,0xe1,0xff,0x11,0xe2,0xff,0x19,0xe3,0xff,0x21,0xe4,0xff,0x29,0xe4,0xff,0x32,0xe6,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xfc,0xfd,0x00,0xff,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfc,0x00,0x00,0xfc,0x00,0x00,0xfb,0x00,0x00,0xfa,0x00,0x00,0xfa,0x00,0x00,0xf8,0x00,0x00,0xf8,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x09,0x00,0x00,0x08,0x00,0x00,0x09,0x00,0x00,0x0a,0x00,0x00,0x09,0x00,0x00,0x0b,0x00,0x00,0x0a,0x00,0x00,0x0b,0x00,0x00,0x0c,0x00,0xff,0x0b,0x00,0xf8,0x0d,0x11,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00, ] +expected = [ 0x00,0x04,0x06,0x00,0x07,0x09,0x00,0x09,0x0d,0x00,0x0c,0x10,0x00,0x10,0x15,0x00,0x13,0x1a,0x00,0x18,0x20,0x00,0x1c,0x26,0x00,0x21,0x2c,0x00,0x27,0x34,0x00,0x2c,0x3b,0x00,0x33,0x43,0x00,0x39,0x4c,0x00,0x40,0x55,0x00,0x48,0x5f,0x00,0x4f,0x6a,0x00,0x58,0x75,0x00,0x60,0x80,0x00,0x69,0x8c,0x00,0x73,0x98,0x00,0x7c,0xa5,0x00,0x87,0xb3,0x00,0x91,0xc1,0x00,0x9c,0xd0,0x00,0xa8,0xdf,0x00,0xb3,0xee,0x01,0xc0,0xff,0x09,0xc2,0xff,0x11,0xc4,0xff,0x19,0xc6,0xff,0x21,0xc8,0xff,0x29,0xca,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xfe,0xfe,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xff,0x00,0x00,0xfe,0x00,0x00,0x03,0x00,0x00,0xfd,0x00,0x00,0x04,0x00,0x00,0xfb,0x00,0x00,0xfb,0x00,0x00,0x04,0x00,0x00,0xf9,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x05,0x00,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x09,0x00,0x00,0x08,0x00,0x00,0x09,0x00,0x00,0x09,0x00,0x00,0x0a,0x00,0xff,0x09,0x00,0xf8,0x0b,0x11,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00, ] +expected = [ 0x00,0x02,0x04,0x00,0x04,0x06,0x00,0x05,0x09,0x00,0x08,0x0d,0x00,0x0a,0x10,0x00,0x0d,0x15,0x00,0x10,0x1a,0x00,0x14,0x20,0x00,0x17,0x26,0x00,0x1c,0x2c,0x00,0x20,0x34,0x00,0x25,0x3b,0x00,0x2a,0x43,0x00,0x30,0x4c,0x00,0x35,0x55,0x00,0x3c,0x5f,0x00,0x42,0x6a,0x00,0x49,0x75,0x00,0x50,0x80,0x00,0x58,0x8c,0x00,0x5f,0x98,0x00,0x68,0xa5,0x00,0x70,0xb3,0x00,0x79,0xc1,0x00,0x82,0xd0,0x00,0x8c,0xdf,0x00,0x95,0xee,0x01,0xa0,0xff,0x09,0xa3,0xff,0x11,0xa6,0xff,0x19,0xa9,0xff,0x21,0xac,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xff,0xfe,0x00,0xfe,0x00,0x00,0x01,0x00,0x00,0xff,0x00,0x00,0x02,0x00,0x00,0xfe,0x00,0x00,0xfd,0x00,0x00,0xfd,0x00,0x00,0x03,0x00,0x00,0xfc,0x00,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x03,0x00,0x00,0x05,0x00,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x08,0x00,0xff,0x07,0x00,0xf8,0x09,0x11,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00, ] +expected = [ 0x00,0x01,0x02,0x00,0x02,0x04,0x00,0x03,0x06,0x00,0x04,0x09,0x00,0x06,0x0d,0x00,0x08,0x10,0x00,0x0a,0x15,0x00,0x0d,0x1a,0x00,0x10,0x20,0x00,0x13,0x26,0x00,0x16,0x2c,0x00,0x1a,0x34,0x00,0x1d,0x3b,0x00,0x22,0x43,0x00,0x26,0x4c,0x00,0x2b,0x55,0x00,0x30,0x5f,0x00,0x35,0x6a,0x00,0x3a,0x75,0x00,0x40,0x80,0x00,0x46,0x8c,0x00,0x4c,0x98,0x00,0x53,0xa5,0x00,0x5a,0xb3,0x00,0x61,0xc1,0x00,0x68,0xd0,0x00,0x70,0xdf,0x00,0x77,0xee,0x01,0x80,0xff,0x09,0x84,0xff,0x11,0x88,0xff,0x19,0x8c,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0xff,0xff,0x00,0xff,0xfe,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0xff,0x00,0x00,0xfe,0x00,0x00,0x02,0x00,0x00,0xfe,0x00,0x00,0xfc,0x00,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x03,0x00,0x00,0x05,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0xff,0x05,0x00,0xf7,0x07,0x11,0xff,0x05,0x00,0xff,0x05,0x00, ] +expected = [ 0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x01,0x04,0x00,0x02,0x06,0x00,0x03,0x09,0x00,0x04,0x0d,0x00,0x06,0x10,0x00,0x08,0x15,0x00,0x09,0x1a,0x00,0x0c,0x20,0x00,0x0e,0x26,0x00,0x10,0x2c,0x00,0x13,0x34,0x00,0x16,0x3b,0x00,0x19,0x43,0x00,0x1c,0x4c,0x00,0x20,0x55,0x00,0x24,0x5f,0x00,0x27,0x6a,0x00,0x2c,0x75,0x00,0x30,0x80,0x00,0x34,0x8c,0x00,0x39,0x98,0x00,0x3e,0xa5,0x00,0x43,0xb3,0x00,0x48,0xc1,0x00,0x4e,0xd0,0x00,0x54,0xdf,0x00,0x59,0xee,0x00,0x60,0xff,0x08,0x65,0xff,0x10,0x6a,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0xfe,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x01,0x00,0x00,0xff,0x00,0x00,0xfe,0x00,0x00,0x01,0x00,0x00,0xfd,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x03,0x00,0xf8,0x05,0x11,0x00,0x06,0x00, ] +expected = [ 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x01,0x04,0x00,0x01,0x06,0x00,0x02,0x09,0x00,0x03,0x0d,0x00,0x04,0x10,0x00,0x05,0x15,0x00,0x06,0x1a,0x00,0x08,0x20,0x00,0x09,0x26,0x00,0x0b,0x2c,0x00,0x0d,0x34,0x00,0x0e,0x3b,0x00,0x11,0x43,0x00,0x13,0x4c,0x00,0x15,0x55,0x00,0x18,0x5f,0x00,0x1a,0x6a,0x00,0x1d,0x75,0x00,0x20,0x80,0x00,0x23,0x8c,0x00,0x26,0x98,0x00,0x29,0xa5,0x00,0x2d,0xb3,0x00,0x30,0xc1,0x00,0x34,0xd0,0x00,0x38,0xdf,0x00,0x3b,0xee,0x00,0x40,0xff,0x08,0x46,0xff, ] +width = 32 +bit_depth = 8 +channels = 3 +color_type = 2 +pixel_depth = 24 +rowbytes = 96 +filter = 4 +data = [ 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0xfe,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0xf8,0x03,0x11, ] +expected = [ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x06,0x00,0x01,0x09,0x00,0x01,0x0d,0x00,0x02,0x10,0x00,0x02,0x15,0x00,0x03,0x1a,0x00,0x04,0x20,0x00,0x04,0x26,0x00,0x05,0x2c,0x00,0x06,0x34,0x00,0x07,0x3b,0x00,0x08,0x43,0x00,0x09,0x4c,0x00,0x0a,0x55,0x00,0x0c,0x5f,0x00,0x0d,0x6a,0x00,0x0e,0x75,0x00,0x10,0x80,0x00,0x11,0x8c,0x00,0x13,0x98,0x00,0x14,0xa5,0x00,0x16,0xb3,0x00,0x18,0xc1,0x00,0x1a,0xd0,0x00,0x1c,0xdf,0x00,0x1d,0xee,0x00,0x20,0xff, ] +PASS: /Users/henddher/Documents/libpng/libpng-1.6.34/libpng-xcode-project/xcode/,/libpng/Build/Products/Debug/libpng-test.xctest/Contents/Resources/f04n2c08.png diff --git a/tests/test_flate_png.py b/tests/test_flate_png.py new file mode 100755 index 0000000..83c4236 --- /dev/null +++ b/tests/test_flate_png.py @@ -0,0 +1,400 @@ +#! /usr/bin/env python +# encoding: utf-8 +# A part of pdfrw (https://github.com/pmaupin/pdfrw) +# Copyright (C) 2006-2017 Patrick Maupin, Austin, Texas +# 2017 Henddher Pedroza, Illinois +# MIT license -- See LICENSE.txt for details + +''' +Run from the directory above like so: +python -m tests.test_pdfstring +''' + + +from pdfrw.uncompress import flate_png, flate_png_impl +from pdfrw.py23_diffs import zlib, xrange, from_array, convert_load, convert_store + +import unittest +import base64 +import array +import logging +import ast +import os + +# +# Sample PNGs with filtered scanlines retrieved from +# http://www.schaik.com/pngsuite/pngsuite_fil_png.html +# + +def filepath(filename): + pwd = os.path.dirname(__file__) + return os.path.join(pwd, filename) + +def create_data(nc=1, nr=1, bpc=8, ncolors=1, filter_type=0): + pixel_size = (bpc * ncolors + 7) // 8 + data = [] + for r in xrange(nr): + data.append(filter_type if r > 0 else 0) # filter byte + for c in xrange(nc * pixel_size): + data.append(r * nc * pixel_size + c * pixel_size) + data = array.array('B', data) + logging.debug("Data: %r" % (data)) + return data, nc, nr, bpc, ncolors + +def prepend_data_with_filter(data, filter): + a = array.array('B', data) + a.insert(0, filter) + return a + +def print_data(data1, data2): + if data1 is None: + return + for b1, b2 in zip(data1, data2): + b1 = b1 if type(b1) != str else ord(b1) + b2 = b2 if type(b2) != str else ord(b2) + logging.error("%4d %4d" % (b1, b2)) + if len(data1) != len(data2): + logging.error("Mismatched lengths: %d %d" % (len(data1), len(data2))) + return None + +class TestFlatePNG(unittest.TestCase): + + def test_flate_png(self): + b64 = 'AAAAAAD//wACAAA2AAAAAQAADwAAAgEAACcAAQL/AAAzAP8AAgAANgACAAEAAO8AAAABAAF1AAAAAgAANgADAAEAAfsAAAACAAA2AAQCAAAAAAABAgAAAAAAAQIAAAAAAAECAAAAAAABAgAAAAAAAQIAAAAAAAECAAAAAAABAQECBXx8AAIAAAGHAAAAAgAANgAMAAEDCcMAAAACAAA2AA0CAAAAAAABAgAAAAAAAQIAAAAAAAECAAAAAAABAgAAAAAAAQIAAAAAAAECAAAAAAABAgAAAAAAAQABBxI2AAAEAfn5AAAWAgAAAAAAAQIAAAAAAAECAAAAAAABAgAAAAAAAQIAAAAAAAECAAAAAAABAgAAAAAAAQIAAAAAAAEAAQ6fJgAAAAIAADYAHwIAAAAAAAECAAAAAAABAgAAAAAAAQIAAAAAAAECAAAAAAABAgAAAAAAAQABESDsAAAAAgAANgAmAAAAAAD//wIAAAAAAAACARp0hgEBAgAA/eAAAA==' + predictor, columns, colors, bpc = (12, 6, 1, 8) + data = base64.b64decode(b64) + d2, error2 = flate_png(data, predictor, columns, colors, bpc) + assert d2 is not None + assert error2 is None + + def test_flate_png_filter_0(self): + # None filter + data, nc, nr, bpc, ncolors = create_data(nc=5, nr=7, bpc=8, ncolors=4) + d2, error2 = flate_png(data, 12, nc, ncolors, bpc) + assert d2 is not None + assert error2 is None + + def test_flate_png_filter_1(self): + # Sub filter + data, nc, nr, bpc, ncolors = create_data(nc=2, nr=3, bpc=8, ncolors=4, filter_type=1) + d2, error2 = flate_png(data, 12, nc, ncolors, bpc) + assert d2 is not None + assert error2 is None + + def test_flate_png_filter_2(self): + # Up filter + data, nc, nr, bpc, ncolors = create_data(nc=5, nr=7, bpc=8, ncolors=4, filter_type=2) + d2, error2 = flate_png(data, 12, nc, ncolors, bpc) + assert d2 is not None + assert error2 is None + + def test_flate_png_filter_3(self): + # Avg filter + data, nc, nr, bpc, ncolors = create_data(nc=5, nr=7, bpc=8, ncolors=4, filter_type=3) + d2, error2 = flate_png(data, 12, nc, ncolors, bpc) + assert d2 + assert error2 is None + + def test_flate_png_filter_4(self): + # Paeth filter + data, nc, nr, bpc, ncolors = create_data(nc=5, nr=7, bpc=8, ncolors=4, filter_type=4) + d2, error2 = flate_png(data, 12, nc, ncolors, bpc) + assert d2 + assert error2 is None + + def test_flate_png_alt_filter_1(self): + width = 32 + bit_depth = 8 + channels = 1 + color_type = 0 + pixel_depth = 8 + rowbytes = 32 + filter = 1 + data = [ 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] + expected = [ 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, ] + + dataf = prepend_data_with_filter(data, filter) + result, error = flate_png_impl(dataf, 12, width, channels, bit_depth) + + assert error is None + expected = array.array('B', expected) + assert expected == result, "\ne: %r\nr: %r" % (expected, result) + + width = 32 + bit_depth = 8 + channels = 3 + color_type = 2 + pixel_depth = 24 + rowbytes = 96 + filter = 1 + data = [ 0xff,0x00,0x08,0x00,0x08,0x07,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08, ] + expected = [ 0xff,0x00,0x08,0xff,0x08,0x0f,0xff,0x10,0x17,0xff,0x18,0x1f,0xff,0x20,0x27,0xff,0x29,0x2f,0xff,0x31,0x37,0xff,0x39,0x3f,0xff,0x41,0x47,0xff,0x4a,0x4f,0xff,0x52,0x57,0xff,0x5a,0x5f,0xff,0x62,0x67,0xff,0x6a,0x6f,0xff,0x73,0x77,0xff,0x7b,0x7f,0xff,0x83,0x87,0xff,0x8b,0x8f,0xff,0x94,0x97,0xff,0x9c,0x9f,0xff,0xa4,0xa7,0xff,0xac,0xaf,0xff,0xb4,0xb7,0xff,0xbd,0xbf,0xff,0xc5,0xc7,0xff,0xcd,0xcf,0xff,0xd5,0xd7,0xff,0xde,0xdf,0xff,0xe6,0xe7,0xff,0xee,0xef,0xff,0xf6,0xf7,0xff,0xff,0xff, ] + + dataf = prepend_data_with_filter(data, filter) + result, error = flate_png_impl(dataf, 12, width, channels, bit_depth) + + assert error is None + expected = array.array('B', expected) + assert expected == result, "\ne: %r\nr: %r" % (expected, result) + + def test_flate_png_alt_filter_2(self): + width = 32 + bit_depth = 8 + channels = 3 + color_type = 2 + pixel_depth = 24 + rowbytes = 96 + filter = 2 + prev_row = [ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] + data = [ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, ] + expected = [ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, ] + + prev_rowf = prepend_data_with_filter(prev_row, 0) + dataf = prepend_data_with_filter(data, filter) + prev_rowf.extend(dataf) + dataf = prev_rowf + result, error = flate_png_impl(dataf, 12, width, channels, bit_depth) + + assert error is None + prev_rowa = array.array('B', prev_row) + prev_rowa.extend(expected) + expected = prev_rowa + assert expected == result, "\ne: %r\nr: %r" % (expected, result) + + width = 32 + bit_depth = 16 + channels = 1 + color_type = 0 + pixel_depth = 16 + rowbytes = 64 + filter = 2 + prev_row = [ 0x00,0x00,0x09,0x00,0x12,0x00,0x1b,0x00,0x24,0x00,0x2d,0x00,0x36,0x00,0x3f,0x00,0x48,0x00,0x51,0x00,0x5a,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x7e,0x00,0x87,0x00,0x90,0x00,0x99,0x00,0xa2,0x00,0xab,0x00,0xb4,0x00,0xbd,0x00,0xc6,0x00,0xcf,0x00,0xd8,0x00,0xe1,0x00,0xea,0x00,0xf3,0x00,0xfc,0x00,0xf0,0xff,0xd5,0xff,0xba,0xff, ] + data = [ 0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0xfa,0x00,0xfa,0x00,0xfa,0x00, ] + expected = [ 0x02,0x00,0x0b,0x00,0x14,0x00,0x1d,0x00,0x26,0x00,0x2f,0x00,0x38,0x00,0x41,0x00,0x4a,0x00,0x53,0x00,0x5c,0x00,0x65,0x00,0x6e,0x00,0x77,0x00,0x80,0x00,0x89,0x00,0x92,0x00,0x9b,0x00,0xa4,0x00,0xad,0x00,0xb6,0x00,0xbf,0x00,0xc8,0x00,0xd1,0x00,0xda,0x00,0xe3,0x00,0xec,0x00,0xf5,0x00,0xfe,0x00,0xea,0xff,0xcf,0xff,0xb4,0xff, ] + + prev_rowf = prepend_data_with_filter(prev_row, 0) + dataf = prepend_data_with_filter(data, filter) + prev_rowf.extend(dataf) + dataf = prev_rowf + result, error = flate_png_impl(dataf, 12, width, channels, bit_depth) + + assert error is None + prev_rowa = array.array('B', prev_row) + prev_rowa.extend(expected) + expected = prev_rowa + assert expected == result, "\ne: %r\nr: %r" % (expected, result) + + def test_flate_png_alt_filter_3(self): + + width = 32 + bit_depth = 8 + channels = 1 + color_type = 0 + pixel_depth = 8 + rowbytes = 32 + filter = 3 + prev_row = [ 0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0xe3,0xc9,0xf1,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f, ] + data = [ 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x69,0x02,0xe4,0xb5,0xc3,0xa1,0xff,0x31,0x51,0xcf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, ] + expected = [ 0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0xe8,0xb5,0x7e,0x65,0x5a,0x46,0x61,0xa1,0xe1,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f, ] + + prev_rowf = prepend_data_with_filter(prev_row, 0) + dataf = prepend_data_with_filter(data, filter) + prev_rowf.extend(dataf) + dataf = prev_rowf + result, error = flate_png_impl(dataf, 12, width, channels, bit_depth) + + assert error is None + prev_rowa = array.array('B', prev_row) + prev_rowa.extend(expected) + expected = prev_rowa + assert expected == result, "\ne: %r\nr: %r" % (expected, result) + + width = 32 + bit_depth = 8 + channels = 3 + color_type = 2 + pixel_depth = 24 + rowbytes = 96 + filter = 3 + prev_row = [0] * rowbytes + data = [ 0xff,0x00,0x08,0x80,0x08,0x0b,0x80,0x0c,0x10,0x80,0x10,0x14,0x80,0x14,0x18,0x80,0x19,0x1c,0x80,0x1d,0x20,0x80,0x21,0x24,0x80,0x25,0x28,0x80,0x2a,0x2c,0x80,0x2d,0x30,0x80,0x31,0x34,0x80,0x35,0x38,0x80,0x39,0x3c,0x80,0x3e,0x40,0x80,0x42,0x44,0x80,0x46,0x48,0x80,0x4a,0x4c,0x80,0x4f,0x50,0x80,0x52,0x54,0x80,0x56,0x58,0x80,0x5a,0x5c,0x80,0x5e,0x60,0x80,0x63,0x64,0x80,0x67,0x68,0x80,0x6b,0x6c,0x80,0x6f,0x70,0x80,0x74,0x74,0x80,0x77,0x78,0x80,0x7b,0x7c,0x80,0x7f,0x80,0x80,0x84,0x84, ] + expected = [ 0xff,0x00,0x08,0xff,0x08,0x0f,0xff,0x10,0x17,0xff,0x18,0x1f,0xff,0x20,0x27,0xff,0x29,0x2f,0xff,0x31,0x37,0xff,0x39,0x3f,0xff,0x41,0x47,0xff,0x4a,0x4f,0xff,0x52,0x57,0xff,0x5a,0x5f,0xff,0x62,0x67,0xff,0x6a,0x6f,0xff,0x73,0x77,0xff,0x7b,0x7f,0xff,0x83,0x87,0xff,0x8b,0x8f,0xff,0x94,0x97,0xff,0x9c,0x9f,0xff,0xa4,0xa7,0xff,0xac,0xaf,0xff,0xb4,0xb7,0xff,0xbd,0xbf,0xff,0xc5,0xc7,0xff,0xcd,0xcf,0xff,0xd5,0xd7,0xff,0xde,0xdf,0xff,0xe6,0xe7,0xff,0xee,0xef,0xff,0xf6,0xf7,0xff,0xff,0xff, ] + + prev_rowf = prepend_data_with_filter(prev_row, 0) + dataf = prepend_data_with_filter(data, filter) + prev_rowf.extend(dataf) + dataf = prev_rowf + result, error = flate_png_impl(dataf, 12, width, channels, bit_depth) + + assert error is None + prev_rowa = array.array('B', prev_row) + prev_rowa.extend(expected) + expected = prev_rowa + assert expected == result, "\ne: %r\nr: %r" % (expected, result) + + def test_flate_png_alt_filter_4(self): + width = 32 + bit_depth = 8 + channels = 1 + color_type = 0 + pixel_depth = 8 + rowbytes = 32 + filter = 4 + prev_row = [ 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, ] + data = [ 0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, ] + expected = [ 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, ] + + prev_rowf = prepend_data_with_filter(prev_row, 0) + dataf = prepend_data_with_filter(data, filter) + prev_rowf.extend(dataf) + dataf = prev_rowf + result, error = flate_png_impl(dataf, 12, width, channels, bit_depth) + + assert error is None + prev_rowa = array.array('B', prev_row) + prev_rowa.extend(expected) + expected = prev_rowa + assert expected == result, "\ne: %r\nr: %r" % (expected, result) + + width = 32 + bit_depth = 8 + channels = 3 + color_type = 2 + pixel_depth = 24 + rowbytes = 96 + filter = 4 + prev_row = [0] * rowbytes + data = [ 0xff,0x00,0x08,0x00,0x08,0x07,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x08,0x08,0x00,0x09,0x08, ] + expected = [ 0xff,0x00,0x08,0xff,0x08,0x0f,0xff,0x10,0x17,0xff,0x18,0x1f,0xff,0x20,0x27,0xff,0x29,0x2f,0xff,0x31,0x37,0xff,0x39,0x3f,0xff,0x41,0x47,0xff,0x4a,0x4f,0xff,0x52,0x57,0xff,0x5a,0x5f,0xff,0x62,0x67,0xff,0x6a,0x6f,0xff,0x73,0x77,0xff,0x7b,0x7f,0xff,0x83,0x87,0xff,0x8b,0x8f,0xff,0x94,0x97,0xff,0x9c,0x9f,0xff,0xa4,0xa7,0xff,0xac,0xaf,0xff,0xb4,0xb7,0xff,0xbd,0xbf,0xff,0xc5,0xc7,0xff,0xcd,0xcf,0xff,0xd5,0xd7,0xff,0xde,0xdf,0xff,0xe6,0xe7,0xff,0xee,0xef,0xff,0xf6,0xf7,0xff,0xff,0xff, ] + + prev_rowf = prepend_data_with_filter(prev_row, 0) + dataf = prepend_data_with_filter(data, filter) + prev_rowf.extend(dataf) + dataf = prev_rowf + result, error = flate_png_impl(dataf, 12, width, channels, bit_depth) + + assert error is None + prev_rowa = array.array('B', prev_row) + prev_rowa.extend(expected) + expected = prev_rowa + assert expected == result, "\ne: %r\nr: %r" % (expected, result) + + def util_test_flate_png_alt_from_png_log_file(self, filename): + + with open(filepath(filename)) as f: + data = array.array('B') + expected = array.array('B') + width = 0 + bit_depth = 0 + channels = 0 + color_type = 0 + pixel_depth = 0 + rowbytes = 0 + filter = 0 + nrows = 0 + + for l in f.readlines(): + + if l.startswith("PASS:"): + break + + l = l.split(' = ') + var = l[0] + val = l[1] + + if var == 'width': + width = int(val) + + elif var == 'bit_depth': + bit_depth = int(val) + + elif var == 'channels': + channels = int(val) + + elif var == 'color_type': + color_type = int(val) + + elif var == 'pixel_depth': + pixel_depth = int(val) + + elif var == 'rowbytes': + rowbytes = int(val) + + elif var == 'filter': + filter = int(val) + + elif var == 'data': + d = ast.literal_eval(val) + data.append(filter) + data.extend(d) + + elif var == 'expected': + e = ast.literal_eval(val) + expected.extend(e) + nrows += 1 + + bytes_per_pixel = pixel_depth // 8 + + logging.error("width: %d" % width) + logging.error("bit_depth: %d" % bit_depth) + logging.error("channels: %d" % channels) + logging.error("color_type: %d" % color_type) + logging.error("pixel_depth: %d" % pixel_depth) + logging.error("rowbytes: %d" % rowbytes) + logging.error("filter: %d" % filter) + logging.error("bytes_per_pixel: %d" % bytes_per_pixel) + logging.error("expected: %r" % len(expected)) + logging.error("data: %r" % len(data)) + + assert color_type in [ + 0, # Grayscale (Y) + 2, # Truecolor (RGB) + # 3 Indexed is not supported (Palette) + 4, # Grayscale with alpha (YA) + 6, # Truecolor with alpha (RGBA) + ] + assert filter in [0, 1, 2, 3, 4] + assert channels * bit_depth == pixel_depth + assert (pixel_depth // 8) * width == rowbytes + assert 0 == pixel_depth % 8 # can't support pixels with bit_depth < 8 + assert 8 == bit_depth # ideally, we should test bit_depth 16 also + assert nrows * (1 + width * bytes_per_pixel) == len(data) # 1 filter byte preceeding each row + assert nrows * width * bytes_per_pixel == len(expected) + + result, error = flate_png_impl(data, 12, width, channels, bit_depth) + + import pickle + with open(filepath('./result.pickle'), 'wb') as f: + pickle.dump(result, f) + with open(filepath('./expected.pickle'), 'wb') as f: + pickle.dump(expected, f) + + assert error is None + assert expected == result + + + def test_flate_png_alt_file_f01n2c08(self): + self.util_test_flate_png_alt_from_png_log_file("./f01n2c08.png.log") + + def test_flate_png_alt_file_f02n2c08(self): + self.util_test_flate_png_alt_from_png_log_file("./f02n2c08.png.log") + + def test_flate_png_alt_file_f03n2c08(self): + self.util_test_flate_png_alt_from_png_log_file("./f03n2c08.png.log") + + def test_flate_png_alt_file_f04n2c08(self): + self.util_test_flate_png_alt_from_png_log_file("./f04n2c08.png.log") + + def test_flate_png_alt_file_basn2c08(self): + self.util_test_flate_png_alt_from_png_log_file("./basn2c08.png.log") + + def test_flate_png_alt_file_basn0g08(self): + self.util_test_flate_png_alt_from_png_log_file("./basn0g08.png.log") + + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() diff --git a/tests/test_roundtrip.py b/tests/test_roundtrip.py index a8349a6..2e097b6 100755 --- a/tests/test_roundtrip.py +++ b/tests/test_roundtrip.py @@ -75,10 +75,6 @@ def roundtrip(self, testname, basename, srcf, decompress=False, os.remove(dstf) trailer = pdfrw.PdfReader(srcf, decompress=decompress, verbose=False) - if trailer.Encrypt: - result = 'skip -- encrypt' - hash = '------skip-encrypt-no-file------' - return self.skipTest('File encrypted') writer = pdfrw.PdfWriter(dstf, compress=compress) if repaginate: writer.addpages(trailer.pages)