Drop GIMP workload; make Inkscape export a tunable subset

GIMP 3 removed/renamed the Script-Fu PDB calls the workload relied on
(plug-in-unsharp-mask, gimp-levels-stretch), so it is removed rather than
maintained as best-effort. Inkscape now exports the first INKSCAPE_FILES SVGs
(default 25) instead of all 121, cutting that step to well under a minute.
This commit is contained in:
smill 2026-09-29 21:51:18 -04:00
commit cc9354e136
133 changed files with 32 additions and 5235 deletions

4
.gitignore vendored
View file

@ -33,3 +33,7 @@ phases-*.csv
power-*.csv
compare-scores.csv
*.png
# app corpus extraction outputs (regenerated)
tools/corpus/*-out/
tools/corpus/*-work/

View file

@ -63,7 +63,7 @@ You can run the parts in any order; run both on the same machine back to back.
| `compare-report.py` | Cross-device / before-after results table + one bar chart per benchmark (`results/graphs/compare-*.png`). |
| `results/` | Created at runtime: CSVs, logs, `results/graphs/*.png`. |
| `tools/` | Bundled binaries: PassMark (`tools/pt/`). Ships with the kit — no download needed. |
| `tools/corpus/` | Fixed sample inputs for the app workloads (LibreOffice docs, a GEGL/GIMP photo, Inkscape SVGs), fetched once and checksum-pinned. |
| `tools/corpus/` | Fixed sample inputs for the app workloads (LibreOffice docs, a GEGL photo, Inkscape SVGs), fetched once and checksum-pinned. |
---
@ -94,7 +94,7 @@ hardware.
for PassMark. Set `INSTALL_DEPS=0` to never install.
- The LLM test needs **no** install: `llama-bench` and its small model are
bundled under `tools/llama/` (see §4).
- The **app workloads** (LibreOffice, GEGL, Inkscape, GIMP; see §4) are optional:
- The **app workloads** (LibreOffice, GEGL, Inkscape; see §4) are optional:
each step runs only if its command is installed, otherwise it is skipped and
listed by `./run-benchmarks.sh doctor`.
@ -136,7 +136,7 @@ tools/llama/bin/llama-bench \
```
Override with `LLAMA_MODEL=` (any GGUF), or `LLAMA_NGL=` to offload to GPU.
### App workloads — LibreOffice / GEGL / Inkscape / GIMP (optional)
### App workloads — LibreOffice / GEGL / Inkscape (optional)
Stock distro applications are driven over a fixed sample corpus. Each is the
app's own CLI, timed, named after the benchmark. Install the ones you want to
measure:
@ -144,14 +144,12 @@ measure:
sudo dnf install -y libreoffice-writer libreoffice-calc # documents -> PDF
sudo dnf install -y gegl04-tools # GEGL operations
sudo dnf install -y inkscape # SVG -> PNG
sudo dnf install -y gimp # GIMP batch operations (GIMP 3)
```
On first run the corpora are **fetched once** into `tools/corpus/` and
checksum-verified (`lo-sample-documents-1.zip`, `sample-photo-6000x4000-1.zip`,
`svg-test-files-1.zip`; ~12 MB total), then reused so both sides process identical
bytes. Missing apps are skipped; skip the whole group with `RUN_APPS=0`. GIMP 3
reshaped the Script-Fu API, so the GIMP step picks a version-appropriate script
and is best-effort — check `results/gimp-<tag>.txt` if a number looks wrong.
bytes. Set INKSCAPE_FILES=N to change how many SVGs Inkscape exports (default 25).
Missing apps are skipped; skip the whole group with `RUN_APPS=0`.
> `run-benchmarks.sh` finds PassMark at `tools/pt/pt_linux_x64` **or**
> `tools/pt/PerformanceTest/PerformanceTest_Linux_x86-64`. Override the location
@ -225,8 +223,7 @@ Headless part (`~25-30 min` per pass):
| 6 | llama.cpp generation (`2B`, CPU/RAM) | ~15 s | bundled; token-generation tok/s |
| 6b | LibreOffice docs→PDF (20 docs) | ~0.5-1 min | fixed corpus |
| 6c | GEGL image ops (9 on one 6000×4000 photo) | ~0.5-1 min | fixed corpus |
| 6d | Inkscape SVG→PNG (fixed set) | ~1-2 min | fixed corpus |
| 6e | GIMP batch ops (4) | ~1-2 min | GIMP 3, best-effort |
| 6d | Inkscape SVG→PNG (first 25) | ~20-30 s | fixed corpus |
| 7 | `fio` 4×30 s | 3-4 min | same SSD, control; runs as your user |
| 8 | `stress-ng` 5 min + `turbostat` | ~8 min | thermals/power |
| 9 | `systemd-analyze` | <1 min | informational |
@ -334,7 +331,7 @@ a phase marker (exact or substring). Phase names:
env idle PassMark-cpu PassMark-mem 7zip 7zip-1t openssl
sysbench-1t sysbench-nt sysbench-mem llama
fio-seqread fio-seqwrite fio-randread fio-randwrite
thermal-load systemd libreoffice gegl inkscape gimp
thermal-load systemd libreoffice gegl inkscape
glmark2 vkmark
```
@ -350,7 +347,6 @@ llama-tg,18.2
libreoffice,3.9
gegl,1.8
inkscape,12.4
gimp,0.33
fio-seqread,2010.4
glmark2,5989
```
@ -424,7 +420,6 @@ before-headed`.
| Governor left on `performance` | Shouldn't happen (restored on exit); set it back with `sudo cpupower frequency-set -g powersave`. |
| App step says `skip (… missing)` | That app isn't installed; `sudo dnf install -y <pkg>`, or `RUN_APPS=0` to silence. |
| App step says `skip (corpus unavailable)` | Corpus download failed (no curl/wget or no network); re-run with network, or pre-seed `tools/corpus/`. |
| GIMP step errors / odd number | GIMP 3 reshaped Script-Fu; inspect `results/gimp-<tag>.txt` (see §4). |
---

View file

@ -31,8 +31,7 @@
5 llama.cpp generation (2B, CPU/RAM) headless script ~15 s bundled; tok/s
5b LibreOffice: 20 documents -> PDF headless script ~1 min fixed corpus
5c GEGL: 9 image ops (6000x4000) headless script ~1 min fixed corpus
5d Inkscape: SVG -> PNG headless script 1-2 min fixed corpus
5e GIMP: 4 batch ops headless script 1-2 min GIMP 3, best-effort
5d Inkscape: SVG -> PNG (first 25) headless script ~30 s fixed corpus
6 fio 4x30s headless script 3-4 min runs as your user
7 stress-ng 5 min + turbostat headless script ~8 min thermals/power
8 systemd-analyze headless script <1 min
@ -126,15 +125,15 @@
| tee llama-$TAG.txt
# -ngl 0 forces CPU/RAM (no GPU offload). Record the tg t/s number.
== 5c. APP WORKLOADS (LibreOffice / GEGL / Inkscape / GIMP) ==
== 5c. APP WORKLOADS (LibreOffice / GEGL / Inkscape) ==
# Stock distro apps run over a fixed sample corpus; run-benchmarks.sh fetches
# the corpus ONCE into tools/corpus/ (checksum-pinned) and times the app's own
# CLI, reporting a rate (items/s, higher is better). Missing apps are skipped.
sudo dnf install -y libreoffice-writer libreoffice-calc inkscape gegl04-tools gimp
sudo dnf install -y libreoffice-writer libreoffice-calc inkscape gegl04-tools
RUN_APPS=1 ./run-benchmarks.sh before headless # default on
RUN_APPS=0 ./run-benchmarks.sh before headless # skip the group
# Phases / scores are named after the benchmark: libreoffice gegl inkscape gimp.
# GIMP 3 reshaped Script-Fu, so the GIMP step is best-effort.
# Phases / scores are named after the benchmark: libreoffice gegl inkscape.
# INKSCAPE_FILES=N changes how many SVGs are exported (default 25).
== 7. GPU — DISCRETE RX 6700 XT (same card both runs; HEADED part only) ==
sudo dnf install -y glmark2 vkmark vulkan-tools mesa-demos
@ -228,7 +227,7 @@
# App workloads (see == 5c): stock apps + a fixed corpus fetched once into
# tools/corpus/ (checksum-pinned). Install only the apps you want to measure.
# sudo dnf install -y libreoffice-writer libreoffice-calc inkscape gegl04-tools gimp
# sudo dnf install -y libreoffice-writer libreoffice-calc inkscape gegl04-tools
# PassMark PerformanceTest Linux — free, CLI. Download the Linux x86-64
# zip (https://www.passmark.com/downloads/pt_linux_x64.zip), then:
@ -260,7 +259,6 @@
LibreOffice docs->PDF docs/s ______ ______ __%
GEGL image ops ops/s ______ ______ __%
Inkscape SVG->PNG images/s ______ ______ __%
GIMP batch ops ops/s ______ ______ __%
Kernel build sec ______ ______ __%
OpenSSL aes-256-gcm GB/s ______ ______ __%
GPU glmark2 score ______ ______ __%

View file

@ -54,7 +54,7 @@ disks() {
tool_versions() {
for c in 7z openssl fio stress-ng sysbench sensors turbostat cpupower \
glmark2 vkmark glxinfo vulkaninfo python3 \
libreoffice inkscape gegl gimp; do
libreoffice inkscape gegl; do
have "$c" && printf ' %-20s %s\n' "$c" "$("$c" --version 2>&1 | head -1)"
done
local pt="$DIR/tools/pt/PerformanceTest/PerformanceTest_Linux_x86-64"

View file

@ -155,7 +155,6 @@ METRICS = [
("libreoffice", "LibreOffice documents->PDF", "docs/s", True, None),
("gegl", "GEGL image operations", "ops/s", True, None),
("inkscape", "Inkscape SVG->PNG", "img/s", True, None),
("gimp", "GIMP batch operations", "ops/s", True, None),
("fio-seqread", "fio sequential read", "MB/s", True, raw_fio_seqread),
("fio-seqwrite", "fio sequential write", "MB/s", True, raw_fio_seqwrite),
("fio-randread", "fio random read 4k", "IOPS", True, raw_fio_randread),

View file

@ -33,9 +33,10 @@
# GPU_VD=0x1002:0x73df vendor:device hex for Vulkan selection (auto-detected)
# LLAMA_MODEL=/path GGUF for the LLM test (default: bundled model)
# LLAMA_NGL=0 GPU layers to offload (0 = CPU/RAM, the default)
# RUN_APPS=1 app workloads: LibreOffice, GEGL, Inkscape, GIMP
# RUN_APPS=1 app workloads: LibreOffice, GEGL, Inkscape
# CORPUS=/path where the sample inputs are cached (default ./tools/corpus)
# CORPUS_URL=... base URL the sample corpora are fetched from
# INKSCAPE_FILES=25 how many SVGs the Inkscape step exports
# GOVERNOR=powersave CPU governor to pin (default performance); an explicit
# value is appended to the tag, e.g. after-powersave-headless
# GLMARK2_DURATION=10 seconds for the glmark2 scene (headed part)
@ -392,11 +393,11 @@ doctor() {
printf ' %-22s %s\n' "$t" "$(command -v "$t" || echo MISSING)"
done
printf 'apps:\n'
for t in libreoffice inkscape gegl gimp; do
for t in libreoffice inkscape gegl; do
printf ' %-22s %s\n' "$t" "$(command -v "$t" || echo MISSING)"
done
printf 'corpus: %s\n' "$CORPUS"
printf ' install apps: sudo dnf install -y libreoffice-writer libreoffice-calc inkscape gegl04-tools gimp\n'
printf ' install apps: sudo dnf install -y libreoffice-writer libreoffice-calc inkscape gegl04-tools\n'
printf 'governor: %s (pinned for timed runs; set GOVERNOR=... to choose)\n' "$GOVERNOR"
local need; need="$(pkgs_for_missing)"
if [ -z "${need// /}" ]; then
@ -499,7 +500,7 @@ run_llama() {
}
# --- app workloads (stock apps + fixed corpora) -------------------------------
# Phases and score names are the benchmark names: libreoffice gegl inkscape gimp.
# Phases and score names are the benchmark names: libreoffice gegl inkscape.
# Each registers a rate (items/s) so higher stays better for the score/W table.
run_libreoffice() {
@ -568,13 +569,17 @@ run_inkscape() {
c373998bebff0a88f0c4e6fec383eaa62690f544c6eb2b1ad7c55b1547e4db08 inkscape \
|| { printf 'skip (corpus unavailable)\n'; return 0; }
local d="$CORPUS/inkscape" out="$CORPUS/inkscape-out" log="inkscape-$TAG.txt"
local n t0 t1 el r f
n=$(find "$d" -maxdepth 1 -name '*.svg' 2>/dev/null | wc -l)
local n limit t0 t1 el r f
local -a svgs
mapfile -t svgs < <(find "$d" -maxdepth 1 -name '*.svg' 2>/dev/null | sort)
n="${#svgs[@]}"
[ "$n" -gt 0 ] || { printf 'skip (no SVG in corpus)\n'; return 0; }
limit="${INKSCAPE_FILES:-25}" # cap the corpus so the step stays short
[ "$limit" -gt 0 ] 2>/dev/null && [ "$limit" -lt "$n" ] && n="$limit"
rm -rf "$out"; mkdir -p "$out"
{ inkscape --version; printf 'export %s SVG files -> PNG\n' "$n"; } > "$log" 2>&1
{ inkscape --version; printf 'export %s of %s SVG files -> PNG\n' "$n" "${#svgs[@]}"; } > "$log" 2>&1
t0=$(now)
for f in "$d"/*.svg; do
for f in "${svgs[@]:0:$n}"; do
inkscape --export-filename="$out/$(basename "${f%.svg}").png" "$f" >> "$log" 2>&1
done
t1=$(now)
@ -584,89 +589,11 @@ run_inkscape() {
reg_score "inkscape" "$r"
}
# GIMP batch Script-Fu. GIMP 3 renamed/reshaped much of the PDB, so pick the
# script for the installed major version. GIMP 3 support is best-effort: verify
# the log if the op count or timing looks off.
gimp_script_v2() {
cat > "$1" <<'SCM'
(define (batch-op op pattern)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(cond ((string=? op "unsharp-mask")
(plug-in-unsharp-mask RUN-NONINTERACTIVE image drawable 15.0 0.6 0))
((string=? op "resize") (gimp-image-scale image 600 400))
((string=? op "rotate") (gimp-image-rotate image 0))
((string=? op "auto-levels") (gimp-levels-stretch drawable)))
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))
SCM
}
gimp_script_v3() {
cat > "$1" <<'SCM'
(script-fu-use-v3)
(define (batch-op op pattern)
(let* ((filelist (file-glob #:pattern pattern #:filename-encoding TRUE)))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (gimp-file-load RUN-NONINTERACTIVE filename))
(drawable (vector-ref (gimp-image-get-selected-drawables image) 0)))
(cond ((string=? op "unsharp-mask")
(plug-in-unsharp-mask RUN-NONINTERACTIVE image drawable 15.0 0.6 0))
((string=? op "resize") (gimp-image-scale image 600 400))
((string=? op "rotate") (gimp-image-rotate image 0))
((string=? op "auto-levels") (gimp-levels-stretch drawable)))
(gimp-file-save RUN-NONINTERACTIVE image filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))
SCM
}
run_gimp() {
section "APP: GIMP — batch image operations"
phase "gimp"
if ! have gimp; then
printf 'skip (gimp missing) — sudo dnf install -y gimp\n'
return 0
fi
setup_corpus sample-photo-6000x4000-1.zip "$CORPUS_URL/sample-photo-6000x4000-1.zip" \
cadcd434abcdc82a220e7022c749b6fa5f46bb7a32ec14423ca8aab067b0e989 gimp \
|| { printf 'skip (corpus unavailable)\n'; return 0; }
local d="$CORPUS/gimp" src log="gimp-$TAG.txt" w scm gv t0 t1 el r op
src="$(find "$d" -maxdepth 1 -iname '*.jpg' 2>/dev/null | head -1)"
[ -n "$src" ] || { printf 'skip (no JPEG in corpus)\n'; return 0; }
w="$CORPUS/gimp-work"; rm -rf "$w"; mkdir -p "$w"
scm="$w/bench.scm"
gv="$(gimp --version 2>&1 | grep -oE '[0-9]+' | head -1)"; gv="${gv:-3}"
if [ "$gv" -ge 3 ] 2>/dev/null; then gimp_script_v3 "$scm"; else gimp_script_v2 "$scm"; fi
{ gimp --version 2>&1 | head -1; printf '4 ops x 1 image (v%s script)\n' "$gv"; } > "$log"
t0=$(now)
for op in unsharp-mask resize rotate auto-levels; do
cp -f "$src" "$w/sample.JPG"
printf -- '-- %s --\n' "$op" >> "$log"
if [ "$gv" -ge 3 ] 2>/dev/null; then
GIMP3_DIRECTORY="$w/cfg" gimp -i --batch-interpreter=plug-in-script-fu-eval \
-b "(load \"$scm\")" -b "(batch-op \"$op\" \"$w/*.JPG\")" -b '(gimp-quit 0)' >> "$log" 2>&1
else
GIMP2_DIRECTORY="$w/cfg" gimp -i \
-b "(load \"$scm\")" -b "(batch-op \"$op\" \"$w/*.JPG\")" -b '(gimp-quit 0)' >> "$log" 2>&1
fi
done
t1=$(now)
el="$(secs "$t0" "$t1")"; r="$(per_s 4 "$el")"
cat "$log"
printf 'gimp: 4 ops in %ss = %s ops/s\n' "$el" "$r"
reg_score "gimp" "$r"
}
run_apps() {
section "APP WORKLOADS (LibreOffice / GEGL / Inkscape / GIMP)"
section "APP WORKLOADS (LibreOffice / GEGL / Inkscape)"
run_libreoffice
run_gegl
run_inkscape
run_gimp
}
run_headless() {

View file

@ -1,15 +0,0 @@
(script-fu-use-v3)
(define (batch-op op pattern)
(let* ((filelist (file-glob #:pattern pattern #:filename-encoding TRUE)))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (gimp-file-load RUN-NONINTERACTIVE filename))
(drawable (vector-ref (gimp-image-get-selected-drawables image) 0)))
(cond ((string=? op "unsharp-mask")
(plug-in-unsharp-mask RUN-NONINTERACTIVE image drawable 15.0 0.6 0))
((string=? op "resize") (gimp-image-scale image 600 400))
((string=? op "rotate") (gimp-image-rotate image 0))
((string=? op "auto-levels") (gimp-levels-stretch drawable)))
(gimp-file-save RUN-NONINTERACTIVE image filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))

View file

@ -1,35 +0,0 @@
# GIMP gimprc
#
# This is your personal gimprc file. Any variable defined in this file takes
# precedence over the value defined in the system-wide gimprc:
# /etc/gimp/3.0/gimprc
# Most values can be set within GIMP by changing some options in the
# Preferences dialog.
(prev-language "American English")
(config-version "3.2.6")
(import-raw-plug-in "${gimp_plug_in_dir}/plug-ins/file-raw-placeholder/file-raw-placeholder")
(fill-options
(style fg-color)
(custom-style solid-color)
(antialias yes)
(feather no)
(feather-radius 10))
(stroke-options
(style fg-color)
(custom-style solid-color)
(antialias yes)
(feather no)
(feather-radius 10)
(method line)
(width 6)
(unit pixels)
(cap-style butt)
(join-style miter)
(miter-limit 10)
(dash-offset 0)
(dash-info 0)
(emulate-brush-dynamics no))
# end of gimprc

File diff suppressed because it is too large Load diff

View file

@ -1,13 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<tags>
<resource identifier="${gimp_data_dir}/brushes/Round.vbr" checksum="a7f02530d3bc7484c8f9240cbe9c65b1">
<tag>round</tag>
</resource>
<resource identifier="${gimp_data_dir}/brushes/Round-Fuzzy.vbr" checksum="f8cb2466841104a55e42afce4568d103">
<tag>fuzzy</tag>
<tag>round</tag>
</resource>
</tags>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Some files were not shown because too many files have changed in this diff Show more