From 38ad3a1b9ace71a720f801faa4ee17f84adf2d15 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Sun, 12 Jul 2026 23:54:21 +0000
Subject: [PATCH] chore: publish from main
---
.github/plugin/marketplace.json | 6 +
.../apng-studio/.github/plugin/plugin.json | 19 +
extensions/apng-studio/.gitignore | 11 +
extensions/apng-studio/LICENSE | 21 +
extensions/apng-studio/README.md | 97 ++
extensions/apng-studio/apng.mjs | 310 +++++
extensions/apng-studio/assets/demo.png | Bin 0 -> 388947 bytes
extensions/apng-studio/assets/preview.png | Bin 0 -> 303031 bytes
extensions/apng-studio/copilot-extension.json | 4 +
extensions/apng-studio/extension.mjs | 1234 +++++++++++++++++
extensions/apng-studio/qr.mjs | 438 ++++++
extensions/apng-studio/web/app.js | 669 +++++++++
extensions/apng-studio/web/index.html | 189 +++
extensions/apng-studio/web/styles.css | 620 +++++++++
14 files changed, 3618 insertions(+)
create mode 100644 extensions/apng-studio/.github/plugin/plugin.json
create mode 100644 extensions/apng-studio/.gitignore
create mode 100644 extensions/apng-studio/LICENSE
create mode 100644 extensions/apng-studio/README.md
create mode 100644 extensions/apng-studio/apng.mjs
create mode 100644 extensions/apng-studio/assets/demo.png
create mode 100644 extensions/apng-studio/assets/preview.png
create mode 100644 extensions/apng-studio/copilot-extension.json
create mode 100644 extensions/apng-studio/extension.mjs
create mode 100644 extensions/apng-studio/qr.mjs
create mode 100644 extensions/apng-studio/web/app.js
create mode 100644 extensions/apng-studio/web/index.html
create mode 100644 extensions/apng-studio/web/styles.css
diff --git a/.github/plugin/marketplace.json b/.github/plugin/marketplace.json
index f8bd148d..5edf260f 100644
--- a/.github/plugin/marketplace.json
+++ b/.github/plugin/marketplace.json
@@ -81,6 +81,12 @@
"description": "Bootstrap and run a multi-agent AI development team with named roles (Producer, Dev Team, QA). Sprint planning, brainstorm prompts with distinct agent voices, cross-chat context survival, and parallel team workflows. Based on a proven template that shipped a 30-game app in 5 days with zero human-written code.",
"version": "1.0.0"
},
+ {
+ "name": "apng-studio",
+ "source": "extensions/apng-studio",
+ "description": "Interactive GitHub Copilot app canvas extension for building Animated PNG (APNG) files from frames. Draw or upload frames, tune per-frame timing and compositing, preview live, send the result to your phone by QR, and export an animated .png.",
+ "version": "1.0.0"
+ },
{
"name": "arcade-canvas",
"source": "extensions/arcade-canvas",
diff --git a/extensions/apng-studio/.github/plugin/plugin.json b/extensions/apng-studio/.github/plugin/plugin.json
new file mode 100644
index 00000000..6c46943c
--- /dev/null
+++ b/extensions/apng-studio/.github/plugin/plugin.json
@@ -0,0 +1,19 @@
+{
+ "name": "apng-studio",
+ "description": "Interactive GitHub Copilot app canvas extension for building Animated PNG (APNG) files from frames. Draw or upload frames, tune per-frame timing and compositing, preview live, send the result to your phone by QR, and export an animated .png.",
+ "version": "1.0.0",
+ "author": {
+ "name": "Andrea Griffiths",
+ "url": "https://github.com/AndreaGriffiths11"
+ },
+ "keywords": [
+ "animated-png",
+ "apng",
+ "copilot-canvas",
+ "frame-animation",
+ "image-export",
+ "interactive-canvas"
+ ],
+ "logo": "assets/preview.png",
+ "extensions": "."
+}
diff --git a/extensions/apng-studio/.gitignore b/extensions/apng-studio/.gitignore
new file mode 100644
index 00000000..5db7b303
--- /dev/null
+++ b/extensions/apng-studio/.gitignore
@@ -0,0 +1,11 @@
+# Runtime user data — per-project frames and exports the extension writes
+# under its own directory at runtime. This is local state, not source.
+artifacts/
+
+# Exported animations
+*.apng
+
+# Node / editor / OS cruft
+node_modules/
+.DS_Store
+*.log
diff --git a/extensions/apng-studio/LICENSE b/extensions/apng-studio/LICENSE
new file mode 100644
index 00000000..da487c02
--- /dev/null
+++ b/extensions/apng-studio/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2026 octobooth-1
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/extensions/apng-studio/README.md b/extensions/apng-studio/README.md
new file mode 100644
index 00000000..27a71767
--- /dev/null
+++ b/extensions/apng-studio/README.md
@@ -0,0 +1,97 @@
+# APNG Studio
+
+An interactive [GitHub Copilot app](https://github.com/features/ai/github-app) **canvas extension** for building [Animated PNG (APNG)](https://wiki.mozilla.org/APNG_Specification) files from frames — draw or upload frames, tune the full practical APNG spec surface, preview live, and export an animated `.png`.
+
+The canvas renders in a side panel; the agent can also drive it through callable actions.
+
+
+
+
+APNG Studio in action — an animated PNG built with the canvas itself.
+
+## Background
+
+APNG Studio started as a hallway conversation. During a demo shift at the WeAreDevelopers Congress I got talking with [Jeff](https://github.com/GekkeBoyJeff) about APNG (animated PNG) versus GIF: APNG keeps real alpha and full color where GIF can't. We wanted an easy way to actually build one, so we made this small canvas wrapper for creating APNGs.
+
+## Features
+
+- **Frames** — upload images or draw them on a built‑in canvas (pen/eraser, fill, onion‑skin, "start from last frame"). Reorder, duplicate, and delete frames.
+- **Per‑frame timing** — set the delay as an exact `numerator / denominator` fraction with a live `= N ms · N fps` readout.
+- **Per‑frame compositing** — `dispose_op` (None / Background / Previous) and `blend_op` (Source / Over) dropdowns, straight from the APNG spec.
+- **Apply to all** — set every frame's delay (ms), snap to an exact frame rate (fps), or apply dispose + blend in one click.
+- **Loop count** — `0` = infinite, or a fixed number of plays.
+- **Hidden first frame** — mark frame 1 as a static fallback: shown by non‑APNG viewers, excluded from the animation loop (encoded as a default image with no leading `fcTL`, `num_frames = N‑1`).
+- **Live preview** — a real animated PNG is assembled on every change and served from `/preview.png`; a **Reload** button re‑syncs state and rebuilds the preview.
+- **Send to phone** — a **Send to phone** button opens a QR code; scan it with your phone camera (same Wi‑Fi) to open the live animation in your phone's browser and save it. Served read‑only from a short‑lived, token‑gated LAN endpoint that shuts itself down after 10 minutes.
+- **Export** — writes a valid animated `.png` (APNG) to disk and returns its path. The `.png` extension keeps the file byte‑compatible with every PNG viewer: APNG‑aware ones (browsers, macOS Quick Look) animate it, others show the first frame as a static fallback.
+
+## Install
+
+### From GitHub Copilot (recommended)
+
+Ask Copilot to install the committed extension URL:
+
+```text
+Install this extension: https://github.com/github/awesome-copilot/tree/main/extensions/apng-studio
+```
+
+You can also copy the folder into one of these locations:
+
+- **User** — `~/.copilot/extensions/apng-studio/`, available in every project.
+- **Project** — `.github/extensions/apng-studio/` inside a repo, committed and shared with your team.
+
+Reload extensions in the app, then open the `apng-studio` canvas.
+
+### Manual
+
+Copy the source files into one of the extension directories above, keeping the layout:
+
+```
+apng-studio/
+├── extension.mjs # entry point (required name)
+├── apng.mjs # APNG codec + RGBA→PNG encoder
+├── qr.mjs # dependency-free QR encoder (Send to phone)
+└── web/ # canvas iframe renderer
+ ├── index.html
+ ├── app.js
+ └── styles.css
+```
+
+Then reload extensions. The `@github/copilot-sdk` import is resolved by the host — **do not** add a `package.json` or `node_modules` for it.
+
+## Open the canvas
+
+Once installed, open the **APNG Studio** canvas from Copilot. Optional open input:
+
+| field | type | description |
+| ----------- | ------ | ---------------------------------------------- |
+| `projectId` | string | Animation project id (defaults to `default`). |
+| `name` | string | Optional display name for the animation. |
+
+Each project's frames persist on disk under `artifacts//`, so they survive reloads and are shared between every open panel and the agent actions. That folder is local user data and is **git‑ignored**.
+
+## Agent actions
+
+The extension exposes these callable actions on the `apng-studio` canvas:
+
+| action | what it does |
+| ----------------- | ------------------------------------------------------------------------------------------------------- |
+| `get_state` | Return project settings + per‑frame timing/compositing and total duration. |
+| `set_settings` | Update `width`/`height` (only with 0 frames), `loops`, and `hiddenFirst`. |
+| `add_color_frame` | Append a solid‑color frame; accepts `delayNum`/`delayDen`/`disposeOp`/`blendOp`. |
+| `set_frame` | Update one frame (`frameId`) or all (`all: true`): timing via `delayMs`/`fps`/`delayNum`+`delayDen`, plus `disposeOp`/`blendOp`. |
+| `clear_frames` | Remove every frame. |
+| `export` | Assemble and write the animated `.png` (APNG) to disk; returns the absolute path. |
+
+All actions accept an optional `projectId` to target a specific animation.
+
+## How it works
+
+- **`extension.mjs`** — one loopback HTTP server per open canvas instance serves the renderer, JSON state, per‑frame PNGs, the live `/preview.png`, and mutation endpoints. Server‑Sent Events (`/events`) push a `changed` signal so every open panel and the preview stay in sync. **Send to phone** spins up a separate, read‑only LAN server that serves only a landing page and the preview image, gated by a short‑lived random token and torn down on expiry.
+- **`apng.mjs`** — assembles the APNG chunk stream (`IHDR` / `acTL` / `fcTL` / `IDAT` / `fdAT` / `IEND`) with contiguous sequence numbers, plus a minimal RGBA→PNG encoder.
+- **`qr.mjs`** — a small, dependency‑free QR encoder (byte mode, error‑correction level M) used to render the **Send to phone** code. The QR is drawn into a PNG with the `apng.mjs` encoder.
+- **`web/`** — the iframe UI. It talks to its server over plain HTTP; there is no privileged host bridge.
+
+## License
+
+[MIT](./LICENSE)
diff --git a/extensions/apng-studio/apng.mjs b/extensions/apng-studio/apng.mjs
new file mode 100644
index 00000000..64fffc5b
--- /dev/null
+++ b/extensions/apng-studio/apng.mjs
@@ -0,0 +1,310 @@
+// APNG codec helpers (Node-side).
+//
+// - assembleApng(): repackages a list of already-encoded PNG frames into a
+// single Animated PNG, following https://wiki.mozilla.org/APNG_Specification.
+// Because every frame is already a valid PNG sharing one IHDR, we only need
+// to lift each frame's IDAT stream into the default image (frame 0) or into
+// `fdAT` chunks (later frames), wrapped by `acTL`/`fcTL` control chunks with
+// freshly computed CRC-32s. No re-compression required.
+// - encodeRgbaPng(): minimal RGBA8 PNG encoder used for agent-generated frames.
+
+import { deflateSync } from "node:zlib";
+
+const PNG_SIGNATURE = Uint8Array.from([137, 80, 78, 71, 13, 10, 26, 10]);
+
+const CRC_TABLE = (() => {
+ const table = new Uint32Array(256);
+ for (let n = 0; n < 256; n++) {
+ let c = n;
+ for (let k = 0; k < 8; k++) {
+ c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
+ }
+ table[n] = c >>> 0;
+ }
+ return table;
+})();
+
+function crc32(bytes) {
+ let c = 0xffffffff;
+ for (let i = 0; i < bytes.length; i++) {
+ c = CRC_TABLE[(c ^ bytes[i]) & 0xff] ^ (c >>> 8);
+ }
+ return (c ^ 0xffffffff) >>> 0;
+}
+
+function concat(chunks) {
+ let total = 0;
+ for (const c of chunks) total += c.length;
+ const out = new Uint8Array(total);
+ let off = 0;
+ for (const c of chunks) {
+ out.set(c, off);
+ off += c.length;
+ }
+ return out;
+}
+
+function readU32(bytes, off) {
+ return (
+ ((bytes[off] << 24) |
+ (bytes[off + 1] << 16) |
+ (bytes[off + 2] << 8) |
+ bytes[off + 3]) >>>
+ 0
+ );
+}
+
+// Build a PNG chunk: [length][type][data][crc], CRC over type+data.
+function chunk(type, data) {
+ const len = data.length;
+ const out = new Uint8Array(12 + len);
+ const view = new DataView(out.buffer);
+ view.setUint32(0, len);
+ out[4] = type.charCodeAt(0);
+ out[5] = type.charCodeAt(1);
+ out[6] = type.charCodeAt(2);
+ out[7] = type.charCodeAt(3);
+ out.set(data, 8);
+ view.setUint32(8 + len, crc32(out.subarray(4, 8 + len)));
+ return out;
+}
+
+// Parse the pieces of a PNG we care about: its IHDR data and the concatenated
+// IDAT stream. Ancillary/color chunks are intentionally dropped — every frame
+// shares a uniform RGBA8 IHDR so they are not needed.
+function parsePng(bytes) {
+ for (let i = 0; i < PNG_SIGNATURE.length; i++) {
+ if (bytes[i] !== PNG_SIGNATURE[i]) {
+ throw new Error("Not a PNG (bad signature)");
+ }
+ }
+ let off = 8;
+ let ihdrData = null;
+ let width = 0;
+ let height = 0;
+ const idatParts = [];
+ while (off + 8 <= bytes.length) {
+ const len = readU32(bytes, off);
+ const type = String.fromCharCode(
+ bytes[off + 4],
+ bytes[off + 5],
+ bytes[off + 6],
+ bytes[off + 7]
+ );
+ const dataStart = off + 8;
+ const data = bytes.subarray(dataStart, dataStart + len);
+ if (type === "IHDR") {
+ ihdrData = data.slice();
+ width = readU32(data, 0);
+ height = readU32(data, 4);
+ } else if (type === "IDAT") {
+ idatParts.push(data.slice());
+ } else if (type === "IEND") {
+ break;
+ }
+ off = dataStart + len + 4; // skip data + CRC
+ }
+ if (!ihdrData) throw new Error("PNG missing IHDR");
+ if (idatParts.length === 0) throw new Error("PNG missing IDAT");
+ return { ihdrData, width, height, idat: concat(idatParts) };
+}
+
+function acTLChunk(numFrames, numPlays) {
+ const data = new Uint8Array(8);
+ const view = new DataView(data.buffer);
+ view.setUint32(0, numFrames >>> 0);
+ view.setUint32(4, numPlays >>> 0);
+ return chunk("acTL", data);
+}
+
+// dispose_op: 0 = NONE (leave as-is), 1 = BACKGROUND (clear region to transparent
+// black), 2 = PREVIOUS (revert region to what it was before this frame).
+// blend_op: 0 = SOURCE (overwrite region, alpha included), 1 = OVER (alpha-blend
+// this frame over the current canvas contents).
+function fcTLChunk(sequence, width, height, params) {
+ const {
+ delayNum = 100,
+ delayDen = 1000,
+ disposeOp = 0,
+ blendOp = 0,
+ xOffset = 0,
+ yOffset = 0,
+ } = params || {};
+ const data = new Uint8Array(26);
+ const view = new DataView(data.buffer);
+ view.setUint32(0, sequence >>> 0); // sequence_number
+ view.setUint32(4, width >>> 0); // width
+ view.setUint32(8, height >>> 0); // height
+ view.setUint32(12, xOffset >>> 0); // x_offset
+ view.setUint32(16, yOffset >>> 0); // y_offset
+ view.setUint16(20, delayNum & 0xffff); // delay_num
+ view.setUint16(22, delayDen & 0xffff); // delay_den
+ data[24] = disposeOp & 0xff; // dispose_op
+ data[25] = blendOp & 0xff; // blend_op
+ return chunk("fcTL", data);
+}
+
+function fdATChunk(sequence, idat) {
+ const data = new Uint8Array(4 + idat.length);
+ new DataView(data.buffer).setUint32(0, sequence >>> 0);
+ data.set(idat, 4);
+ return chunk("fdAT", data);
+}
+
+const clampU16 = (n, dflt = 0) => {
+ const v = Math.round(Number(n));
+ return Number.isFinite(v) ? Math.max(0, Math.min(0xffff, v)) : dflt;
+};
+const clampDen = (n) => {
+ const v = Math.round(Number(n));
+ return Number.isFinite(v) && v >= 1 ? Math.min(0xffff, v) : 1000;
+};
+const clampOp = (n, hi) => {
+ const v = Math.round(Number(n));
+ return Number.isFinite(v) ? Math.max(0, Math.min(hi, v)) : 0;
+};
+
+// Normalize a caller-supplied frame descriptor into the exact fcTL fields.
+// Timing accepts either delayNum/delayDen (exact) or a delayMs shorthand
+// (treated as delayNum ms over a 1000 denominator).
+function frameParams(f) {
+ let delayNum;
+ let delayDen;
+ if (f.delayNum != null) {
+ delayNum = clampU16(f.delayNum, 100);
+ delayDen = clampDen(f.delayDen);
+ } else {
+ delayNum = clampU16(f.delayMs, 100);
+ delayDen = 1000;
+ }
+ return {
+ delayNum,
+ delayDen,
+ disposeOp: clampOp(f.disposeOp, 2),
+ blendOp: clampOp(f.blendOp, 1),
+ };
+}
+
+// The APNG spec forbids APNG_DISPOSE_OP_PREVIOUS on the first fcTL (decoders
+// must treat it as BACKGROUND). Normalize it for whichever frame is composited
+// first so our output is well-defined instead of relying on decoder leniency.
+function firstFrameParams(f) {
+ const p = frameParams(f);
+ if (p.disposeOp === 2) p.disposeOp = 1;
+ return p;
+}
+
+/**
+ * Assemble an APNG from a list of PNG frames.
+ *
+ * @param {Array<{png: Uint8Array, delayMs?: number, delayNum?: number, delayDen?: number, disposeOp?: number, blendOp?: number}>} frames
+ * @param {{loops?: number, hiddenFirst?: boolean}} [options]
+ * loops: 0 = infinite. hiddenFirst: when true (and >=2 frames) the first frame
+ * becomes the static default image shown by non-APNG viewers and is NOT part
+ * of the animation; frames 2..N make up the loop.
+ * @returns {Uint8Array} APNG bytes.
+ */
+export function assembleApng(frames, options = {}) {
+ if (!Array.isArray(frames) || frames.length === 0) {
+ throw new Error("assembleApng requires at least one frame");
+ }
+ const loops = Math.max(0, Math.round(Number(options.loops) || 0));
+ const hiddenFirst = !!options.hiddenFirst && frames.length >= 2;
+ const parsed = frames.map((f) => parsePng(f.png));
+
+ const width = parsed[0].width;
+ const height = parsed[0].height;
+ for (const p of parsed) {
+ if (p.width !== width || p.height !== height) {
+ throw new Error(
+ `All frames must share dimensions (${width}x${height}); found ${p.width}x${p.height}`
+ );
+ }
+ }
+
+ const parts = [PNG_SIGNATURE, chunk("IHDR", parsed[0].ihdrData)];
+ const numFrames = hiddenFirst ? parsed.length - 1 : parsed.length;
+ parts.push(acTLChunk(numFrames, loops));
+
+ let seq = 0;
+ if (hiddenFirst) {
+ // Default image = frame 0, with no fcTL, so it is not animated.
+ parts.push(chunk("IDAT", parsed[0].idat));
+ for (let i = 1; i < parsed.length; i++) {
+ const params = i === 1 ? firstFrameParams(frames[i]) : frameParams(frames[i]);
+ parts.push(fcTLChunk(seq++, width, height, params));
+ parts.push(fdATChunk(seq++, parsed[i].idat));
+ }
+ } else {
+ // Frame 0 = default image AND first animation frame: fcTL then IDAT.
+ parts.push(fcTLChunk(seq++, width, height, firstFrameParams(frames[0])));
+ parts.push(chunk("IDAT", parsed[0].idat));
+ // Remaining frames: fcTL then fdAT (each carries a sequence number).
+ for (let i = 1; i < parsed.length; i++) {
+ parts.push(fcTLChunk(seq++, width, height, frameParams(frames[i])));
+ parts.push(fdATChunk(seq++, parsed[i].idat));
+ }
+ }
+
+ parts.push(chunk("IEND", new Uint8Array(0)));
+ return concat(parts);
+}
+
+/**
+ * Encode an 8-bit RGBA pixel buffer into a (non-animated) PNG.
+ *
+ * @param {number} width
+ * @param {number} height
+ * @param {Uint8Array} rgba length must be width*height*4
+ * @returns {Uint8Array} PNG bytes.
+ */
+export function encodeRgbaPng(width, height, rgba) {
+ if (rgba.length !== width * height * 4) {
+ throw new Error("rgba length does not match width*height*4");
+ }
+ const ihdr = new Uint8Array(13);
+ const view = new DataView(ihdr.buffer);
+ view.setUint32(0, width >>> 0);
+ view.setUint32(4, height >>> 0);
+ ihdr[8] = 8; // bit depth
+ ihdr[9] = 6; // color type: RGBA
+ ihdr[10] = 0; // compression
+ ihdr[11] = 0; // filter method
+ ihdr[12] = 0; // interlace
+
+ // Filtered raw scanlines: one leading filter byte (0 = None) per row.
+ const stride = width * 4;
+ const raw = new Uint8Array((stride + 1) * height);
+ for (let y = 0; y < height; y++) {
+ const src = y * stride;
+ const dst = y * (stride + 1);
+ raw[dst] = 0;
+ raw.set(rgba.subarray(src, src + stride), dst + 1);
+ }
+ const compressed = deflateSync(raw, { level: 9 });
+
+ return concat([
+ PNG_SIGNATURE,
+ chunk("IHDR", ihdr),
+ chunk("IDAT", new Uint8Array(compressed.buffer, compressed.byteOffset, compressed.length)),
+ chunk("IEND", new Uint8Array(0)),
+ ]);
+}
+
+/**
+ * Convenience: encode a solid-color frame as a PNG.
+ * @param {number} width
+ * @param {number} height
+ * @param {{r:number,g:number,b:number,a:number}} color 0-255 components
+ */
+export function solidColorPng(width, height, color) {
+ const rgba = new Uint8Array(width * height * 4);
+ const { r, g, b, a } = color;
+ for (let i = 0; i < rgba.length; i += 4) {
+ rgba[i] = r;
+ rgba[i + 1] = g;
+ rgba[i + 2] = b;
+ rgba[i + 3] = a;
+ }
+ return encodeRgbaPng(width, height, rgba);
+}
diff --git a/extensions/apng-studio/assets/demo.png b/extensions/apng-studio/assets/demo.png
new file mode 100644
index 0000000000000000000000000000000000000000..e36882c82f50c1ef4e8f7d522195d29f75a89d90
GIT binary patch
literal 388947
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