{
  "type": "excalidraw",
  "version": 2,
  "source": "https://excalidraw.com",
  "elements": [
    {
      "type": "text",
      "version": 1,
      "versionNonce": 1,
      "isDeleted": false,
      "id": "placeholder-title",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "angle": 0,
      "x": 100,
      "y": 80,
      "width": 600,
      "height": 30,
      "seed": 1,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "fontSize": 28,
      "fontFamily": 1,
      "text": "Figure 9.1 \u2014 gzip vs zstd:chunked",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "Figure 9.1 \u2014 gzip vs zstd:chunked",
      "lineHeight": 1.25,
      "baseline": 22
    },
    {
      "type": "text",
      "version": 1,
      "versionNonce": 2,
      "isDeleted": false,
      "id": "placeholder-hint",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "angle": 0,
      "x": 100,
      "y": 140,
      "width": 600,
      "height": 200,
      "seed": 2,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 1,
      "text": "Two side-by-side boxes.\n\nLeft: \"gzip-compressed layer (single blob)\"\n  A row of small blocks representing the compressed bytes.\n  Caption: 1 byte change \u2192 entire blob changes.\n           Client must re-pull the whole layer.\n\nRight: \"zstd:chunked layer (addressable chunks + manifest)\" (red-accent)\n  A row of blocks where one is highlighted red (\"the changed chunk\").\n  Caption: 1 chunk changes \u2192 only that chunk re-pulled.\n           Other chunks stay byte-identical.\n\nBottom note: chunk-level checksum manifest enables selective fetch.\n",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "Two side-by-side boxes.\n\nLeft: \"gzip-compressed layer (single blob)\"\n  A row of small blocks representing the compressed bytes.\n  Caption: 1 byte change \u2192 entire blob changes.\n           Client must re-pull the whole layer.\n\nRight: \"zstd:chunked layer (addressable chunks + manifest)\" (red-accent)\n  A row of blocks where one is highlighted red (\"the changed chunk\").\n  Caption: 1 chunk changes \u2192 only that chunk re-pulled.\n           Other chunks stay byte-identical.\n\nBottom note: chunk-level checksum manifest enables selective fetch.\n",
      "lineHeight": 1.3,
      "baseline": 14
    }
  ],
  "appState": {
    "gridSize": null,
    "viewBackgroundColor": "#ffffff"
  },
  "files": {}
}