You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dj...@apache.org on 2021/10/25 18:47:50 UTC

[camel-website] 04/04: Run yarn upgrade-deps on macOS (this should fix the PR build)

This is an automated email from the ASF dual-hosted git repository.

djencks pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit d4a5618f2f8593ae68cb4dd45218abcff73ec77d
Author: David Jencks <dj...@apache.org>
AuthorDate: Mon Oct 25 09:48:51 2021 -0700

    Run yarn upgrade-deps on macOS (this should fix the PR build)
---
 .pnp.js                                            |  231 ++--
 .yarn/build-state.yml                              |   18 +-
 ...r-npm-3.0.0-alpha.10-1bfce6ae54-775199dd0f.zip} |  Bin 23732 -> 24190 bytes
 ...i-npm-3.0.0-alpha.10-2658c19379-214d1b1cbc.zip} |  Bin 11468 -> 12211 bytes
 ...r-npm-3.0.0-alpha.10-9c905fd235-54311f8f48.zip} |  Bin 27420 -> 27417 bytes
 ...r-npm-3.0.0-alpha.10-a7aae684d0-1bb1e097fb.zip} |  Bin 20925 -> 21036 bytes
 ...r-npm-3.0.0-alpha.10-23934f2103-59762a59fd.zip} |  Bin 10027 -> 10026 bytes
 ...r-npm-3.0.0-alpha.10-86d5d08443-3541654c19.zip} |  Bin 10504 -> 10528 bytes
 ...r-npm-3.0.0-alpha.10-bcb88528c5-53ae29fb66.zip} |  Bin 10032 -> 10023 bytes
 ...r-npm-3.0.0-alpha.10-948fad507e-4a44b5fe5d.zip} |  Bin 14871 -> 14871 bytes
 ...r-npm-3.0.0-alpha.10-d20aef1b86-1fc94cb3fa.zip} |  Bin 14446 -> 14440 bytes
 ...r-npm-3.0.0-alpha.10-00bbf250d0-a728b859c2.zip} |  Bin 10200 -> 10245 bytes
 ...t-npm-3.0.0-alpha.10-411bc97dd9-7f7d45fc42.zip} |  Bin 10772 -> 10773 bytes
 ...r-npm-3.0.0-alpha.10-bb7e424c4a-e57e5cdc20.zip} |  Bin 9805 -> 9804 bytes
 ...r-npm-3.0.0-alpha.10-46135c3a79-c728160bc2.zip} |  Bin 12830 -> 12833 bytes
 ...r-npm-3.0.0-alpha.10-924fef82de-b0d1d05758.zip} |  Bin 13691 -> 13688 bytes
 .../colorette-npm-1.4.0-7e94b44dc3-7ef8e1ca16.zip  |  Bin 5345 -> 0 bytes
 .../colorette-npm-2.0.16-7b996485d7-082063746a.zip |  Bin 0 -> 7119 bytes
 .../convict-npm-6.1.0-3c39748d83-dce4843743.zip    |  Bin 14288 -> 0 bytes
 .../convict-npm-6.2.1-29af5bd4ae-9851b4d548.zip    |  Bin 0 -> 14284 bytes
 .../dateformat-npm-4.6.3-aa1a4cb7f9-fbef602ec5.zip |  Bin 0 -> 7237 bytes
 .../duplexify-npm-4.1.2-7f2140a477-2736c1d2ac.zip  |  Bin 0 -> 6683 bytes
 ...t-transport-npm-0.4.0-0d0e316a28-53d5bd35eb.zip |  Bin 0 -> 7451 bytes
 ...ino-pretty-npm-7.1.0-6217fb3b0b-dc717aa434.zip} |  Bin 203614 -> 204555 bytes
 ...-json-parse-npm-2.4.0-161f104c50-bbf325b52d.zip |  Bin 0 -> 12381 bytes
 .../sonic-boom-npm-2.3.0-6a1292957e-97b5b795f7.zip |  Bin 0 -> 13949 bytes
 ...rgs-parser-npm-20.2.9-a1d19e598d-3c58da6f61.zip |  Bin 0 -> 31353 bytes
 .../node_modules/fsevents/build/.target.mk         |   55 +
 .../node_modules/fsevents/build/Makefile           |  347 ++++++
 .../fsevents/build/Release/.deps/Release/.node.d   |    1 +
 .../build/Release/.deps/Release/fse.node.d         |    1 +
 .../.deps/Release/obj.target/fse/fsevents.o.d      |   68 +
 .../node_modules/fsevents/build/Release/.node      |  Bin 0 -> 16432 bytes
 .../node_modules/fsevents/build/Release/fse.node   |  Bin 0 -> 52792 bytes
 .../build/Release/obj.target/fse/fsevents.o        |  Bin 0 -> 354712 bytes
 .../node_modules/fsevents/build/binding.Makefile   |    6 +
 .../node_modules/fsevents/build/config.gypi        |   80 ++
 .../node_modules/fsevents/build/fse.target.mk      |  196 +++
 .../node_modules/fsevents/build/gyp-mac-tool       |  777 ++++++++++++
 .../node_modules/gifsicle/vendor/gifsicle          |  Bin 734392 -> 283280 bytes
 .../gifsicle/vendor/share/man/man1/gifsicle.1      | 1318 ++++++++++++++++++++
 .../node_modules/hugo-extended/vendor/hugo         |  Bin 45558328 -> 50132624 bytes
 .../pylib/gyp/__pycache__/MSVSUtil.cpython-39.pyc  |  Bin 0 -> 6352 bytes
 .../gyp/__pycache__/MSVSVersion.cpython-39.pyc     |  Bin 0 -> 12999 bytes
 .../pylib/gyp/__pycache__/__init__.cpython-39.pyc  |  Bin 0 -> 13455 bytes
 .../pylib/gyp/__pycache__/common.cpython-39.pyc    |  Bin 0 -> 15271 bytes
 .../gyp/pylib/gyp/__pycache__/input.cpython-39.pyc |  Bin 0 -> 51925 bytes
 .../gyp/__pycache__/msvs_emulation.cpython-39.pyc  |  Bin 0 -> 40741 bytes
 .../gyp/__pycache__/ninja_syntax.cpython-39.pyc    |  Bin 0 -> 4712 bytes
 .../gyp/__pycache__/simple_copy.cpython-39.pyc     |  Bin 0 -> 1888 bytes
 .../gyp/__pycache__/xcode_emulation.cpython-39.pyc |  Bin 0 -> 55773 bytes
 .../gyp/__pycache__/xcode_ninja.cpython-39.pyc     |  Bin 0 -> 6900 bytes
 .../gyp/__pycache__/xcodeproj_file.cpython-39.pyc  |  Bin 0 -> 76891 bytes
 .../generator/__pycache__/__init__.cpython-39.pyc  |  Bin 0 -> 236 bytes
 .../gyp/generator/__pycache__/make.cpython-39.pyc  |  Bin 0 -> 63116 bytes
 .../gyp/generator/__pycache__/ninja.cpython-39.pyc |  Bin 0 -> 60203 bytes
 .../gyp/generator/__pycache__/xcode.cpython-39.pyc |  Bin 0 -> 21707 bytes
 .../optipng-bin/vendor/man/man1/optipng.1          |  343 +++++
 .../node_modules/optipng-bin/vendor/optipng        |  Bin 130680 -> 182952 bytes
 antora-ui-camel/.yarn/build-state.yml              |   12 +-
 .../node_modules/gifsicle/vendor/gifsicle          |  Bin 734392 -> 283280 bytes
 .../gifsicle/vendor/share/man/man1/gifsicle.1      | 1318 ++++++++++++++++++++
 .../optipng-bin/vendor/man/man1/optipng.1          |  343 +++++
 .../node_modules/optipng-bin/vendor/optipng        |  Bin 130680 -> 182952 bytes
 yarn.lock                                          |  252 ++--
 65 files changed, 5166 insertions(+), 200 deletions(-)

diff --git a/.pnp.js b/.pnp.js
index a019bd1..515dedb 100755
--- a/.pnp.js
+++ b/.pnp.js
@@ -42,8 +42,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         [null, {
           "packageLocation": "./",
           "packageDependencies": [
-            ["@antora/cli", "npm:3.0.0-alpha.9"],
-            ["@antora/site-generator-default", "npm:3.0.0-alpha.9"],
+            ["@antora/cli", "npm:3.0.0-alpha.10"],
+            ["@antora/site-generator-default", "npm:3.0.0-alpha.10"],
             ["@deadlinks/cargo-deadlinks", "github-release:deadlinks/cargo-deadlinks:0.8.0/deadlinks-linux"],
             ["@djencks/asciidoctor-antora-indexer", "npm:0.1.0-alpha.1"],
             ["@djencks/asciidoctor-jsonpath", "npm:0.1.0-alpha.1"],
@@ -215,11 +215,11 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         }]
       ]],
       ["@antora/asciidoc-loader", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-asciidoc-loader-npm-3.0.0-alpha.9-39bd100709-de20a2db05.zip/node_modules/@antora/asciidoc-loader/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-asciidoc-loader-npm-3.0.0-alpha.10-1bfce6ae54-775199dd0f.zip/node_modules/@antora/asciidoc-loader/",
           "packageDependencies": [
-            ["@antora/asciidoc-loader", "npm:3.0.0-alpha.9"],
-            ["@antora/logger", "npm:3.0.0-alpha.9"],
+            ["@antora/asciidoc-loader", "npm:3.0.0-alpha.10"],
+            ["@antora/logger", "npm:3.0.0-alpha.10"],
             ["@antora/user-require-helper", "npm:2.0.0"],
             ["@asciidoctor/core", "npm:2.2.5"]
           ],
@@ -227,12 +227,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         }]
       ]],
       ["@antora/cli", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-cli-npm-3.0.0-alpha.9-eb1976c89e-20efdb6945.zip/node_modules/@antora/cli/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-cli-npm-3.0.0-alpha.10-2658c19379-214d1b1cbc.zip/node_modules/@antora/cli/",
           "packageDependencies": [
-            ["@antora/cli", "npm:3.0.0-alpha.9"],
-            ["@antora/logger", "npm:3.0.0-alpha.9"],
-            ["@antora/playbook-builder", "npm:3.0.0-alpha.9"],
+            ["@antora/cli", "npm:3.0.0-alpha.10"],
+            ["@antora/logger", "npm:3.0.0-alpha.10"],
+            ["@antora/playbook-builder", "npm:3.0.0-alpha.10"],
             ["@antora/user-require-helper", "npm:2.0.0"],
             ["commander", "npm:7.2.0"]
           ],
@@ -240,10 +240,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         }]
       ]],
       ["@antora/content-aggregator", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-content-aggregator-npm-3.0.0-alpha.9-8208cc5339-df0c07c16e.zip/node_modules/@antora/content-aggregator/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-content-aggregator-npm-3.0.0-alpha.10-9c905fd235-54311f8f48.zip/node_modules/@antora/content-aggregator/",
           "packageDependencies": [
-            ["@antora/content-aggregator", "npm:3.0.0-alpha.9"],
+            ["@antora/content-aggregator", "npm:3.0.0-alpha.10"],
             ["@antora/expand-path-helper", "npm:2.0.0"],
             ["@antora/user-require-helper", "npm:2.0.0"],
             ["braces", "npm:3.0.2"],
@@ -253,7 +253,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
             ["isomorphic-git", "npm:1.10.0"],
             ["js-yaml", "npm:4.1.0"],
             ["matcher", "npm:4.0.0"],
-            ["multi-progress", "virtual:8208cc5339f9a0ffc27ea8fa80bc139486e6d7181d99b6c1493d25383a9773fb79da66cac253dbfb96f458350734cca67ab8dc91536898f447ca1c73f68728bf#npm:4.0.0"],
+            ["multi-progress", "virtual:9c905fd235859e703ad13a3f9b73bbd01ee7a643683ab75c410d983319c419c0c83588c50c79bf397a09214a677521d6748520f6c8e8e985b28aa2dbd2c38ed4#npm:4.0.0"],
             ["picomatch", "npm:2.3.0"],
             ["progress", "npm:2.0.3"],
             ["should-proxy", "npm:1.0.4"],
@@ -265,11 +265,11 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         }]
       ]],
       ["@antora/content-classifier", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-content-classifier-npm-3.0.0-alpha.9-9693505f14-f7c0f636c1.zip/node_modules/@antora/content-classifier/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-content-classifier-npm-3.0.0-alpha.10-a7aae684d0-1bb1e097fb.zip/node_modules/@antora/content-classifier/",
           "packageDependencies": [
-            ["@antora/content-classifier", "npm:3.0.0-alpha.9"],
-            ["@antora/logger", "npm:3.0.0-alpha.9"],
+            ["@antora/content-classifier", "npm:3.0.0-alpha.10"],
+            ["@antora/logger", "npm:3.0.0-alpha.10"],
             ["mime-types", "npm:2.1.26"],
             ["vinyl", "npm:2.2.1"]
           ],
@@ -277,11 +277,11 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         }]
       ]],
       ["@antora/document-converter", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-document-converter-npm-3.0.0-alpha.9-d095751a33-f3d24466e4.zip/node_modules/@antora/document-converter/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-document-converter-npm-3.0.0-alpha.10-23934f2103-59762a59fd.zip/node_modules/@antora/document-converter/",
           "packageDependencies": [
-            ["@antora/document-converter", "npm:3.0.0-alpha.9"],
-            ["@antora/asciidoc-loader", "npm:3.0.0-alpha.9"]
+            ["@antora/document-converter", "npm:3.0.0-alpha.10"],
+            ["@antora/asciidoc-loader", "npm:3.0.0-alpha.10"]
           ],
           "linkType": "HARD",
         }]
@@ -296,34 +296,34 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         }]
       ]],
       ["@antora/logger", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-logger-npm-3.0.0-alpha.9-9aa78cf144-f14b81190a.zip/node_modules/@antora/logger/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-logger-npm-3.0.0-alpha.10-86d5d08443-3541654c19.zip/node_modules/@antora/logger/",
           "packageDependencies": [
-            ["@antora/logger", "npm:3.0.0-alpha.9"],
+            ["@antora/logger", "npm:3.0.0-alpha.10"],
             ["@antora/expand-path-helper", "npm:2.0.0"],
             ["pino", "npm:6.13.2"],
-            ["pino-pretty", "npm:6.0.0"],
+            ["pino-pretty", "npm:7.1.0"],
             ["sonic-boom", "npm:2.1.0"]
           ],
           "linkType": "HARD",
         }]
       ]],
       ["@antora/navigation-builder", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-navigation-builder-npm-3.0.0-alpha.9-b1ce47f034-6650ee0f07.zip/node_modules/@antora/navigation-builder/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-navigation-builder-npm-3.0.0-alpha.10-bcb88528c5-53ae29fb66.zip/node_modules/@antora/navigation-builder/",
           "packageDependencies": [
-            ["@antora/navigation-builder", "npm:3.0.0-alpha.9"],
-            ["@antora/asciidoc-loader", "npm:3.0.0-alpha.9"]
+            ["@antora/navigation-builder", "npm:3.0.0-alpha.10"],
+            ["@antora/asciidoc-loader", "npm:3.0.0-alpha.10"]
           ],
           "linkType": "HARD",
         }]
       ]],
       ["@antora/page-composer", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-page-composer-npm-3.0.0-alpha.9-28dc4141c7-b3b367e7c8.zip/node_modules/@antora/page-composer/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-page-composer-npm-3.0.0-alpha.10-948fad507e-4a44b5fe5d.zip/node_modules/@antora/page-composer/",
           "packageDependencies": [
-            ["@antora/page-composer", "npm:3.0.0-alpha.9"],
-            ["@antora/logger", "npm:3.0.0-alpha.9"],
+            ["@antora/page-composer", "npm:3.0.0-alpha.10"],
+            ["@antora/logger", "npm:3.0.0-alpha.10"],
             ["handlebars", "npm:4.7.5"],
             ["require-from-string", "npm:2.0.2"]
           ],
@@ -331,14 +331,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         }]
       ]],
       ["@antora/playbook-builder", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-playbook-builder-npm-3.0.0-alpha.9-e8a1037536-7e74daf632.zip/node_modules/@antora/playbook-builder/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-playbook-builder-npm-3.0.0-alpha.10-d20aef1b86-1fc94cb3fa.zip/node_modules/@antora/playbook-builder/",
           "packageDependencies": [
-            ["@antora/playbook-builder", "npm:3.0.0-alpha.9"],
-            ["@antora/logger", "npm:3.0.0-alpha.9"],
+            ["@antora/playbook-builder", "npm:3.0.0-alpha.10"],
+            ["@antora/logger", "npm:3.0.0-alpha.10"],
             ["@iarna/toml", "npm:2.2.3"],
             ["camelcase-keys", "npm:6.2.2"],
-            ["convict", "npm:6.1.0"],
+            ["convict", "npm:6.2.1"],
             ["js-yaml", "npm:4.1.0"],
             ["json5", "npm:2.2.0"]
           ],
@@ -346,53 +346,53 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         }]
       ]],
       ["@antora/redirect-producer", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-redirect-producer-npm-3.0.0-alpha.9-06dbbbbeda-11906505e3.zip/node_modules/@antora/redirect-producer/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-redirect-producer-npm-3.0.0-alpha.10-00bbf250d0-a728b859c2.zip/node_modules/@antora/redirect-producer/",
           "packageDependencies": [
-            ["@antora/redirect-producer", "npm:3.0.0-alpha.9"],
-            ["@antora/asciidoc-loader", "npm:3.0.0-alpha.9"],
+            ["@antora/redirect-producer", "npm:3.0.0-alpha.10"],
+            ["@antora/asciidoc-loader", "npm:3.0.0-alpha.10"],
             ["vinyl", "npm:2.2.1"]
           ],
           "linkType": "HARD",
         }]
       ]],
       ["@antora/site-generator-default", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-site-generator-default-npm-3.0.0-alpha.9-30140d24cc-b0ee477650.zip/node_modules/@antora/site-generator-default/",
-          "packageDependencies": [
-            ["@antora/site-generator-default", "npm:3.0.0-alpha.9"],
-            ["@antora/asciidoc-loader", "npm:3.0.0-alpha.9"],
-            ["@antora/content-aggregator", "npm:3.0.0-alpha.9"],
-            ["@antora/content-classifier", "npm:3.0.0-alpha.9"],
-            ["@antora/document-converter", "npm:3.0.0-alpha.9"],
-            ["@antora/navigation-builder", "npm:3.0.0-alpha.9"],
-            ["@antora/page-composer", "npm:3.0.0-alpha.9"],
-            ["@antora/playbook-builder", "npm:3.0.0-alpha.9"],
-            ["@antora/redirect-producer", "npm:3.0.0-alpha.9"],
-            ["@antora/site-mapper", "npm:3.0.0-alpha.9"],
-            ["@antora/site-publisher", "npm:3.0.0-alpha.9"],
-            ["@antora/ui-loader", "npm:3.0.0-alpha.9"],
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-site-generator-default-npm-3.0.0-alpha.10-411bc97dd9-7f7d45fc42.zip/node_modules/@antora/site-generator-default/",
+          "packageDependencies": [
+            ["@antora/site-generator-default", "npm:3.0.0-alpha.10"],
+            ["@antora/asciidoc-loader", "npm:3.0.0-alpha.10"],
+            ["@antora/content-aggregator", "npm:3.0.0-alpha.10"],
+            ["@antora/content-classifier", "npm:3.0.0-alpha.10"],
+            ["@antora/document-converter", "npm:3.0.0-alpha.10"],
+            ["@antora/navigation-builder", "npm:3.0.0-alpha.10"],
+            ["@antora/page-composer", "npm:3.0.0-alpha.10"],
+            ["@antora/playbook-builder", "npm:3.0.0-alpha.10"],
+            ["@antora/redirect-producer", "npm:3.0.0-alpha.10"],
+            ["@antora/site-mapper", "npm:3.0.0-alpha.10"],
+            ["@antora/site-publisher", "npm:3.0.0-alpha.10"],
+            ["@antora/ui-loader", "npm:3.0.0-alpha.10"],
             ["@antora/user-require-helper", "npm:2.0.0"]
           ],
           "linkType": "HARD",
         }]
       ]],
       ["@antora/site-mapper", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-site-mapper-npm-3.0.0-alpha.9-6edc224373-7d15e9c5c4.zip/node_modules/@antora/site-mapper/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-site-mapper-npm-3.0.0-alpha.10-bb7e424c4a-e57e5cdc20.zip/node_modules/@antora/site-mapper/",
           "packageDependencies": [
-            ["@antora/site-mapper", "npm:3.0.0-alpha.9"],
-            ["@antora/content-classifier", "npm:3.0.0-alpha.9"],
+            ["@antora/site-mapper", "npm:3.0.0-alpha.10"],
+            ["@antora/content-classifier", "npm:3.0.0-alpha.10"],
             ["vinyl", "npm:2.2.1"]
           ],
           "linkType": "HARD",
         }]
       ]],
       ["@antora/site-publisher", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-site-publisher-npm-3.0.0-alpha.9-58e41a2f06-71d10e41e5.zip/node_modules/@antora/site-publisher/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-site-publisher-npm-3.0.0-alpha.10-46135c3a79-c728160bc2.zip/node_modules/@antora/site-publisher/",
           "packageDependencies": [
-            ["@antora/site-publisher", "npm:3.0.0-alpha.9"],
+            ["@antora/site-publisher", "npm:3.0.0-alpha.10"],
             ["@antora/expand-path-helper", "npm:2.0.0"],
             ["@antora/user-require-helper", "npm:2.0.0"],
             ["gulp-vinyl-zip", "npm:2.5.0"],
@@ -403,10 +403,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         }]
       ]],
       ["@antora/ui-loader", [
-        ["npm:3.0.0-alpha.9", {
-          "packageLocation": "./.yarn/cache/@antora-ui-loader-npm-3.0.0-alpha.9-953f68744d-a09c08a867.zip/node_modules/@antora/ui-loader/",
+        ["npm:3.0.0-alpha.10", {
+          "packageLocation": "./.yarn/cache/@antora-ui-loader-npm-3.0.0-alpha.10-924fef82de-b0d1d05758.zip/node_modules/@antora/ui-loader/",
           "packageDependencies": [
-            ["@antora/ui-loader", "npm:3.0.0-alpha.9"],
+            ["@antora/ui-loader", "npm:3.0.0-alpha.10"],
             ["@antora/expand-path-helper", "npm:2.0.0"],
             ["cache-directory", "npm:2.0.0"],
             ["camelcase-keys", "npm:6.2.2"],
@@ -4425,8 +4425,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
           "packageLocation": "./",
           "packageDependencies": [
             ["apache-camel-website", "workspace:."],
-            ["@antora/cli", "npm:3.0.0-alpha.9"],
-            ["@antora/site-generator-default", "npm:3.0.0-alpha.9"],
+            ["@antora/cli", "npm:3.0.0-alpha.10"],
+            ["@antora/site-generator-default", "npm:3.0.0-alpha.10"],
             ["@deadlinks/cargo-deadlinks", "github-release:deadlinks/cargo-deadlinks:0.8.0/deadlinks-linux"],
             ["@djencks/asciidoctor-antora-indexer", "npm:0.1.0-alpha.1"],
             ["@djencks/asciidoctor-jsonpath", "npm:0.1.0-alpha.1"],
@@ -6716,10 +6716,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
           ],
           "linkType": "HARD",
         }],
-        ["npm:1.4.0", {
-          "packageLocation": "./.yarn/cache/colorette-npm-1.4.0-7e94b44dc3-7ef8e1ca16.zip/node_modules/colorette/",
+        ["npm:2.0.16", {
+          "packageLocation": "./.yarn/cache/colorette-npm-2.0.16-7b996485d7-082063746a.zip/node_modules/colorette/",
           "packageDependencies": [
-            ["colorette", "npm:1.4.0"]
+            ["colorette", "npm:2.0.16"]
           ],
           "linkType": "HARD",
         }]
@@ -7068,12 +7068,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         }]
       ]],
       ["convict", [
-        ["npm:6.1.0", {
-          "packageLocation": "./.yarn/cache/convict-npm-6.1.0-3c39748d83-dce4843743.zip/node_modules/convict/",
+        ["npm:6.2.1", {
+          "packageLocation": "./.yarn/cache/convict-npm-6.2.1-29af5bd4ae-9851b4d548.zip/node_modules/convict/",
           "packageDependencies": [
-            ["convict", "npm:6.1.0"],
+            ["convict", "npm:6.2.1"],
             ["lodash.clonedeep", "npm:4.5.0"],
-            ["yargs-parser", "npm:18.1.3"]
+            ["yargs-parser", "npm:20.2.9"]
           ],
           "linkType": "HARD",
         }]
@@ -7661,6 +7661,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
             ["dateformat", "npm:4.5.1"]
           ],
           "linkType": "HARD",
+        }],
+        ["npm:4.6.3", {
+          "packageLocation": "./.yarn/cache/dateformat-npm-4.6.3-aa1a4cb7f9-fbef602ec5.zip/node_modules/dateformat/",
+          "packageDependencies": [
+            ["dateformat", "npm:4.6.3"]
+          ],
+          "linkType": "HARD",
         }]
       ]],
       ["debug", [
@@ -8480,6 +8487,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
             ["stream-shift", "npm:1.0.1"]
           ],
           "linkType": "HARD",
+        }],
+        ["npm:4.1.2", {
+          "packageLocation": "./.yarn/cache/duplexify-npm-4.1.2-7f2140a477-2736c1d2ac.zip/node_modules/duplexify/",
+          "packageDependencies": [
+            ["duplexify", "npm:4.1.2"],
+            ["end-of-stream", "npm:1.4.4"],
+            ["inherits", "npm:2.0.4"],
+            ["readable-stream", "npm:3.6.0"],
+            ["stream-shift", "npm:1.0.1"]
+          ],
+          "linkType": "HARD",
         }]
       ]],
       ["each-props", [
@@ -15459,10 +15477,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
           ],
           "linkType": "SOFT",
         }],
-        ["virtual:8208cc5339f9a0ffc27ea8fa80bc139486e6d7181d99b6c1493d25383a9773fb79da66cac253dbfb96f458350734cca67ab8dc91536898f447ca1c73f68728bf#npm:4.0.0", {
-          "packageLocation": "./.yarn/$$virtual/multi-progress-virtual-e67ba0e1ec/0/cache/multi-progress-npm-4.0.0-e647cd6e59-18d1c57620.zip/node_modules/multi-progress/",
+        ["virtual:9c905fd235859e703ad13a3f9b73bbd01ee7a643683ab75c410d983319c419c0c83588c50c79bf397a09214a677521d6748520f6c8e8e985b28aa2dbd2c38ed4#npm:4.0.0", {
+          "packageLocation": "./.yarn/$$virtual/multi-progress-virtual-f7891d6313/0/cache/multi-progress-npm-4.0.0-e647cd6e59-18d1c57620.zip/node_modules/multi-progress/",
           "packageDependencies": [
-            ["multi-progress", "virtual:8208cc5339f9a0ffc27ea8fa80bc139486e6d7181d99b6c1493d25383a9773fb79da66cac253dbfb96f458350734cca67ab8dc91536898f447ca1c73f68728bf#npm:4.0.0"],
+            ["multi-progress", "virtual:9c905fd235859e703ad13a3f9b73bbd01ee7a643683ab75c410d983319c419c0c83588c50c79bf397a09214a677521d6748520f6c8e8e985b28aa2dbd2c38ed4#npm:4.0.0"],
             ["@types/progress", null],
             ["progress", "npm:2.0.3"]
           ],
@@ -17354,6 +17372,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
           "linkType": "HARD",
         }]
       ]],
+      ["pino-abstract-transport", [
+        ["npm:0.4.0", {
+          "packageLocation": "./.yarn/cache/pino-abstract-transport-npm-0.4.0-0d0e316a28-53d5bd35eb.zip/node_modules/pino-abstract-transport/",
+          "packageDependencies": [
+            ["pino-abstract-transport", "npm:0.4.0"],
+            ["duplexify", "npm:4.1.2"],
+            ["split2", "npm:3.2.2"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
       ["pino-pretty", [
         ["npm:5.1.3", {
           "packageLocation": "./.yarn/cache/pino-pretty-npm-5.1.3-488a9c8f4f-838eeb2104.zip/node_modules/pino-pretty/",
@@ -17374,21 +17403,21 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
           ],
           "linkType": "HARD",
         }],
-        ["npm:6.0.0", {
-          "packageLocation": "./.yarn/cache/pino-pretty-npm-6.0.0-97e1f1f254-865a5ee324.zip/node_modules/pino-pretty/",
+        ["npm:7.1.0", {
+          "packageLocation": "./.yarn/cache/pino-pretty-npm-7.1.0-6217fb3b0b-dc717aa434.zip/node_modules/pino-pretty/",
           "packageDependencies": [
-            ["pino-pretty", "npm:6.0.0"],
-            ["@hapi/bourne", "npm:2.0.0"],
+            ["pino-pretty", "npm:7.1.0"],
             ["args", "npm:5.0.1"],
-            ["colorette", "npm:1.4.0"],
-            ["dateformat", "npm:4.5.1"],
+            ["colorette", "npm:2.0.16"],
+            ["dateformat", "npm:4.6.3"],
             ["fast-safe-stringify", "npm:2.0.7"],
-            ["jmespath", "npm:0.15.0"],
             ["joycon", "npm:3.0.1"],
+            ["pino-abstract-transport", "npm:0.4.0"],
             ["pump", "npm:3.0.0"],
             ["readable-stream", "npm:3.6.0"],
             ["rfdc", "npm:1.3.0"],
-            ["split2", "npm:3.2.2"],
+            ["secure-json-parse", "npm:2.4.0"],
+            ["sonic-boom", "npm:2.3.0"],
             ["strip-json-comments", "npm:3.1.1"]
           ],
           "linkType": "HARD",
@@ -19589,6 +19618,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
           "linkType": "HARD",
         }]
       ]],
+      ["secure-json-parse", [
+        ["npm:2.4.0", {
+          "packageLocation": "./.yarn/cache/secure-json-parse-npm-2.4.0-161f104c50-bbf325b52d.zip/node_modules/secure-json-parse/",
+          "packageDependencies": [
+            ["secure-json-parse", "npm:2.4.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
       ["seek-bzip", [
         ["npm:1.0.5", {
           "packageLocation": "./.yarn/cache/seek-bzip-npm-1.0.5-8c319c8ade-e7cd15e6fa.zip/node_modules/seek-bzip/",
@@ -20050,6 +20088,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
             ["atomic-sleep", "npm:1.0.0"]
           ],
           "linkType": "HARD",
+        }],
+        ["npm:2.3.0", {
+          "packageLocation": "./.yarn/cache/sonic-boom-npm-2.3.0-6a1292957e-97b5b795f7.zip/node_modules/sonic-boom/",
+          "packageDependencies": [
+            ["sonic-boom", "npm:2.3.0"],
+            ["atomic-sleep", "npm:1.0.0"]
+          ],
+          "linkType": "HARD",
         }]
       ]],
       ["sort-keys", [
@@ -23127,6 +23173,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
           ],
           "linkType": "HARD",
         }],
+        ["npm:20.2.9", {
+          "packageLocation": "./.yarn/cache/yargs-parser-npm-20.2.9-a1d19e598d-3c58da6f61.zip/node_modules/yargs-parser/",
+          "packageDependencies": [
+            ["yargs-parser", "npm:20.2.9"]
+          ],
+          "linkType": "HARD",
+        }],
         ["npm:5.0.0", {
           "packageLocation": "./.yarn/cache/yargs-parser-npm-5.0.0-7a9da3b757-504bd83dcc.zip/node_modules/yargs-parser/",
           "packageDependencies": [
diff --git a/.yarn/build-state.yml b/.yarn/build-state.yml
index 02cee3e..9127fd9 100644
--- a/.yarn/build-state.yml
+++ b/.yarn/build-state.yml
@@ -3,28 +3,32 @@
 
 # core-js@npm:3.6.5
 "5941340066f775d2694fe1955bef9a66af767bfade2eca6ca442d82a68a5c999e76165c38ab532c125bf81c66c151d83d8e96f86a3f7af2d755000b3e2d48171":
-  4cc55988f051f8af50ef6da8e2e18df769c858d33855c5917e66ec480d3064e698233fed146ea7a7d1c90dc6f729124cd35be3913ce3153db461b28bfbfa7211
+  42e737576ab44a0ced1fc35902f21fc667b9405af69ed091b72daec7b125140cf5c43ef18bd7e05090e0490ceaa1ec9a0521a52954ab4d3f275d9237a242bec7
+
+# fsevents@patch:fsevents@npm%3A1.2.11#builtin<compat/fsevents>::version=1.2.11&hash=11e9ea
+"4116a447fc9a28deb8f08886cbcabd2112d7dbc9813b97a374239ad1e0a1d88c581f13cdcf89ad23f2fa728aaf79fa5e18e2587c43f445436f0c6bc6774b90f8":
+  d0596bddf75e135c594faabac63580be20fd6bb3d135b2695c506f0247a7d8562fe19002823466aab39776daca8d83b07c1c46ee994e4bac46957bce69348acf
 
 # gifsicle@npm:4.0.1
 "47efba2323306056b5eb4428fb87bbe745eb0587d7a5c64c188c6bc7d13bb2ab6ee9099b11957e60c6dacefbfc0d074aa862e206c771bef851d72b01b35da575":
-  121bf234cbab54f5294c5a63758dff9e183cb99df306fdf9a53379242d4904a0a89ff170876a78d1f8417573a56332f7fb9d06df9cf0cd16aa9eccd1cfdb3b0d
+  59c800eac922c0f10a5cd52b8928f99cd94701297862ea7549d6e725a05a78a0544c63c9575a9d2a08c72992f4e2fdf0e7e15def57031a8d1090b981efa0b36f
 
 # hugo-extended@npm:0.84.3
 "127c9ef3041ac7625fdf9db1b2a808d2d956765fe5b30ae41642abb3e202d1a40851800fd5163a03f4fe997d9b2a0885d90b242c8ff3efbd14f83906fdd43d3a":
-  5ae57f9cdf5b9b0fa4e82496c0c1d9387fbb531f9455505abda91381f76c97b5166624d8478effa4e2f8ec5dfe5c1ff8a9fb9c3cedae37c2c66563f14102dead
+  1a5f1b8c499e6cf01efdfa2611aaff1ffc4f2e576e0e54a29d7fe8cb32e8dd8533c119a62cd555c7dba96407637423cd78d796883cae7e645a16cc5331990539
 
 # jpegtran-bin@npm:4.0.0
 "c1e70a98c194359902d396160440b8d6aafc026faec0b483b98d24dac1a2756f6ebdb0d5b12c609339320ad38e22580c8c8b6e70edfc9c5019a30d10094fd1fb":
-  8ca54797eaacccc9f5cdcd4d5672b3b9666af0dd423f6afc10a4d4733e60ea1628a03e2c360df6f0fcdc0b81d1b3184d95603b4b99e53572a3a761a66941a98b
+  2b9cad3bcf350000b3937166a1327a0f27b046b3156d3a2920fb76a125bac73eaf0cf5db976fdd8ada8d163af507a325a437e2d73c7c7f5ff7e63d414155f030
 
 # netlify-cli@npm:2.69.11
 "1bef96be32000472bc703fad626b4a6fa1a569c541b606746eab97f205f992a1d2729de82f1bbe67078d23a08ea5cb3fa70a36b171b75e37e9595e42812a57db":
-  e149252faab812e369836234362fcd873139fa9fefdcdd2e85a630d578da8c1c47919da9426ad3f219f7958dd0c317bac16634b078697aa11b54f3b25a689edd
+  f5b23d9f14e4823453a4910c52e93f960a9b563a75da015efaf6946f519ec601a7065a2bf412646d4a9e7435bc1443c24345394269145b685e182fc24bba07ff
 
 # optipng-bin@npm:6.0.0
 "3aa5f04a3e5704a556a7f98fdddf5ad260b55ca04a2b8cd3d448861d0bd4778bbc092bf0bd558eba02998faceda73052710fa3124f1940098d2ee8bd93474567":
-  74251e0dc69e93f2ecba479b2dc576e54ead9493e57be7430d2cde95cec1086e740c50d84b8c000efe1848d057b91204f4860fd2dae09ffc3c9ac2176e02e645
+  7b03145ad12b15368f44ffa5cf748dba12cdf1193a314d4d3bbc18d91c4d113c439ce119f2c8697e22ca82d7ff97735992de3e94c7346110c4365c62980cd6f2
 
 # yarn@npm:1.22.10
 "b1a926d20f1e430bdfcc8706073d2adcc314a8e8b82f3cc446658d95e2366a290d3a17ecf7b92aaae3887cff0340a9f8410a39dba0fc7e68b77c5c2b9d70de4d":
-  67f0f56df5573cf510f8d47d2e957ad0e2c74dcf963935adbcffd1bf5cd8ba08bac8d8ff1802b35588d8ff3398b61da129ceb1ae3b903d8422b9d2589df9239c
+  b7740d1b697a395ccc505b1dc9471d1e4cdf09e7854919e64dd1d5507b55822fe9d8ccd5b13adbb6de2294f494650924bd522ce4a3f5d03da555ef20711bf27a
diff --git a/.yarn/cache/@antora-asciidoc-loader-npm-3.0.0-alpha.9-39bd100709-de20a2db05.zip b/.yarn/cache/@antora-asciidoc-loader-npm-3.0.0-alpha.10-1bfce6ae54-775199dd0f.zip
similarity index 60%
rename from .yarn/cache/@antora-asciidoc-loader-npm-3.0.0-alpha.9-39bd100709-de20a2db05.zip
rename to .yarn/cache/@antora-asciidoc-loader-npm-3.0.0-alpha.10-1bfce6ae54-775199dd0f.zip
index 0ff1cf2..3b55dab 100644
Binary files a/.yarn/cache/@antora-asciidoc-loader-npm-3.0.0-alpha.9-39bd100709-de20a2db05.zip and b/.yarn/cache/@antora-asciidoc-loader-npm-3.0.0-alpha.10-1bfce6ae54-775199dd0f.zip differ
diff --git a/.yarn/cache/@antora-cli-npm-3.0.0-alpha.9-eb1976c89e-20efdb6945.zip b/.yarn/cache/@antora-cli-npm-3.0.0-alpha.10-2658c19379-214d1b1cbc.zip
similarity index 61%
rename from .yarn/cache/@antora-cli-npm-3.0.0-alpha.9-eb1976c89e-20efdb6945.zip
rename to .yarn/cache/@antora-cli-npm-3.0.0-alpha.10-2658c19379-214d1b1cbc.zip
index a2f294c..1b5e890 100644
Binary files a/.yarn/cache/@antora-cli-npm-3.0.0-alpha.9-eb1976c89e-20efdb6945.zip and b/.yarn/cache/@antora-cli-npm-3.0.0-alpha.10-2658c19379-214d1b1cbc.zip differ
diff --git a/.yarn/cache/@antora-content-aggregator-npm-3.0.0-alpha.9-8208cc5339-df0c07c16e.zip b/.yarn/cache/@antora-content-aggregator-npm-3.0.0-alpha.10-9c905fd235-54311f8f48.zip
similarity index 95%
rename from .yarn/cache/@antora-content-aggregator-npm-3.0.0-alpha.9-8208cc5339-df0c07c16e.zip
rename to .yarn/cache/@antora-content-aggregator-npm-3.0.0-alpha.10-9c905fd235-54311f8f48.zip
index d204cf9..2542bf7 100644
Binary files a/.yarn/cache/@antora-content-aggregator-npm-3.0.0-alpha.9-8208cc5339-df0c07c16e.zip and b/.yarn/cache/@antora-content-aggregator-npm-3.0.0-alpha.10-9c905fd235-54311f8f48.zip differ
diff --git a/.yarn/cache/@antora-content-classifier-npm-3.0.0-alpha.9-9693505f14-f7c0f636c1.zip b/.yarn/cache/@antora-content-classifier-npm-3.0.0-alpha.10-a7aae684d0-1bb1e097fb.zip
similarity index 79%
rename from .yarn/cache/@antora-content-classifier-npm-3.0.0-alpha.9-9693505f14-f7c0f636c1.zip
rename to .yarn/cache/@antora-content-classifier-npm-3.0.0-alpha.10-a7aae684d0-1bb1e097fb.zip
index 05cb6e8..3289765 100644
Binary files a/.yarn/cache/@antora-content-classifier-npm-3.0.0-alpha.9-9693505f14-f7c0f636c1.zip and b/.yarn/cache/@antora-content-classifier-npm-3.0.0-alpha.10-a7aae684d0-1bb1e097fb.zip differ
diff --git a/.yarn/cache/@antora-document-converter-npm-3.0.0-alpha.9-d095751a33-f3d24466e4.zip b/.yarn/cache/@antora-document-converter-npm-3.0.0-alpha.10-23934f2103-59762a59fd.zip
similarity index 88%
rename from .yarn/cache/@antora-document-converter-npm-3.0.0-alpha.9-d095751a33-f3d24466e4.zip
rename to .yarn/cache/@antora-document-converter-npm-3.0.0-alpha.10-23934f2103-59762a59fd.zip
index 3038dda..7092cd6 100644
Binary files a/.yarn/cache/@antora-document-converter-npm-3.0.0-alpha.9-d095751a33-f3d24466e4.zip and b/.yarn/cache/@antora-document-converter-npm-3.0.0-alpha.10-23934f2103-59762a59fd.zip differ
diff --git a/.yarn/cache/@antora-logger-npm-3.0.0-alpha.9-9aa78cf144-f14b81190a.zip b/.yarn/cache/@antora-logger-npm-3.0.0-alpha.10-86d5d08443-3541654c19.zip
similarity index 56%
rename from .yarn/cache/@antora-logger-npm-3.0.0-alpha.9-9aa78cf144-f14b81190a.zip
rename to .yarn/cache/@antora-logger-npm-3.0.0-alpha.10-86d5d08443-3541654c19.zip
index 9603a8a..ccaf9ae 100644
Binary files a/.yarn/cache/@antora-logger-npm-3.0.0-alpha.9-9aa78cf144-f14b81190a.zip and b/.yarn/cache/@antora-logger-npm-3.0.0-alpha.10-86d5d08443-3541654c19.zip differ
diff --git a/.yarn/cache/@antora-navigation-builder-npm-3.0.0-alpha.9-b1ce47f034-6650ee0f07.zip b/.yarn/cache/@antora-navigation-builder-npm-3.0.0-alpha.10-bcb88528c5-53ae29fb66.zip
similarity index 57%
rename from .yarn/cache/@antora-navigation-builder-npm-3.0.0-alpha.9-b1ce47f034-6650ee0f07.zip
rename to .yarn/cache/@antora-navigation-builder-npm-3.0.0-alpha.10-bcb88528c5-53ae29fb66.zip
index fb98da8..cb9bbca 100644
Binary files a/.yarn/cache/@antora-navigation-builder-npm-3.0.0-alpha.9-b1ce47f034-6650ee0f07.zip and b/.yarn/cache/@antora-navigation-builder-npm-3.0.0-alpha.10-bcb88528c5-53ae29fb66.zip differ
diff --git a/.yarn/cache/@antora-page-composer-npm-3.0.0-alpha.9-28dc4141c7-b3b367e7c8.zip b/.yarn/cache/@antora-page-composer-npm-3.0.0-alpha.10-948fad507e-4a44b5fe5d.zip
similarity index 94%
rename from .yarn/cache/@antora-page-composer-npm-3.0.0-alpha.9-28dc4141c7-b3b367e7c8.zip
rename to .yarn/cache/@antora-page-composer-npm-3.0.0-alpha.10-948fad507e-4a44b5fe5d.zip
index f14c6f2..964211f 100644
Binary files a/.yarn/cache/@antora-page-composer-npm-3.0.0-alpha.9-28dc4141c7-b3b367e7c8.zip and b/.yarn/cache/@antora-page-composer-npm-3.0.0-alpha.10-948fad507e-4a44b5fe5d.zip differ
diff --git a/.yarn/cache/@antora-playbook-builder-npm-3.0.0-alpha.9-e8a1037536-7e74daf632.zip b/.yarn/cache/@antora-playbook-builder-npm-3.0.0-alpha.10-d20aef1b86-1fc94cb3fa.zip
similarity index 70%
rename from .yarn/cache/@antora-playbook-builder-npm-3.0.0-alpha.9-e8a1037536-7e74daf632.zip
rename to .yarn/cache/@antora-playbook-builder-npm-3.0.0-alpha.10-d20aef1b86-1fc94cb3fa.zip
index b02a7a9..6fa529f 100644
Binary files a/.yarn/cache/@antora-playbook-builder-npm-3.0.0-alpha.9-e8a1037536-7e74daf632.zip and b/.yarn/cache/@antora-playbook-builder-npm-3.0.0-alpha.10-d20aef1b86-1fc94cb3fa.zip differ
diff --git a/.yarn/cache/@antora-redirect-producer-npm-3.0.0-alpha.9-06dbbbbeda-11906505e3.zip b/.yarn/cache/@antora-redirect-producer-npm-3.0.0-alpha.10-00bbf250d0-a728b859c2.zip
similarity index 57%
rename from .yarn/cache/@antora-redirect-producer-npm-3.0.0-alpha.9-06dbbbbeda-11906505e3.zip
rename to .yarn/cache/@antora-redirect-producer-npm-3.0.0-alpha.10-00bbf250d0-a728b859c2.zip
index 62c7a6a..05fc83a 100644
Binary files a/.yarn/cache/@antora-redirect-producer-npm-3.0.0-alpha.9-06dbbbbeda-11906505e3.zip and b/.yarn/cache/@antora-redirect-producer-npm-3.0.0-alpha.10-00bbf250d0-a728b859c2.zip differ
diff --git a/.yarn/cache/@antora-site-generator-default-npm-3.0.0-alpha.9-30140d24cc-b0ee477650.zip b/.yarn/cache/@antora-site-generator-default-npm-3.0.0-alpha.10-411bc97dd9-7f7d45fc42.zip
similarity index 78%
rename from .yarn/cache/@antora-site-generator-default-npm-3.0.0-alpha.9-30140d24cc-b0ee477650.zip
rename to .yarn/cache/@antora-site-generator-default-npm-3.0.0-alpha.10-411bc97dd9-7f7d45fc42.zip
index 37cc37f..0ea2c6d 100644
Binary files a/.yarn/cache/@antora-site-generator-default-npm-3.0.0-alpha.9-30140d24cc-b0ee477650.zip and b/.yarn/cache/@antora-site-generator-default-npm-3.0.0-alpha.10-411bc97dd9-7f7d45fc42.zip differ
diff --git a/.yarn/cache/@antora-site-mapper-npm-3.0.0-alpha.9-6edc224373-7d15e9c5c4.zip b/.yarn/cache/@antora-site-mapper-npm-3.0.0-alpha.10-bb7e424c4a-e57e5cdc20.zip
similarity index 89%
rename from .yarn/cache/@antora-site-mapper-npm-3.0.0-alpha.9-6edc224373-7d15e9c5c4.zip
rename to .yarn/cache/@antora-site-mapper-npm-3.0.0-alpha.10-bb7e424c4a-e57e5cdc20.zip
index 6a9b6f6..e56b939 100644
Binary files a/.yarn/cache/@antora-site-mapper-npm-3.0.0-alpha.9-6edc224373-7d15e9c5c4.zip and b/.yarn/cache/@antora-site-mapper-npm-3.0.0-alpha.10-bb7e424c4a-e57e5cdc20.zip differ
diff --git a/.yarn/cache/@antora-site-publisher-npm-3.0.0-alpha.9-58e41a2f06-71d10e41e5.zip b/.yarn/cache/@antora-site-publisher-npm-3.0.0-alpha.10-46135c3a79-c728160bc2.zip
similarity index 75%
rename from .yarn/cache/@antora-site-publisher-npm-3.0.0-alpha.9-58e41a2f06-71d10e41e5.zip
rename to .yarn/cache/@antora-site-publisher-npm-3.0.0-alpha.10-46135c3a79-c728160bc2.zip
index 9abab4f..733ecac 100644
Binary files a/.yarn/cache/@antora-site-publisher-npm-3.0.0-alpha.9-58e41a2f06-71d10e41e5.zip and b/.yarn/cache/@antora-site-publisher-npm-3.0.0-alpha.10-46135c3a79-c728160bc2.zip differ
diff --git a/.yarn/cache/@antora-ui-loader-npm-3.0.0-alpha.9-953f68744d-a09c08a867.zip b/.yarn/cache/@antora-ui-loader-npm-3.0.0-alpha.10-924fef82de-b0d1d05758.zip
similarity index 66%
rename from .yarn/cache/@antora-ui-loader-npm-3.0.0-alpha.9-953f68744d-a09c08a867.zip
rename to .yarn/cache/@antora-ui-loader-npm-3.0.0-alpha.10-924fef82de-b0d1d05758.zip
index 8edf45b..2b9aab7 100644
Binary files a/.yarn/cache/@antora-ui-loader-npm-3.0.0-alpha.9-953f68744d-a09c08a867.zip and b/.yarn/cache/@antora-ui-loader-npm-3.0.0-alpha.10-924fef82de-b0d1d05758.zip differ
diff --git a/.yarn/cache/colorette-npm-1.4.0-7e94b44dc3-7ef8e1ca16.zip b/.yarn/cache/colorette-npm-1.4.0-7e94b44dc3-7ef8e1ca16.zip
deleted file mode 100644
index 02fa135..0000000
Binary files a/.yarn/cache/colorette-npm-1.4.0-7e94b44dc3-7ef8e1ca16.zip and /dev/null differ
diff --git a/.yarn/cache/colorette-npm-2.0.16-7b996485d7-082063746a.zip b/.yarn/cache/colorette-npm-2.0.16-7b996485d7-082063746a.zip
new file mode 100644
index 0000000..b3ce74c
Binary files /dev/null and b/.yarn/cache/colorette-npm-2.0.16-7b996485d7-082063746a.zip differ
diff --git a/.yarn/cache/convict-npm-6.1.0-3c39748d83-dce4843743.zip b/.yarn/cache/convict-npm-6.1.0-3c39748d83-dce4843743.zip
deleted file mode 100644
index 37d04c6..0000000
Binary files a/.yarn/cache/convict-npm-6.1.0-3c39748d83-dce4843743.zip and /dev/null differ
diff --git a/.yarn/cache/convict-npm-6.2.1-29af5bd4ae-9851b4d548.zip b/.yarn/cache/convict-npm-6.2.1-29af5bd4ae-9851b4d548.zip
new file mode 100644
index 0000000..915971a
Binary files /dev/null and b/.yarn/cache/convict-npm-6.2.1-29af5bd4ae-9851b4d548.zip differ
diff --git a/.yarn/cache/dateformat-npm-4.6.3-aa1a4cb7f9-fbef602ec5.zip b/.yarn/cache/dateformat-npm-4.6.3-aa1a4cb7f9-fbef602ec5.zip
new file mode 100644
index 0000000..c7d0d51
Binary files /dev/null and b/.yarn/cache/dateformat-npm-4.6.3-aa1a4cb7f9-fbef602ec5.zip differ
diff --git a/.yarn/cache/duplexify-npm-4.1.2-7f2140a477-2736c1d2ac.zip b/.yarn/cache/duplexify-npm-4.1.2-7f2140a477-2736c1d2ac.zip
new file mode 100644
index 0000000..f981430
Binary files /dev/null and b/.yarn/cache/duplexify-npm-4.1.2-7f2140a477-2736c1d2ac.zip differ
diff --git a/.yarn/cache/pino-abstract-transport-npm-0.4.0-0d0e316a28-53d5bd35eb.zip b/.yarn/cache/pino-abstract-transport-npm-0.4.0-0d0e316a28-53d5bd35eb.zip
new file mode 100644
index 0000000..c32ff8c
Binary files /dev/null and b/.yarn/cache/pino-abstract-transport-npm-0.4.0-0d0e316a28-53d5bd35eb.zip differ
diff --git a/.yarn/cache/pino-pretty-npm-6.0.0-97e1f1f254-865a5ee324.zip b/.yarn/cache/pino-pretty-npm-7.1.0-6217fb3b0b-dc717aa434.zip
similarity index 85%
rename from .yarn/cache/pino-pretty-npm-6.0.0-97e1f1f254-865a5ee324.zip
rename to .yarn/cache/pino-pretty-npm-7.1.0-6217fb3b0b-dc717aa434.zip
index 75b350a..1afc8a1 100644
Binary files a/.yarn/cache/pino-pretty-npm-6.0.0-97e1f1f254-865a5ee324.zip and b/.yarn/cache/pino-pretty-npm-7.1.0-6217fb3b0b-dc717aa434.zip differ
diff --git a/.yarn/cache/secure-json-parse-npm-2.4.0-161f104c50-bbf325b52d.zip b/.yarn/cache/secure-json-parse-npm-2.4.0-161f104c50-bbf325b52d.zip
new file mode 100644
index 0000000..b67c3c1
Binary files /dev/null and b/.yarn/cache/secure-json-parse-npm-2.4.0-161f104c50-bbf325b52d.zip differ
diff --git a/.yarn/cache/sonic-boom-npm-2.3.0-6a1292957e-97b5b795f7.zip b/.yarn/cache/sonic-boom-npm-2.3.0-6a1292957e-97b5b795f7.zip
new file mode 100644
index 0000000..a4a889299
Binary files /dev/null and b/.yarn/cache/sonic-boom-npm-2.3.0-6a1292957e-97b5b795f7.zip differ
diff --git a/.yarn/cache/yargs-parser-npm-20.2.9-a1d19e598d-3c58da6f61.zip b/.yarn/cache/yargs-parser-npm-20.2.9-a1d19e598d-3c58da6f61.zip
new file mode 100644
index 0000000..cd26415
Binary files /dev/null and b/.yarn/cache/yargs-parser-npm-20.2.9-a1d19e598d-3c58da6f61.zip differ
diff --git a/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/.target.mk b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/.target.mk
new file mode 100644
index 0000000..10f3242
--- /dev/null
+++ b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/.target.mk
@@ -0,0 +1,55 @@
+# This file is generated by gyp; do not edit.
+
+TOOLSET := target
+TARGET := 
+### Rules for final target.
+LDFLAGS_Debug := \
+	-undefined dynamic_lookup \
+	-Wl,-no_pie \
+	-Wl,-search_paths_first \
+	-mmacosx-version-min=10.13 \
+	-arch x86_64 \
+	-L$(builddir) \
+	-stdlib=libc++
+
+LIBTOOLFLAGS_Debug := \
+	-undefined dynamic_lookup \
+	-Wl,-no_pie \
+	-Wl,-search_paths_first
+
+LDFLAGS_Release := \
+	-undefined dynamic_lookup \
+	-Wl,-no_pie \
+	-Wl,-search_paths_first \
+	-mmacosx-version-min=10.13 \
+	-arch x86_64 \
+	-L$(builddir) \
+	-stdlib=libc++
+
+LIBTOOLFLAGS_Release := \
+	-undefined dynamic_lookup \
+	-Wl,-no_pie \
+	-Wl,-search_paths_first
+
+LIBS :=
+
+$(builddir)/.node: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE))
+$(builddir)/.node: LIBS := $(LIBS)
+$(builddir)/.node: GYP_LIBTOOLFLAGS := $(LIBTOOLFLAGS_$(BUILDTYPE))
+$(builddir)/.node: TOOLSET := $(TOOLSET)
+$(builddir)/.node:  FORCE_DO_CMD
+	$(call do_cmd,solink_module)
+
+all_deps += $(builddir)/.node
+# Add target alias
+.PHONY: 
+: $(builddir)/.node
+
+# Short alias for building this executable.
+.PHONY: .node
+.node: $(builddir)/.node
+
+# Add executable to "all" target.
+.PHONY: all
+all: $(builddir)/.node
+
diff --git a/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Makefile b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Makefile
new file mode 100644
index 0000000..bf52155
--- /dev/null
+++ b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Makefile
@@ -0,0 +1,347 @@
+# We borrow heavily from the kernel build setup, though we are simpler since
+# we don't have Kconfig tweaking settings on us.
+
+# The implicit make rules have it looking for RCS files, among other things.
+# We instead explicitly write all the rules we care about.
+# It's even quicker (saves ~200ms) to pass -r on the command line.
+MAKEFLAGS=-r
+
+# The source directory tree.
+srcdir := ..
+abs_srcdir := $(abspath $(srcdir))
+
+# The name of the builddir.
+builddir_name ?= .
+
+# The V=1 flag on command line makes us verbosely print command lines.
+ifdef V
+  quiet=
+else
+  quiet=quiet_
+endif
+
+# Specify BUILDTYPE=Release on the command line for a release build.
+BUILDTYPE ?= Release
+
+# Directory all our build output goes into.
+# Note that this must be two directories beneath src/ for unit tests to pass,
+# as they reach into the src/ directory for data with relative paths.
+builddir ?= $(builddir_name)/$(BUILDTYPE)
+abs_builddir := $(abspath $(builddir))
+depsdir := $(builddir)/.deps
+
+# Object output directory.
+obj := $(builddir)/obj
+abs_obj := $(abspath $(obj))
+
+# We build up a list of every single one of the targets so we can slurp in the
+# generated dependency rule Makefiles in one pass.
+all_deps :=
+
+
+
+CC.target ?= $(CC)
+CFLAGS.target ?= $(CPPFLAGS) $(CFLAGS)
+CXX.target ?= $(CXX)
+CXXFLAGS.target ?= $(CPPFLAGS) $(CXXFLAGS)
+LINK.target ?= $(LINK)
+LDFLAGS.target ?= $(LDFLAGS)
+AR.target ?= $(AR)
+
+# C++ apps need to be linked with g++.
+LINK ?= $(CXX.target)
+
+# TODO(evan): move all cross-compilation logic to gyp-time so we don't need
+# to replicate this environment fallback in make as well.
+CC.host ?= gcc
+CFLAGS.host ?= $(CPPFLAGS_host) $(CFLAGS_host)
+CXX.host ?= g++
+CXXFLAGS.host ?= $(CPPFLAGS_host) $(CXXFLAGS_host)
+LINK.host ?= $(CXX.host)
+LDFLAGS.host ?=
+AR.host ?= ar
+
+# Define a dir function that can handle spaces.
+# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions
+# "leading spaces cannot appear in the text of the first argument as written.
+# These characters can be put into the argument value by variable substitution."
+empty :=
+space := $(empty) $(empty)
+
+# http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces
+replace_spaces = $(subst $(space),?,$1)
+unreplace_spaces = $(subst ?,$(space),$1)
+dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1)))
+
+# Flags to make gcc output dependency info.  Note that you need to be
+# careful here to use the flags that ccache and distcc can understand.
+# We write to a dep file on the side first and then rename at the end
+# so we can't end up with a broken dep file.
+depfile = $(depsdir)/$(call replace_spaces,$@).d
+DEPFLAGS = -MMD -MF $(depfile).raw
+
+# We have to fixup the deps output in a few ways.
+# (1) the file output should mention the proper .o file.
+# ccache or distcc lose the path to the target, so we convert a rule of
+# the form:
+#   foobar.o: DEP1 DEP2
+# into
+#   path/to/foobar.o: DEP1 DEP2
+# (2) we want missing files not to cause us to fail to build.
+# We want to rewrite
+#   foobar.o: DEP1 DEP2 \
+#               DEP3
+# to
+#   DEP1:
+#   DEP2:
+#   DEP3:
+# so if the files are missing, they're just considered phony rules.
+# We have to do some pretty insane escaping to get those backslashes
+# and dollar signs past make, the shell, and sed at the same time.
+# Doesn't work with spaces, but that's fine: .d files have spaces in
+# their names replaced with other characters.
+define fixup_dep
+# The depfile may not exist if the input file didn't have any #includes.
+touch $(depfile).raw
+# Fixup path as in (1).
+sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile)
+# Add extra rules as in (2).
+# We remove slashes and replace spaces with new lines;
+# remove blank lines;
+# delete the first line and append a colon to the remaining lines.
+sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\
+  grep -v '^$$'                             |\
+  sed -e 1d -e 's|$$|:|'                     \
+    >> $(depfile)
+rm $(depfile).raw
+endef
+
+# Command definitions:
+# - cmd_foo is the actual command to run;
+# - quiet_cmd_foo is the brief-output summary of the command.
+
+quiet_cmd_cc = CC($(TOOLSET)) $@
+cmd_cc = $(CC.$(TOOLSET)) -o $@ $< $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c
+
+quiet_cmd_cxx = CXX($(TOOLSET)) $@
+cmd_cxx = $(CXX.$(TOOLSET)) -o $@ $< $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c
+
+quiet_cmd_objc = CXX($(TOOLSET)) $@
+cmd_objc = $(CC.$(TOOLSET)) $(GYP_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $<
+
+quiet_cmd_objcxx = CXX($(TOOLSET)) $@
+cmd_objcxx = $(CXX.$(TOOLSET)) $(GYP_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $<
+
+# Commands for precompiled header files.
+quiet_cmd_pch_c = CXX($(TOOLSET)) $@
+cmd_pch_c = $(CC.$(TOOLSET)) $(GYP_PCH_CFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $<
+quiet_cmd_pch_cc = CXX($(TOOLSET)) $@
+cmd_pch_cc = $(CC.$(TOOLSET)) $(GYP_PCH_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $<
+quiet_cmd_pch_m = CXX($(TOOLSET)) $@
+cmd_pch_m = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $<
+quiet_cmd_pch_mm = CXX($(TOOLSET)) $@
+cmd_pch_mm = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $<
+
+# gyp-mac-tool is written next to the root Makefile by gyp.
+# Use $(4) for the command, since $(2) and $(3) are used as flag by do_cmd
+# already.
+quiet_cmd_mac_tool = MACTOOL $(4) $<
+cmd_mac_tool = ./gyp-mac-tool $(4) $< "$@"
+
+quiet_cmd_mac_package_framework = PACKAGE FRAMEWORK $@
+cmd_mac_package_framework = ./gyp-mac-tool package-framework "$@" $(4)
+
+quiet_cmd_infoplist = INFOPLIST $@
+cmd_infoplist = $(CC.$(TOOLSET)) -E -P -Wno-trigraphs -x c $(INFOPLIST_DEFINES) "$<" -o "$@"
+
+quiet_cmd_touch = TOUCH $@
+cmd_touch = touch $@
+
+quiet_cmd_copy = COPY $@
+# send stderr to /dev/null to ignore messages when linking directories.
+cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@")
+
+quiet_cmd_alink = LIBTOOL-STATIC $@
+cmd_alink = rm -f $@ && ./gyp-mac-tool filter-libtool libtool $(GYP_LIBTOOLFLAGS) -static -o $@ $(filter %.o,$^)
+
+quiet_cmd_link = LINK($(TOOLSET)) $@
+cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS)
+
+quiet_cmd_solink = SOLINK($(TOOLSET)) $@
+cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS)
+
+quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@
+cmd_solink_module = $(LINK.$(TOOLSET)) -bundle $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(filter-out FORCE_DO_CMD, $^) $(LIBS)
+
+
+# Define an escape_quotes function to escape single quotes.
+# This allows us to handle quotes properly as long as we always use
+# use single quotes and escape_quotes.
+escape_quotes = $(subst ','\'',$(1))
+# This comment is here just to include a ' to unconfuse syntax highlighting.
+# Define an escape_vars function to escape '$' variable syntax.
+# This allows us to read/write command lines with shell variables (e.g.
+# $LD_LIBRARY_PATH), without triggering make substitution.
+escape_vars = $(subst $$,$$$$,$(1))
+# Helper that expands to a shell command to echo a string exactly as it is in
+# make. This uses printf instead of echo because printf's behaviour with respect
+# to escape sequences is more portable than echo's across different shells
+# (e.g., dash, bash).
+exact_echo = printf '%s\n' '$(call escape_quotes,$(1))'
+
+# Helper to compare the command we're about to run against the command
+# we logged the last time we ran the command.  Produces an empty
+# string (false) when the commands match.
+# Tricky point: Make has no string-equality test function.
+# The kernel uses the following, but it seems like it would have false
+# positives, where one string reordered its arguments.
+#   arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \
+#                       $(filter-out $(cmd_$@), $(cmd_$(1))))
+# We instead substitute each for the empty string into the other, and
+# say they're equal if both substitutions produce the empty string.
+# .d files contain ? instead of spaces, take that into account.
+command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\
+                       $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1))))
+
+# Helper that is non-empty when a prerequisite changes.
+# Normally make does this implicitly, but we force rules to always run
+# so we can check their command lines.
+#   $? -- new prerequisites
+#   $| -- order-only dependencies
+prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?))
+
+# Helper that executes all postbuilds until one fails.
+define do_postbuilds
+  @E=0;\
+  for p in $(POSTBUILDS); do\
+    eval $$p;\
+    E=$$?;\
+    if [ $$E -ne 0 ]; then\
+      break;\
+    fi;\
+  done;\
+  if [ $$E -ne 0 ]; then\
+    rm -rf "$@";\
+    exit $$E;\
+  fi
+endef
+
+# do_cmd: run a command via the above cmd_foo names, if necessary.
+# Should always run for a given target to handle command-line changes.
+# Second argument, if non-zero, makes it do asm/C/C++ dependency munging.
+# Third argument, if non-zero, makes it do POSTBUILDS processing.
+# Note: We intentionally do NOT call dirx for depfile, since it contains ? for
+# spaces already and dirx strips the ? characters.
+define do_cmd
+$(if $(or $(command_changed),$(prereq_changed)),
+  @$(call exact_echo,  $($(quiet)cmd_$(1)))
+  @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))"
+  $(if $(findstring flock,$(word 2,$(cmd_$1))),
+    @$(cmd_$(1))
+    @echo "  $(quiet_cmd_$(1)): Finished",
+    @$(cmd_$(1))
+  )
+  @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile)
+  @$(if $(2),$(fixup_dep))
+  $(if $(and $(3), $(POSTBUILDS)),
+    $(call do_postbuilds)
+  )
+)
+endef
+
+# Declare the "all" target first so it is the default,
+# even though we don't have the deps yet.
+.PHONY: all
+all:
+
+# make looks for ways to re-generate included makefiles, but in our case, we
+# don't have a direct way. Explicitly telling make that it has nothing to do
+# for them makes it go faster.
+%.d: ;
+
+# Use FORCE_DO_CMD to force a target to run.  Should be coupled with
+# do_cmd.
+.PHONY: FORCE_DO_CMD
+FORCE_DO_CMD:
+
+TOOLSET := target
+# Suffix rules, putting all outputs into $(obj).
+$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD
+	@$(call do_cmd,cc,1)
+$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD
+	@$(call do_cmd,cxx,1)
+$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD
+	@$(call do_cmd,cxx,1)
+$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD
+	@$(call do_cmd,cxx,1)
+$(obj).$(TOOLSET)/%.o: $(srcdir)/%.m FORCE_DO_CMD
+	@$(call do_cmd,objc,1)
+$(obj).$(TOOLSET)/%.o: $(srcdir)/%.mm FORCE_DO_CMD
+	@$(call do_cmd,objcxx,1)
+$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD
+	@$(call do_cmd,cc,1)
+$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD
+	@$(call do_cmd,cc,1)
+
+# Try building from generated source, too.
+$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD
+	@$(call do_cmd,cc,1)
+$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD
+	@$(call do_cmd,cxx,1)
+$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD
+	@$(call do_cmd,cxx,1)
+$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD
+	@$(call do_cmd,cxx,1)
+$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.m FORCE_DO_CMD
+	@$(call do_cmd,objc,1)
+$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.mm FORCE_DO_CMD
+	@$(call do_cmd,objcxx,1)
+$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD
+	@$(call do_cmd,cc,1)
+$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD
+	@$(call do_cmd,cc,1)
+
+$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD
+	@$(call do_cmd,cc,1)
+$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD
+	@$(call do_cmd,cxx,1)
+$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD
+	@$(call do_cmd,cxx,1)
+$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD
+	@$(call do_cmd,cxx,1)
+$(obj).$(TOOLSET)/%.o: $(obj)/%.m FORCE_DO_CMD
+	@$(call do_cmd,objc,1)
+$(obj).$(TOOLSET)/%.o: $(obj)/%.mm FORCE_DO_CMD
+	@$(call do_cmd,objcxx,1)
+$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD
+	@$(call do_cmd,cc,1)
+$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD
+	@$(call do_cmd,cc,1)
+
+
+ifeq ($(strip $(foreach prefix,$(NO_LOAD),\
+    $(findstring $(join ^,$(prefix)),\
+                 $(join ^,.target.mk)))),)
+  include .target.mk
+endif
+ifeq ($(strip $(foreach prefix,$(NO_LOAD),\
+    $(findstring $(join ^,$(prefix)),\
+                 $(join ^,fse.target.mk)))),)
+  include fse.target.mk
+endif
+
+quiet_cmd_regen_makefile = ACTION Regenerating $@
+cmd_regen_makefile = cd $(srcdir); /Users/david/projects/camel/camel-website/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/gyp_main.py -fmake --ignore-environment "-Dlibrary=shared_library" "-Dvisibility=default" "-Dnode_root_dir=/Users/david/Library/Caches/node-gyp/14.2.0" "-Dnode_gyp_dir=/Users/david/projects/camel/camel-website/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp" "-Dnode_lib_file=/Users/david/Library/Caches/node-gyp/14.2.0/<(t [...]
+Makefile: $(srcdir)/../../../node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/addon.gypi $(srcdir)/binding.gyp $(srcdir)/../../../../../../../../Library/Caches/node-gyp/14.2.0/include/node/common.gypi $(srcdir)/build/config.gypi
+	$(call do_cmd,regen_makefile)
+
+# "all" is a concatenation of the "all" targets from all the included
+# sub-makefiles. This is just here to clarify.
+all:
+
+# Add in dependency-tracking rules.  $(all_deps) is the list of every single
+# target in our tree. Only consider the ones with .d (dependency) info:
+d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d))
+ifneq ($(d_files),)
+  include $(d_files)
+endif
diff --git a/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/.deps/Release/.node.d b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/.deps/Release/.node.d
new file mode 100644
index 0000000..459952a
--- /dev/null
+++ b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/.deps/Release/.node.d
@@ -0,0 +1 @@
+cmd_Release/.node := c++ -bundle -undefined dynamic_lookup -Wl,-no_pie -Wl,-search_paths_first -mmacosx-version-min=10.13 -arch x86_64 -L./Release -stdlib=libc++  -o Release/.node  
diff --git a/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/.deps/Release/fse.node.d b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/.deps/Release/fse.node.d
new file mode 100644
index 0000000..a1a6d88
--- /dev/null
+++ b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/.deps/Release/fse.node.d
@@ -0,0 +1 @@
+cmd_Release/fse.node := c++ -bundle -framework CoreFoundation -framework CoreServices -undefined dynamic_lookup -Wl,-no_pie -Wl,-search_paths_first -mmacosx-version-min=10.13 -arch x86_64 -L./Release -stdlib=libc++  -o Release/fse.node Release/obj.target/fse/fsevents.o 
diff --git a/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/.deps/Release/obj.target/fse/fsevents.o.d b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/.deps/Release/obj.target/fse/fsevents.o.d
new file mode 100644
index 0000000..1c78770
--- /dev/null
+++ b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/.deps/Release/obj.target/fse/fsevents.o.d
@@ -0,0 +1,68 @@
+cmd_Release/obj.target/fse/fsevents.o := c++ -o Release/obj.target/fse/fsevents.o ../fsevents.cc '-DNODE_GYP_MODULE_NAME=fse' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DBUILDING_NODE_EXTENSION' -I/Users/david/Library/Caches/node-gyp/14.2.0/include/node -I/Users/david/Li [...]
+Release/obj.target/fse/fsevents.o: ../fsevents.cc \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/node_version.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/uv.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/uv/errno.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/uv/version.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/uv/unix.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/uv/threadpool.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/uv/darwin.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/node.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/v8.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/v8-internal.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/v8-version.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/v8config.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/v8-platform.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/node_buffer.h \
+  /Users/david/Library/Caches/node-gyp/14.2.0/include/node/node_object_wrap.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_callbacks.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_callbacks_12_inl.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_maybe_43_inl.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_converters.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_converters_43_inl.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_new.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_implementation_12_inl.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_persistent_12_inl.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_weak.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_object_wrap.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_private.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_typedarray_contents.h \
+  ../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_json.h \
+  ../src/storage.cc ../src/async.cc ../src/thread.cc ../src/constants.cc \
+  ../src/methods.cc
+../fsevents.cc:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/node_version.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/uv.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/uv/errno.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/uv/version.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/uv/unix.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/uv/threadpool.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/uv/darwin.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/node.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/v8.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/v8-internal.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/v8-version.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/v8config.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/v8-platform.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/node_buffer.h:
+/Users/david/Library/Caches/node-gyp/14.2.0/include/node/node_object_wrap.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_callbacks.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_callbacks_12_inl.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_maybe_43_inl.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_converters.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_converters_43_inl.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_new.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_implementation_12_inl.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_persistent_12_inl.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_weak.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_object_wrap.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_private.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_typedarray_contents.h:
+../../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan/nan_json.h:
+../src/storage.cc:
+../src/async.cc:
+../src/thread.cc:
+../src/constants.cc:
+../src/methods.cc:
diff --git a/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/.node b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/.node
new file mode 100755
index 0000000..bb11b1b
Binary files /dev/null and b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/.node differ
diff --git a/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/fse.node b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/fse.node
new file mode 100755
index 0000000..da9fab5
Binary files /dev/null and b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/fse.node differ
diff --git a/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/obj.target/fse/fsevents.o b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/obj.target/fse/fsevents.o
new file mode 100644
index 0000000..2451e6e
Binary files /dev/null and b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/Release/obj.target/fse/fsevents.o differ
diff --git a/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/binding.Makefile b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/binding.Makefile
new file mode 100644
index 0000000..94f59b0
--- /dev/null
+++ b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/binding.Makefile
@@ -0,0 +1,6 @@
+# This file is generated by gyp; do not edit.
+
+export builddir_name ?= ./build/.
+.PHONY: all
+all:
+	$(MAKE) fse 
diff --git a/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/config.gypi b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/config.gypi
new file mode 100644
index 0000000..d87cdad
--- /dev/null
+++ b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/config.gypi
@@ -0,0 +1,80 @@
+# Do not edit. File was generated by node-gyp's "configure" step
+{
+  "target_defaults": {
+    "cflags": [],
+    "default_configuration": "Release",
+    "defines": [],
+    "include_dirs": [],
+    "libraries": []
+  },
+  "variables": {
+    "asan": 0,
+    "build_v8_with_gn": "false",
+    "coverage": "false",
+    "dcheck_always_on": 0,
+    "debug_nghttp2": "false",
+    "debug_node": "false",
+    "enable_lto": "false",
+    "enable_pgo_generate": "false",
+    "enable_pgo_use": "false",
+    "error_on_warn": "false",
+    "force_dynamic_crt": 0,
+    "host_arch": "x64",
+    "icu_data_in": "../../deps/icu-tmp/icudt66l.dat",
+    "icu_endianness": "l",
+    "icu_gyp_path": "tools/icu/icu-generic.gyp",
+    "icu_path": "deps/icu-small",
+    "icu_small": "false",
+    "icu_ver_major": "66",
+    "is_debug": 0,
+    "llvm_version": "0.0",
+    "napi_build_version": "6",
+    "node_byteorder": "little",
+    "node_debug_lib": "false",
+    "node_enable_d8": "false",
+    "node_install_npm": "true",
+    "node_module_version": 83,
+    "node_no_browser_globals": "false",
+    "node_prefix": "/",
+    "node_release_urlbase": "https://nodejs.org/download/release/",
+    "node_shared": "false",
+    "node_shared_brotli": "false",
+    "node_shared_cares": "false",
+    "node_shared_http_parser": "false",
+    "node_shared_libuv": "false",
+    "node_shared_nghttp2": "false",
+    "node_shared_openssl": "false",
+    "node_shared_zlib": "false",
+    "node_tag": "",
+    "node_target_type": "executable",
+    "node_use_bundled_v8": "true",
+    "node_use_dtrace": "true",
+    "node_use_etw": "false",
+    "node_use_node_code_cache": "true",
+    "node_use_node_snapshot": "true",
+    "node_use_openssl": "true",
+    "node_use_v8_platform": "true",
+    "node_with_ltcg": "false",
+    "node_without_node_options": "false",
+    "openssl_fips": "",
+    "openssl_is_fips": "false",
+    "shlib_suffix": "83.dylib",
+    "target_arch": "x64",
+    "v8_enable_31bit_smis_on_64bit_arch": 0,
+    "v8_enable_gdbjit": 0,
+    "v8_enable_i18n_support": 1,
+    "v8_enable_inspector": 1,
+    "v8_enable_pointer_compression": 0,
+    "v8_no_strict_aliasing": 1,
+    "v8_optimized_debug": 1,
+    "v8_promise_internal_field_count": 1,
+    "v8_random_seed": 0,
+    "v8_trace_maps": 0,
+    "v8_use_siphash": 1,
+    "want_separate_host_toolset": 0,
+    "xcode_version": "11.0",
+    "nodedir": "/Users/david/Library/Caches/node-gyp/14.2.0",
+    "standalone_static_library": 1,
+    "user_agent": "yarn/2.4.0 npm/? node/14.2.0 darwin x64"
+  }
+}
diff --git a/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/fse.target.mk b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/fse.target.mk
new file mode 100644
index 0000000..595def1
--- /dev/null
+++ b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/fse.target.mk
@@ -0,0 +1,196 @@
+# This file is generated by gyp; do not edit.
+
+TOOLSET := target
+TARGET := fse
+DEFS_Debug := \
+	'-DNODE_GYP_MODULE_NAME=fse' \
+	'-DUSING_UV_SHARED=1' \
+	'-DUSING_V8_SHARED=1' \
+	'-DV8_DEPRECATION_WARNINGS=1' \
+	'-DV8_DEPRECATION_WARNINGS' \
+	'-DV8_IMMINENT_DEPRECATION_WARNINGS' \
+	'-D_DARWIN_USE_64_BIT_INODE=1' \
+	'-D_LARGEFILE_SOURCE' \
+	'-D_FILE_OFFSET_BITS=64' \
+	'-DOPENSSL_NO_PINSHARED' \
+	'-DOPENSSL_THREADS' \
+	'-DBUILDING_NODE_EXTENSION' \
+	'-DDEBUG' \
+	'-D_DEBUG' \
+	'-DV8_ENABLE_CHECKS'
+
+# Flags passed to all source files.
+CFLAGS_Debug := \
+	-O0 \
+	-gdwarf-2 \
+	-mmacosx-version-min=10.13 \
+	-arch x86_64 \
+	-Wall \
+	-Wendif-labels \
+	-W \
+	-Wno-unused-parameter
+
+# Flags passed to only C files.
+CFLAGS_C_Debug := \
+	-fno-strict-aliasing
+
+# Flags passed to only C++ files.
+CFLAGS_CC_Debug := \
+	-std=gnu++1y \
+	-stdlib=libc++ \
+	-fno-rtti \
+	-fno-exceptions \
+	-fno-strict-aliasing
+
+# Flags passed to only ObjC files.
+CFLAGS_OBJC_Debug :=
+
+# Flags passed to only ObjC++ files.
+CFLAGS_OBJCC_Debug :=
+
+INCS_Debug := \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/include/node \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/src \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/deps/openssl/config \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/deps/openssl/openssl/include \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/deps/uv/include \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/deps/zlib \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/deps/v8/include \
+	-I$(srcdir)/../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan
+
+DEFS_Release := \
+	'-DNODE_GYP_MODULE_NAME=fse' \
+	'-DUSING_UV_SHARED=1' \
+	'-DUSING_V8_SHARED=1' \
+	'-DV8_DEPRECATION_WARNINGS=1' \
+	'-DV8_DEPRECATION_WARNINGS' \
+	'-DV8_IMMINENT_DEPRECATION_WARNINGS' \
+	'-D_DARWIN_USE_64_BIT_INODE=1' \
+	'-D_LARGEFILE_SOURCE' \
+	'-D_FILE_OFFSET_BITS=64' \
+	'-DOPENSSL_NO_PINSHARED' \
+	'-DOPENSSL_THREADS' \
+	'-DBUILDING_NODE_EXTENSION'
+
+# Flags passed to all source files.
+CFLAGS_Release := \
+	-O3 \
+	-gdwarf-2 \
+	-mmacosx-version-min=10.13 \
+	-arch x86_64 \
+	-Wall \
+	-Wendif-labels \
+	-W \
+	-Wno-unused-parameter
+
+# Flags passed to only C files.
+CFLAGS_C_Release := \
+	-fno-strict-aliasing
+
+# Flags passed to only C++ files.
+CFLAGS_CC_Release := \
+	-std=gnu++1y \
+	-stdlib=libc++ \
+	-fno-rtti \
+	-fno-exceptions \
+	-fno-strict-aliasing
+
+# Flags passed to only ObjC files.
+CFLAGS_OBJC_Release :=
+
+# Flags passed to only ObjC++ files.
+CFLAGS_OBJCC_Release :=
+
+INCS_Release := \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/include/node \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/src \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/deps/openssl/config \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/deps/openssl/openssl/include \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/deps/uv/include \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/deps/zlib \
+	-I/Users/david/Library/Caches/node-gyp/14.2.0/deps/v8/include \
+	-I$(srcdir)/../../../nan-npm-2.14.0-b880e7ae7d/node_modules/nan
+
+OBJS := \
+	$(obj).target/$(TARGET)/fsevents.o
+
+# Add to the list of files we specially track dependencies for.
+all_deps += $(OBJS)
+
+# CFLAGS et al overrides must be target-local.
+# See "Target-specific Variable Values" in the GNU Make manual.
+$(OBJS): TOOLSET := $(TOOLSET)
+$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE))  $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE))
+$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE))  $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE))
+$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE))  $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE))
+$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE))  $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE))
+
+# Suffix rules, putting all outputs into $(obj).
+
+$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD
+	@$(call do_cmd,cxx,1)
+
+# Try building from generated source, too.
+
+$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD
+	@$(call do_cmd,cxx,1)
+
+$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.cc FORCE_DO_CMD
+	@$(call do_cmd,cxx,1)
+
+# End of this set of suffix rules
+### Rules for final target.
+LDFLAGS_Debug := \
+	-framework CoreFoundation -framework CoreServices \
+	-undefined dynamic_lookup \
+	-Wl,-no_pie \
+	-Wl,-search_paths_first \
+	-mmacosx-version-min=10.13 \
+	-arch x86_64 \
+	-L$(builddir) \
+	-stdlib=libc++
+
+LIBTOOLFLAGS_Debug := \
+	-framework CoreFoundation -framework CoreServices \
+	-undefined dynamic_lookup \
+	-Wl,-no_pie \
+	-Wl,-search_paths_first
+
+LDFLAGS_Release := \
+	-framework CoreFoundation -framework CoreServices \
+	-undefined dynamic_lookup \
+	-Wl,-no_pie \
+	-Wl,-search_paths_first \
+	-mmacosx-version-min=10.13 \
+	-arch x86_64 \
+	-L$(builddir) \
+	-stdlib=libc++
+
+LIBTOOLFLAGS_Release := \
+	-framework CoreFoundation -framework CoreServices \
+	-undefined dynamic_lookup \
+	-Wl,-no_pie \
+	-Wl,-search_paths_first
+
+LIBS :=
+
+$(builddir)/fse.node: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE))
+$(builddir)/fse.node: LIBS := $(LIBS)
+$(builddir)/fse.node: GYP_LIBTOOLFLAGS := $(LIBTOOLFLAGS_$(BUILDTYPE))
+$(builddir)/fse.node: TOOLSET := $(TOOLSET)
+$(builddir)/fse.node: $(OBJS) FORCE_DO_CMD
+	$(call do_cmd,solink_module)
+
+all_deps += $(builddir)/fse.node
+# Add target alias
+.PHONY: fse
+fse: $(builddir)/fse.node
+
+# Short alias for building this executable.
+.PHONY: fse.node
+fse.node: $(builddir)/fse.node
+
+# Add executable to "all" target.
+.PHONY: all
+all: $(builddir)/fse.node
+
diff --git a/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/gyp-mac-tool b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/gyp-mac-tool
new file mode 100755
index 0000000..d9fc076
--- /dev/null
+++ b/.yarn/unplugged/fsevents-patch-4116a447fc/node_modules/fsevents/build/gyp-mac-tool
@@ -0,0 +1,777 @@
+#!/usr/bin/env python
+# Generated by gyp. Do not edit.
+# Copyright (c) 2012 Google Inc. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Utility functions to perform Xcode-style build steps.
+
+These functions are executed via gyp-mac-tool when using the Makefile generator.
+"""
+
+from __future__ import print_function
+
+import fcntl
+import fnmatch
+import glob
+import json
+import os
+import plistlib
+import re
+import shutil
+import struct
+import subprocess
+import sys
+import tempfile
+
+PY3 = bytes != str
+
+
+def main(args):
+    executor = MacTool()
+    exit_code = executor.Dispatch(args)
+    if exit_code is not None:
+        sys.exit(exit_code)
+
+
+class MacTool(object):
+    """This class performs all the Mac tooling steps. The methods can either be
+  executed directly, or dispatched from an argument list."""
+
+    def Dispatch(self, args):
+        """Dispatches a string command to a method."""
+        if len(args) < 1:
+            raise Exception("Not enough arguments")
+
+        method = "Exec%s" % self._CommandifyName(args[0])
+        return getattr(self, method)(*args[1:])
+
+    def _CommandifyName(self, name_string):
+        """Transforms a tool name like copy-info-plist to CopyInfoPlist"""
+        return name_string.title().replace("-", "")
+
+    def ExecCopyBundleResource(self, source, dest, convert_to_binary):
+        """Copies a resource file to the bundle/Resources directory, performing any
+    necessary compilation on each resource."""
+        convert_to_binary = convert_to_binary == "True"
+        extension = os.path.splitext(source)[1].lower()
+        if os.path.isdir(source):
+            # Copy tree.
+            # TODO(thakis): This copies file attributes like mtime, while the
+            # single-file branch below doesn't. This should probably be changed to
+            # be consistent with the single-file branch.
+            if os.path.exists(dest):
+                shutil.rmtree(dest)
+            shutil.copytree(source, dest)
+        elif extension == ".xib":
+            return self._CopyXIBFile(source, dest)
+        elif extension == ".storyboard":
+            return self._CopyXIBFile(source, dest)
+        elif extension == ".strings" and not convert_to_binary:
+            self._CopyStringsFile(source, dest)
+        else:
+            if os.path.exists(dest):
+                os.unlink(dest)
+            shutil.copy(source, dest)
+
+        if convert_to_binary and extension in (".plist", ".strings"):
+            self._ConvertToBinary(dest)
+
+    def _CopyXIBFile(self, source, dest):
+        """Compiles a XIB file with ibtool into a binary plist in the bundle."""
+
+        # ibtool sometimes crashes with relative paths. See crbug.com/314728.
+        base = os.path.dirname(os.path.realpath(__file__))
+        if os.path.relpath(source):
+            source = os.path.join(base, source)
+        if os.path.relpath(dest):
+            dest = os.path.join(base, dest)
+
+        args = ["xcrun", "ibtool", "--errors", "--warnings", "--notices"]
+
+        if os.environ["XCODE_VERSION_ACTUAL"] > "0700":
+            args.extend(["--auto-activate-custom-fonts"])
+            if "IPHONEOS_DEPLOYMENT_TARGET" in os.environ:
+                args.extend(
+                    [
+                        "--target-device",
+                        "iphone",
+                        "--target-device",
+                        "ipad",
+                        "--minimum-deployment-target",
+                        os.environ["IPHONEOS_DEPLOYMENT_TARGET"],
+                    ]
+                )
+            else:
+                args.extend(
+                    [
+                        "--target-device",
+                        "mac",
+                        "--minimum-deployment-target",
+                        os.environ["MACOSX_DEPLOYMENT_TARGET"],
+                    ]
+                )
+
+        args.extend(
+            ["--output-format", "human-readable-text", "--compile", dest, source]
+        )
+
+        ibtool_section_re = re.compile(r"/\*.*\*/")
+        ibtool_re = re.compile(r".*note:.*is clipping its content")
+        try:
+            stdout = subprocess.check_output(args)
+        except subprocess.CalledProcessError as e:
+            print(e.output)
+            raise
+        current_section_header = None
+        for line in stdout.splitlines():
+            if ibtool_section_re.match(line):
+                current_section_header = line
+            elif not ibtool_re.match(line):
+                if current_section_header:
+                    print(current_section_header)
+                    current_section_header = None
+                print(line)
+        return 0
+
+    def _ConvertToBinary(self, dest):
+        subprocess.check_call(
+            ["xcrun", "plutil", "-convert", "binary1", "-o", dest, dest]
+        )
+
+    def _CopyStringsFile(self, source, dest):
+        """Copies a .strings file using iconv to reconvert the input into UTF-16."""
+        input_code = self._DetectInputEncoding(source) or "UTF-8"
+
+        # Xcode's CpyCopyStringsFile / builtin-copyStrings seems to call
+        # CFPropertyListCreateFromXMLData() behind the scenes; at least it prints
+        #     CFPropertyListCreateFromXMLData(): Old-style plist parser: missing
+        #     semicolon in dictionary.
+        # on invalid files. Do the same kind of validation.
+        import CoreFoundation
+
+        with open(source, "rb") as in_file:
+            s = in_file.read()
+        d = CoreFoundation.CFDataCreate(None, s, len(s))
+        _, error = CoreFoundation.CFPropertyListCreateFromXMLData(None, d, 0, None)
+        if error:
+            return
+
+        with open(dest, "wb") as fp:
+            fp.write(s.decode(input_code).encode("UTF-16"))
+
+    def _DetectInputEncoding(self, file_name):
+        """Reads the first few bytes from file_name and tries to guess the text
+    encoding. Returns None as a guess if it can't detect it."""
+        with open(file_name, "rb") as fp:
+            try:
+                header = fp.read(3)
+            except Exception:
+                return None
+        if header.startswith(b"\xFE\xFF"):
+            return "UTF-16"
+        elif header.startswith(b"\xFF\xFE"):
+            return "UTF-16"
+        elif header.startswith(b"\xEF\xBB\xBF"):
+            return "UTF-8"
+        else:
+            return None
+
+    def ExecCopyInfoPlist(self, source, dest, convert_to_binary, *keys):
+        """Copies the |source| Info.plist to the destination directory |dest|."""
+        # Read the source Info.plist into memory.
+        with open(source, "r") as fd:
+            lines = fd.read()
+
+        # Insert synthesized key/value pairs (e.g. BuildMachineOSBuild).
+        plist = plistlib.readPlistFromString(lines)
+        if keys:
+            plist.update(json.loads(keys[0]))
+        lines = plistlib.writePlistToString(plist)
+
+        # Go through all the environment variables and replace them as variables in
+        # the file.
+        IDENT_RE = re.compile(r"[_/\s]")
+        for key in os.environ:
+            if key.startswith("_"):
+                continue
+            evar = "${%s}" % key
+            evalue = os.environ[key]
+            lines = lines.replace(lines, evar, evalue)
+
+            # Xcode supports various suffices on environment variables, which are
+            # all undocumented. :rfc1034identifier is used in the standard project
+            # template these days, and :identifier was used earlier. They are used to
+            # convert non-url characters into things that look like valid urls --
+            # except that the replacement character for :identifier, '_' isn't valid
+            # in a URL either -- oops, hence :rfc1034identifier was born.
+            evar = "${%s:identifier}" % key
+            evalue = IDENT_RE.sub("_", os.environ[key])
+            lines = lines.replace(lines, evar, evalue)
+
+            evar = "${%s:rfc1034identifier}" % key
+            evalue = IDENT_RE.sub("-", os.environ[key])
+            lines = lines.replace(lines, evar, evalue)
+
+        # Remove any keys with values that haven't been replaced.
+        lines = lines.splitlines()
+        for i in range(len(lines)):
+            if lines[i].strip().startswith("<string>${"):
+                lines[i] = None
+                lines[i - 1] = None
+        lines = "\n".join(line for line in lines if line is not None)
+
+        # Write out the file with variables replaced.
+        with open(dest, "w") as fd:
+            fd.write(lines)
+
+        # Now write out PkgInfo file now that the Info.plist file has been
+        # "compiled".
+        self._WritePkgInfo(dest)
+
+        if convert_to_binary == "True":
+            self._ConvertToBinary(dest)
+
+    def _WritePkgInfo(self, info_plist):
+        """This writes the PkgInfo file from the data stored in Info.plist."""
+        plist = plistlib.readPlist(info_plist)
+        if not plist:
+            return
+
+        # Only create PkgInfo for executable types.
+        package_type = plist["CFBundlePackageType"]
+        if package_type != "APPL":
+            return
+
+        # The format of PkgInfo is eight characters, representing the bundle type
+        # and bundle signature, each four characters. If that is missing, four
+        # '?' characters are used instead.
+        signature_code = plist.get("CFBundleSignature", "????")
+        if len(signature_code) != 4:  # Wrong length resets everything, too.
+            signature_code = "?" * 4
+
+        dest = os.path.join(os.path.dirname(info_plist), "PkgInfo")
+        with open(dest, "w") as fp:
+            fp.write("%s%s" % (package_type, signature_code))
+
+    def ExecFlock(self, lockfile, *cmd_list):
+        """Emulates the most basic behavior of Linux's flock(1)."""
+        # Rely on exception handling to report errors.
+        fd = os.open(lockfile, os.O_RDONLY | os.O_NOCTTY | os.O_CREAT, 0o666)
+        fcntl.flock(fd, fcntl.LOCK_EX)
+        return subprocess.call(cmd_list)
+
+    def ExecFilterLibtool(self, *cmd_list):
+        """Calls libtool and filters out '/path/to/libtool: file: foo.o has no
+    symbols'."""
+        libtool_re = re.compile(
+            r"^.*libtool: (?:for architecture: \S* )?" r"file: .* has no symbols$"
+        )
+        libtool_re5 = re.compile(
+            r"^.*libtool: warning for library: "
+            + r".* the table of contents is empty "
+            + r"\(no object file members in the library define global symbols\)$"
+        )
+        env = os.environ.copy()
+        # Ref:
+        # http://www.opensource.apple.com/source/cctools/cctools-809/misc/libtool.c
+        # The problem with this flag is that it resets the file mtime on the file to
+        # epoch=0, e.g. 1970-1-1 or 1969-12-31 depending on timezone.
+        env["ZERO_AR_DATE"] = "1"
+        libtoolout = subprocess.Popen(cmd_list, stderr=subprocess.PIPE, env=env)
+        _, err = libtoolout.communicate()
+        if PY3:
+            err = err.decode("utf-8")
+        for line in err.splitlines():
+            if not libtool_re.match(line) and not libtool_re5.match(line):
+                print(line, file=sys.stderr)
+        # Unconditionally touch the output .a file on the command line if present
+        # and the command succeeded. A bit hacky.
+        if not libtoolout.returncode:
+            for i in range(len(cmd_list) - 1):
+                if cmd_list[i] == "-o" and cmd_list[i + 1].endswith(".a"):
+                    os.utime(cmd_list[i + 1], None)
+                    break
+        return libtoolout.returncode
+
+    def ExecPackageIosFramework(self, framework):
+        # Find the name of the binary based on the part before the ".framework".
+        binary = os.path.basename(framework).split(".")[0]
+        module_path = os.path.join(framework, "Modules")
+        if not os.path.exists(module_path):
+            os.mkdir(module_path)
+        module_template = (
+            "framework module %s {\n"
+            '  umbrella header "%s.h"\n'
+            "\n"
+            "  export *\n"
+            "  module * { export * }\n"
+            "}\n" % (binary, binary)
+        )
+
+        with open(os.path.join(module_path, "module.modulemap"), "w") as module_file:
+            module_file.write(module_template)
+
+    def ExecPackageFramework(self, framework, version):
+        """Takes a path to Something.framework and the Current version of that and
+    sets up all the symlinks."""
+        # Find the name of the binary based on the part before the ".framework".
+        binary = os.path.basename(framework).split(".")[0]
+
+        CURRENT = "Current"
+        RESOURCES = "Resources"
+        VERSIONS = "Versions"
+
+        if not os.path.exists(os.path.join(framework, VERSIONS, version, binary)):
+            # Binary-less frameworks don't seem to contain symlinks (see e.g.
+            # chromium's out/Debug/org.chromium.Chromium.manifest/ bundle).
+            return
+
+        # Move into the framework directory to set the symlinks correctly.
+        pwd = os.getcwd()
+        os.chdir(framework)
+
+        # Set up the Current version.
+        self._Relink(version, os.path.join(VERSIONS, CURRENT))
+
+        # Set up the root symlinks.
+        self._Relink(os.path.join(VERSIONS, CURRENT, binary), binary)
+        self._Relink(os.path.join(VERSIONS, CURRENT, RESOURCES), RESOURCES)
+
+        # Back to where we were before!
+        os.chdir(pwd)
+
+    def _Relink(self, dest, link):
+        """Creates a symlink to |dest| named |link|. If |link| already exists,
+    it is overwritten."""
+        if os.path.lexists(link):
+            os.remove(link)
+        os.symlink(dest, link)
+
+    def ExecCompileIosFrameworkHeaderMap(self, out, framework, *all_headers):
+        framework_name = os.path.basename(framework).split(".")[0]
+        all_headers = [os.path.abspath(header) for header in all_headers]
+        filelist = {}
+        for header in all_headers:
+            filename = os.path.basename(header)
+            filelist[filename] = header
+            filelist[os.path.join(framework_name, filename)] = header
+        WriteHmap(out, filelist)
+
+    def ExecCopyIosFrameworkHeaders(self, framework, *copy_headers):
+        header_path = os.path.join(framework, "Headers")
+        if not os.path.exists(header_path):
+            os.makedirs(header_path)
+        for header in copy_headers:
+            shutil.copy(header, os.path.join(header_path, os.path.basename(header)))
+
+    def ExecCompileXcassets(self, keys, *inputs):
+        """Compiles multiple .xcassets files into a single .car file.
+
+    This invokes 'actool' to compile all the inputs .xcassets files. The
+    |keys| arguments is a json-encoded dictionary of extra arguments to
+    pass to 'actool' when the asset catalogs contains an application icon
+    or a launch image.
+
+    Note that 'actool' does not create the Assets.car file if the asset
+    catalogs does not contains imageset.
+    """
+        command_line = [
+            "xcrun",
+            "actool",
+            "--output-format",
+            "human-readable-text",
+            "--compress-pngs",
+            "--notices",
+            "--warnings",
+            "--errors",
+        ]
+        is_iphone_target = "IPHONEOS_DEPLOYMENT_TARGET" in os.environ
+        if is_iphone_target:
+            platform = os.environ["CONFIGURATION"].split("-")[-1]
+            if platform not in ("iphoneos", "iphonesimulator"):
+                platform = "iphonesimulator"
+            command_line.extend(
+                [
+                    "--platform",
+                    platform,
+                    "--target-device",
+                    "iphone",
+                    "--target-device",
+                    "ipad",
+                    "--minimum-deployment-target",
+                    os.environ["IPHONEOS_DEPLOYMENT_TARGET"],
+                    "--compile",
+                    os.path.abspath(os.environ["CONTENTS_FOLDER_PATH"]),
+                ]
+            )
+        else:
+            command_line.extend(
+                [
+                    "--platform",
+                    "macosx",
+                    "--target-device",
+                    "mac",
+                    "--minimum-deployment-target",
+                    os.environ["MACOSX_DEPLOYMENT_TARGET"],
+                    "--compile",
+                    os.path.abspath(os.environ["UNLOCALIZED_RESOURCES_FOLDER_PATH"]),
+                ]
+            )
+        if keys:
+            keys = json.loads(keys)
+            for key, value in keys.items():
+                arg_name = "--" + key
+                if isinstance(value, bool):
+                    if value:
+                        command_line.append(arg_name)
+                elif isinstance(value, list):
+                    for v in value:
+                        command_line.append(arg_name)
+                        command_line.append(str(v))
+                else:
+                    command_line.append(arg_name)
+                    command_line.append(str(value))
+        # Note: actool crashes if inputs path are relative, so use os.path.abspath
+        # to get absolute path name for inputs.
+        command_line.extend(map(os.path.abspath, inputs))
+        subprocess.check_call(command_line)
+
+    def ExecMergeInfoPlist(self, output, *inputs):
+        """Merge multiple .plist files into a single .plist file."""
+        merged_plist = {}
+        for path in inputs:
+            plist = self._LoadPlistMaybeBinary(path)
+            self._MergePlist(merged_plist, plist)
+        plistlib.writePlist(merged_plist, output)
+
+    def ExecCodeSignBundle(self, key, entitlements, provisioning, path, preserve):
+        """Code sign a bundle.
+
+    This function tries to code sign an iOS bundle, following the same
+    algorithm as Xcode:
+      1. pick the provisioning profile that best match the bundle identifier,
+         and copy it into the bundle as embedded.mobileprovision,
+      2. copy Entitlements.plist from user or SDK next to the bundle,
+      3. code sign the bundle.
+    """
+        substitutions, overrides = self._InstallProvisioningProfile(
+            provisioning, self._GetCFBundleIdentifier()
+        )
+        entitlements_path = self._InstallEntitlements(
+            entitlements, substitutions, overrides
+        )
+
+        args = ["codesign", "--force", "--sign", key]
+        if preserve == "True":
+            args.extend(["--deep", "--preserve-metadata=identifier,entitlements"])
+        else:
+            args.extend(["--entitlements", entitlements_path])
+        args.extend(["--timestamp=none", path])
+        subprocess.check_call(args)
+
+    def _InstallProvisioningProfile(self, profile, bundle_identifier):
+        """Installs embedded.mobileprovision into the bundle.
+
+    Args:
+      profile: string, optional, short name of the .mobileprovision file
+        to use, if empty or the file is missing, the best file installed
+        will be used
+      bundle_identifier: string, value of CFBundleIdentifier from Info.plist
+
+    Returns:
+      A tuple containing two dictionary: variables substitutions and values
+      to overrides when generating the entitlements file.
+    """
+        source_path, provisioning_data, team_id = self._FindProvisioningProfile(
+            profile, bundle_identifier
+        )
+        target_path = os.path.join(
+            os.environ["BUILT_PRODUCTS_DIR"],
+            os.environ["CONTENTS_FOLDER_PATH"],
+            "embedded.mobileprovision",
+        )
+        shutil.copy2(source_path, target_path)
+        substitutions = self._GetSubstitutions(bundle_identifier, team_id + ".")
+        return substitutions, provisioning_data["Entitlements"]
+
+    def _FindProvisioningProfile(self, profile, bundle_identifier):
+        """Finds the .mobileprovision file to use for signing the bundle.
+
+    Checks all the installed provisioning profiles (or if the user specified
+    the PROVISIONING_PROFILE variable, only consult it) and select the most
+    specific that correspond to the bundle identifier.
+
+    Args:
+      profile: string, optional, short name of the .mobileprovision file
+        to use, if empty or the file is missing, the best file installed
+        will be used
+      bundle_identifier: string, value of CFBundleIdentifier from Info.plist
+
+    Returns:
+      A tuple of the path to the selected provisioning profile, the data of
+      the embedded plist in the provisioning profile and the team identifier
+      to use for code signing.
+
+    Raises:
+      SystemExit: if no .mobileprovision can be used to sign the bundle.
+    """
+        profiles_dir = os.path.join(
+            os.environ["HOME"], "Library", "MobileDevice", "Provisioning Profiles"
+        )
+        if not os.path.isdir(profiles_dir):
+            print(
+                "cannot find mobile provisioning for %s" % (bundle_identifier),
+                file=sys.stderr,
+            )
+            sys.exit(1)
+        provisioning_profiles = None
+        if profile:
+            profile_path = os.path.join(profiles_dir, profile + ".mobileprovision")
+            if os.path.exists(profile_path):
+                provisioning_profiles = [profile_path]
+        if not provisioning_profiles:
+            provisioning_profiles = glob.glob(
+                os.path.join(profiles_dir, "*.mobileprovision")
+            )
+        valid_provisioning_profiles = {}
+        for profile_path in provisioning_profiles:
+            profile_data = self._LoadProvisioningProfile(profile_path)
+            app_id_pattern = profile_data.get("Entitlements", {}).get(
+                "application-identifier", ""
+            )
+            for team_identifier in profile_data.get("TeamIdentifier", []):
+                app_id = "%s.%s" % (team_identifier, bundle_identifier)
+                if fnmatch.fnmatch(app_id, app_id_pattern):
+                    valid_provisioning_profiles[app_id_pattern] = (
+                        profile_path,
+                        profile_data,
+                        team_identifier,
+                    )
+        if not valid_provisioning_profiles:
+            print(
+                "cannot find mobile provisioning for %s" % (bundle_identifier),
+                file=sys.stderr,
+            )
+            sys.exit(1)
+        # If the user has multiple provisioning profiles installed that can be
+        # used for ${bundle_identifier}, pick the most specific one (ie. the
+        # provisioning profile whose pattern is the longest).
+        selected_key = max(valid_provisioning_profiles, key=lambda v: len(v))
+        return valid_provisioning_profiles[selected_key]
+
+    def _LoadProvisioningProfile(self, profile_path):
+        """Extracts the plist embedded in a provisioning profile.
+
+    Args:
+      profile_path: string, path to the .mobileprovision file
+
+    Returns:
+      Content of the plist embedded in the provisioning profile as a dictionary.
+    """
+        with tempfile.NamedTemporaryFile() as temp:
+            subprocess.check_call(
+                ["security", "cms", "-D", "-i", profile_path, "-o", temp.name]
+            )
+            return self._LoadPlistMaybeBinary(temp.name)
+
+    def _MergePlist(self, merged_plist, plist):
+        """Merge |plist| into |merged_plist|."""
+        for key, value in plist.items():
+            if isinstance(value, dict):
+                merged_value = merged_plist.get(key, {})
+                if isinstance(merged_value, dict):
+                    self._MergePlist(merged_value, value)
+                    merged_plist[key] = merged_value
+                else:
+                    merged_plist[key] = value
+            else:
+                merged_plist[key] = value
+
+    def _LoadPlistMaybeBinary(self, plist_path):
+        """Loads into a memory a plist possibly encoded in binary format.
+
+    This is a wrapper around plistlib.readPlist that tries to convert the
+    plist to the XML format if it can't be parsed (assuming that it is in
+    the binary format).
+
+    Args:
+      plist_path: string, path to a plist file, in XML or binary format
+
+    Returns:
+      Content of the plist as a dictionary.
+    """
+        try:
+            # First, try to read the file using plistlib that only supports XML,
+            # and if an exception is raised, convert a temporary copy to XML and
+            # load that copy.
+            return plistlib.readPlist(plist_path)
+        except Exception:
+            pass
+        with tempfile.NamedTemporaryFile() as temp:
+            shutil.copy2(plist_path, temp.name)
+            subprocess.check_call(["plutil", "-convert", "xml1", temp.name])
+            return plistlib.readPlist(temp.name)
+
+    def _GetSubstitutions(self, bundle_identifier, app_identifier_prefix):
+        """Constructs a dictionary of variable substitutions for Entitlements.plist.
+
+    Args:
+      bundle_identifier: string, value of CFBundleIdentifier from Info.plist
+      app_identifier_prefix: string, value for AppIdentifierPrefix
+
+    Returns:
+      Dictionary of substitutions to apply when generating Entitlements.plist.
+    """
+        return {
+            "CFBundleIdentifier": bundle_identifier,
+            "AppIdentifierPrefix": app_identifier_prefix,
+        }
+
+    def _GetCFBundleIdentifier(self):
+        """Extracts CFBundleIdentifier value from Info.plist in the bundle.
+
+    Returns:
+      Value of CFBundleIdentifier in the Info.plist located in the bundle.
+    """
+        info_plist_path = os.path.join(
+            os.environ["TARGET_BUILD_DIR"], os.environ["INFOPLIST_PATH"]
+        )
+        info_plist_data = self._LoadPlistMaybeBinary(info_plist_path)
+        return info_plist_data["CFBundleIdentifier"]
+
+    def _InstallEntitlements(self, entitlements, substitutions, overrides):
+        """Generates and install the ${BundleName}.xcent entitlements file.
+
+    Expands variables "$(variable)" pattern in the source entitlements file,
+    add extra entitlements defined in the .mobileprovision file and the copy
+    the generated plist to "${BundlePath}.xcent".
+
+    Args:
+      entitlements: string, optional, path to the Entitlements.plist template
+        to use, defaults to "${SDKROOT}/Entitlements.plist"
+      substitutions: dictionary, variable substitutions
+      overrides: dictionary, values to add to the entitlements
+
+    Returns:
+      Path to the generated entitlements file.
+    """
+        source_path = entitlements
+        target_path = os.path.join(
+            os.environ["BUILT_PRODUCTS_DIR"], os.environ["PRODUCT_NAME"] + ".xcent"
+        )
+        if not source_path:
+            source_path = os.path.join(os.environ["SDKROOT"], "Entitlements.plist")
+        shutil.copy2(source_path, target_path)
+        data = self._LoadPlistMaybeBinary(target_path)
+        data = self._ExpandVariables(data, substitutions)
+        if overrides:
+            for key in overrides:
+                if key not in data:
+                    data[key] = overrides[key]
+        plistlib.writePlist(data, target_path)
+        return target_path
+
+    def _ExpandVariables(self, data, substitutions):
+        """Expands variables "$(variable)" in data.
+
+    Args:
+      data: object, can be either string, list or dictionary
+      substitutions: dictionary, variable substitutions to perform
+
+    Returns:
+      Copy of data where each references to "$(variable)" has been replaced
+      by the corresponding value found in substitutions, or left intact if
+      the key was not found.
+    """
+        if isinstance(data, str):
+            for key, value in substitutions.items():
+                data = data.replace("$(%s)" % key, value)
+            return data
+        if isinstance(data, list):
+            return [self._ExpandVariables(v, substitutions) for v in data]
+        if isinstance(data, dict):
+            return {k: self._ExpandVariables(data[k], substitutions) for k in data}
+        return data
+
+
+def NextGreaterPowerOf2(x):
+    return 2 ** (x).bit_length()
+
+
+def WriteHmap(output_name, filelist):
+    """Generates a header map based on |filelist|.
+
+  Per Mark Mentovai:
+    A header map is structured essentially as a hash table, keyed by names used
+    in #includes, and providing pathnames to the actual files.
+
+  The implementation below and the comment above comes from inspecting:
+    http://www.opensource.apple.com/source/distcc/distcc-2503/distcc_dist/include_server/headermap.py?txt
+  while also looking at the implementation in clang in:
+    https://llvm.org/svn/llvm-project/cfe/trunk/lib/Lex/HeaderMap.cpp
+  """
+    magic = 1751998832
+    version = 1
+    _reserved = 0
+    count = len(filelist)
+    capacity = NextGreaterPowerOf2(count)
+    strings_offset = 24 + (12 * capacity)
+    max_value_length = max(len(value) for value in filelist.values())
+
+    out = open(output_name, "wb")
+    out.write(
+        struct.pack(
+            "<LHHLLLL",
+            magic,
+            version,
+            _reserved,
+            strings_offset,
+            count,
+            capacity,
+            max_value_length,
+        )
+    )
+
+    # Create empty hashmap buckets.
+    buckets = [None] * capacity
+    for file, path in filelist.items():
+        key = 0
+        for c in file:
+            key += ord(c.lower()) * 13
+
+        # Fill next empty bucket.
+        while buckets[key & capacity - 1] is not None:
+            key = key + 1
+        buckets[key & capacity - 1] = (file, path)
+
+    next_offset = 1
+    for bucket in buckets:
+        if bucket is None:
+            out.write(struct.pack("<LLL", 0, 0, 0))
+        else:
+            (file, path) = bucket
+            key_offset = next_offset
+            prefix_offset = key_offset + len(file) + 1
+            suffix_offset = prefix_offset + len(os.path.dirname(path) + os.sep) + 1
+            next_offset = suffix_offset + len(os.path.basename(path)) + 1
+            out.write(struct.pack("<LLL", key_offset, prefix_offset, suffix_offset))
+
+    # Pad byte since next offset starts at 1.
+    out.write(struct.pack("<x"))
+
+    for bucket in buckets:
+        if bucket is not None:
+            (file, path) = bucket
+            out.write(struct.pack("<%ds" % len(file), file))
+            out.write(struct.pack("<s", "\0"))
+            base = os.path.dirname(path) + os.sep
+            out.write(struct.pack("<%ds" % len(base), base))
+            out.write(struct.pack("<s", "\0"))
+            path = os.path.basename(path)
+            out.write(struct.pack("<%ds" % len(path), path))
+            out.write(struct.pack("<s", "\0"))
+
+
+if __name__ == "__main__":
+    sys.exit(main(sys.argv[1:]))
diff --git a/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/gifsicle b/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/gifsicle
index 00ce1dc..39597a6 100755
Binary files a/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/gifsicle and b/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/gifsicle differ
diff --git a/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/share/man/man1/gifsicle.1 b/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/share/man/man1/gifsicle.1
new file mode 100644
index 0000000..7f8eab5
--- /dev/null
+++ b/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/share/man/man1/gifsicle.1
@@ -0,0 +1,1318 @@
+.\" -*- mode: nroff -*-
+.ds V 1.90
+.ds E " \-\- 
+.if t .ds E \(em
+.de Op
+.BR "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
+..
+.de Oa
+.IR "\fB\\$1\& \|\fI\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
+..
+.de Qo
+.RB \(oq "\\$1" "\(cq\\$2"
+..
+.de Qa
+.BI "\fR\(oq\fB\\$1" " \\$2" " \\$3" " \\$4" "\fR\(cq\\$5"
+..
+.de Sp
+.if n .sp
+.if t .sp 0.4
+..
+.de Ix
+.TP 25
+\\$1
+.nh
+\\$2
+.hy
+..
+.de Es
+.Sp
+.RS 5
+.nf
+..
+.de Ee
+.fi
+.RE
+.PP
+..
+.de Xs
+.RS 5
+.nf
+..
+.de Xe
+.fi
+.RE
+..
+.TH GIFSICLE 1 "11 July 2017" "Version \*V"
+.SH NAME
+gifsicle \- manipulates GIF images and animations
+.SH SYNOPSIS
+.B gifsicle
+\%[options, frames, and filenames].\|.\|.
+'
+.SH DESCRIPTION
+.B gifsicle
+is a powerful command-line program for creating, editing, manipulating, and
+getting information about GIF images and animations.
+.PP
+.B Gifsicle
+normally processes input GIF files according to its command line
+options and writes the result to the standard output. The
+.Op \-i
+option, for example, tells
+.B gifsicle
+to interlace its inputs:
+.Es
+\fBgifsicle \-i < pic.gif > interlaced-pic.gif\fR
+.Ee
+.PP
+.B Gifsicle
+is good at creating and manipulating GIF animations. By default, it
+combines two or more input files into a \(lqflipbook\(rq animation:
+.Es
+\fBgifsicle pic1.gif pic2.gif pic3.gif > animation.gif\fR
+.Ee
+Use options like
+.Op \-\-delay ", " \-\-loopcount ", and " \-\-optimize
+to tune your animations.
+.PP
+To modify GIF files in place, use the
+.Op \-\-batch
+option. With
+.Op \-\-batch ,
+.B gifsicle
+will modify the files you specify instead of writing a new file to the
+standard output. To interlace all the GIFs in the current directory, you
+could say:
+.Es
+\fBgifsicle \-\-batch \-i *.gif
+.Ee
+.PP
+New users may want to skip to
+the Examples section at the end.
+'
+.SH CONCEPT INDEX
+'
+Concepts are on the left, relevant
+.B gifsicle
+options are on the right.
+'
+.Sp
+.PD 0
+.Ix "Animations, changing" "frame selections, frame changes, etc."
+.Ix "\ \ \ disposal" "\fB\-\-disposal\fP"
+.Ix "\ \ \ looping" "\fB\-\-loopcount\fP"
+.Ix "\ \ \ portions of" "frame selections"
+.Ix "\ \ \ smaller" "\fB\-\-optimize\fP, \fB\-\-colors\fP"
+.Ix "\ \ \ speed" "\fB\-\-delay\fP"
+.Ix "Bad output" "\fB\-\-careful\fP"
+.Ix "Background color" "\fB\-\-background\fP"
+.Ix "Colors, changing" "\fB\-\-change\-color\fP, \fB\-\-use\-colormap\fP, \fB\-\-dither\fP, \fB\-\-transform\-colormap\fP"
+.Ix "\ \ \ reducing number" "\fB\-\-colors\fP, \fB\-\-dither\fP, \fB\-\-gamma\fP"
+.Ix "Comments" "\fB\-\-comment\fP"
+.Ix "Extensions" "\fB\-\-extension\fP, \fB\-\-app\-extension\fP, \fB\-\-extension\-info\fP"
+.Ix "File size" "\fB\-\-optimize\fP, \fB\-\-unoptimize\fP, \fB\-\-colors\fP"
+.TP 30
+Image transformations
+.Ix "\ \ \ cropping" "\fB\-\-crop\fP, \fB\-\-crop\-transparency\fP"
+.Ix "\ \ \ flipping" "\fB\-\-flip\-*\fP"
+.Ix "\ \ \ resizing" "\fB\-\-resize\fP, \fB\-\-scale\fP"
+.Ix "\ \ \ rotating" "\fB\-\-rotate\-*\fP"
+.Ix "Grayscale" "\fB\-\-use\-colormap\fP"
+.Ix "Interlacing" "\fB\-\-interlace\fP"
+.Ix "Positioning frames" "\fB\-\-position\fP"
+.Ix "Screen, logical" "\fB\-\-logical\-screen\fP"
+.Ix "Selecting frames" "frame selections (like \fB'#0'\fP)"
+.Ix "Transparency" "\fB\-\-transparent\fP"
+.Ix "Warnings" "\fB\-\-no\-warnings\fP"
+.PD
+'
+.SH COMMAND LINE
+
+.BR gifsicle 's
+command line consists of GIF input files and options. Most options start
+with a dash (\-) or plus (+); frame selections, a kind of option, start
+with a number sign (#). Anything else is a GIF input file.
+.PP
+.B gifsicle
+reads and processes GIF input files in order. If no GIF input file is
+given, or you give the special filename \(oq\-\(cq,
+it reads from the standard input.
+.PP
+.B gifsicle
+exits with status 0 if there were no errors and status 1 otherwise.
+'
+.SH OPTIONS
+
+Every option has a long form,
+.Qo \-\-long\-descriptive\-name .
+You don't need to type the whole long descriptive name, just enough to
+make it unambiguous.
+.PP
+Some options also have a short form,
+.Qo \-X .
+You can combine short options if they don't take arguments:
+.Qo \-IIb
+is the same as
+.Qo "\-I \-I \-b" .
+But be careful with options that do take arguments:
+.Qo \-cblah
+means
+.Qo "\-c \fRblah" ,
+not
+.Qo "\-c \-b \-l \-a \-h" .
+.PP
+Many options also have a converse,
+.Qo \-\-no\-option ,
+which turns off the option. You can turn off a short option
+.Qo \-X
+by saying
+.Qo \+X
+instead.
+'
+.\" -----------------------------------------------------------------
+.SS Mode Options
+
+Mode options tell
+.B gifsicle
+what kind of output to generate. There can be at most one, and it must
+precede any GIF inputs.
+.TP 5
+.Op "\-\-merge" ", " "\-m"
+'
+Combine all GIF inputs into one file with multiple frames and write that
+file to the standard output. This is the default mode.
+'
+.TP
+.Op \-\-batch ", " \-b
+'
+Modify each GIF input in place by reading and writing to the same filename.
+(GIFs read from the standard input are written to the standard output.)
+'
+.TP
+.Op \-\-explode ", " \-e
+'
+Create an output GIF for each frame of each input file. The output GIFs are
+named \(oqxxx.000\(cq, \(oqxxx.001\(cq, and so on, where \(oqxxx\(cq is the name of the input
+file (or whatever you specified with
+.Qo \-\-output )
+and the numeric extension is the frame number.
+'
+.TP
+.Op \-\-explode\-by\-name ", " \-E
+'
+Same as
+.Op \-\-explode ","
+but write any named frames to files \(oqxxx.\fIname\fR\(cq instead of
+\(oqxxx.\fIframe-number\fR\(cq.  Frames are named using the
+.Qo \-\-name
+option.
+'
+.\" -----------------------------------------------------------------
+.SS General Options
+
+General options control the information
+.B gifsicle
+prints and where it writes its output. The info options and
+.Op \-\-verbose
+can be turned off with
+.Qo \-\-no\-X .
+'
+.Sp
+.PD 0
+.TP 5
+.Op \-\-info ", " \-I
+'
+Print a human-readable description of each input GIF to the standard
+output, or whatever file you specify with
+.Op \-o .
+This option suppresses normal output, and cannot be combined with mode
+options like
+.Op \-\-batch .
+If you give two
+.Op \-\-info
+or
+.Op \-I
+options, however, information is printed to standard error, and normal
+output takes place as usual.
+'
+.Sp
+.TP 5
+.Op \-\-color\-info ", " \-\-cinfo
+'
+Like
+.Op \%\-\-info ,
+but also print information about input files' colormaps.
+'
+.Sp
+.TP 5
+.Op \-\-extension\-info ", " \-\-xinfo
+'
+Like
+.Op \%\-\-info ,
+but also print any unrecognized GIF extensions in a
+.BR hexdump (1)-like
+format.
+'
+.Sp
+.TP 5
+.Op \-\-size\-info ", " \-\-sinfo
+'
+Like
+.Op \%\-\-info ,
+but also print information about compressed image sizes.
+'
+.Sp
+.TP 5
+.Op \-\-help ", " \-h
+'
+Print usage information and exit.
+'
+.Sp
+.TP
+.Oa \-o file
+.TP
+.Oa \-\-output file
+'
+Send output to
+.IR file .
+The special filename \(oq-\(cq means the standard output.
+'
+.Sp
+.TP
+.Op \-\-verbose ", " \-V
+'
+Print progress information (files read and written) to standard
+error.
+'
+.Sp
+.TP
+.Op \-\-no\-warnings ", " \-w
+'
+Suppress all warning messages.
+'
+.Sp
+.TP
+.Op \-\-no\-ignore\-errors
+'
+Exit with status 1 when encountering a very erroneous GIF. Default is to
+muddle on.
+'
+.Sp
+.TP
+.Op \-\-version
+'
+Print the version number and some short non-warranty information and exit.
+'
+.Sp
+.PD 0
+.TP 5
+.Op \-\-careful
+'
+Write slightly larger GIFs that avoid bugs in some other GIF
+implementations. Some Java and Internet Explorer versions cannot display
+the correct, minimal GIFs that Gifsicle produces. Use the
+.Op \-\-careful
+option if you are having problems with a particular image.
+'
+.Sp
+.TP
+.Op \-\-conserve\-memory
+'
+Conserve memory usage at the expense of processing time. This may be useful
+if you are processing large GIFs on a computer without very much memory. Or
+say
+.Op \-\-no\-conserve\-memory .
+'
+.Sp
+.TP
+.Op \-\-nextfile
+'
+Allow input files to contain multiple concatenated GIF images. If a
+filename appears multiple times on the command line, \fBgifsicle\fR will
+read a new image from the file each time. This option can help scripts
+avoid the need for temporary files. For example, to create an animated GIF
+with three frames with different delays, you might run "\fBgifsicle
+\-\-nextfile \-d10 \- \-d20 \- \-d30 \- > out.gif\fR" and write the three
+GIF images, in sequence, to \fBgifsicle\fR's standard input.
+'
+.Sp
+.TP
+.Op \-\-multifile
+'
+Like
+.Op \-\-nextfile ,
+but read
+.I as many GIF images as possible
+from each file. This option is intended for scripts. For example, to merge
+an unknown number of GIF images into a single animation, run "\fBgifsicle
+\-\-multifile \- > out.gif\fR" and write the GIF images, in sequence, to
+\fBgifsicle\fR's standard input.  Any frame selections apply only to the
+last file in the concatenation.
+'
+.PD
+'
+.\" -----------------------------------------------------------------
+.SS Frame Selections
+
+A frame selection tells
+.B gifsicle
+which frames to use from the current input file. They are useful only for
+animations, as non-animated GIFs only have one frame. Here are the
+acceptable forms for frame specifications.
+.Sp
+.PD 0
+.TP 13
+.BI # num
+'
+Select frame \fInum\fR. (The first frame is
+.Qo #0 .
+Negative numbers count backwards from the last frame, which is
+.Qo #-1 .)
+'
+.TP 13
+.BI # num1 \- num2
+'
+Select frames \fInum1\fR through \fInum2\fR.
+'
+.TP 13
+.BI # num1 \-
+'
+Select frames \fInum1\fR through the last frame.
+'
+.TP 13
+.BI # name
+'
+Select the frame named \fIname\fR.
+.PD
+.PP
+The \(oq#\(cq character has special meaning for many shells, so you generally
+need to quote it.
+.PP
+For example,
+.Xs
+\fBgifsicle happy.gif "#0"\fR
+.Xe
+uses the first frame from happy.gif;
+.Xs
+\fBgifsicle happy.gif "#0-2"\fR
+.Xe
+uses its first three frames; and
+.Xs
+\fBgifsicle happy.gif "#-1-0"\fR
+.Xe
+uses its frames in reverse order (starting from frame #-1\*Ethe
+last frame\*Eand ending at frame #0\*Ethe first).
+.PP
+The action performed with the selected frames depends on the current
+mode. In merge mode, only the selected frames are merged into the output
+GIF. In batch mode, only the selected frames are modified; other frames
+remain unchanged. In explode mode, only the selected frames are exploded
+into output GIFs.
+'
+.\" -----------------------------------------------------------------
+.SS Frame Change Options
+
+Frame change options insert new frames into an animation or replace or
+delete frames that already exist. Some things\*Efor example, changing one
+frame in an animation\*Eare difficult to express with frame selections, but
+easy with frame changes.
+'
+.TP 5
+.Oa \-\-delete frames " [" frames ".\|.\|.]"
+'
+Delete
+.I frames
+from the input GIF.
+'
+.TP
+.Oa \-\-insert\-before "frame other-GIFs"
+'
+Insert
+.I other-GIFs
+before
+.I frame
+in the input GIF.
+'
+.TP
+.Oa \-\-append "other-GIFs"
+'
+Append
+.I other-GIFs
+to the input GIF.
+'
+.TP
+.Oa \-\-replace "frames other-GIFs"
+'
+Replace
+.I frames
+from the input GIF with
+.IR other-GIFs .
+'
+.TP
+\fB\-\-done\fR
+'
+Complete the current set of frame changes.
+'
+.PP
+The
+.I frames
+arguments are frame selections (see above). These arguments always refer to
+frames from the
+.I original
+input GIF. So, if \(oqa.gif\(cq has 3 frames and \(oqb.gif\(cq has one, this
+command
+.Xs
+\fBgifsicle a.gif \-\-delete "#0" \-\-replace "#2" b.gif\fR
+.Xe
+will produce an output animation with 2 frames: \(oqa.gif\(cq frame 1, then
+\(oqb.gif\(cq.
+.PP
+The
+.I other-GIFs
+arguments are any number of GIF input files and frame selections.
+These images are combined in merge mode and added to the input GIF.
+The
+.I other-GIFs
+last until the next frame change option, so this command replaces the
+first frame of \(oqin.gif\(cq with the merge of \(oqa.gif\(cq and \(oqb.gif\(cq:
+.Xs
+\fBgifsicle \-b in.gif \-\-replace "#0" a.gif b.gif\fR
+.Xe
+.PP
+This command, however, replaces the first frame of \(oqin.gif\(cq with
+\(oqa.gif\(cq and then processes \(oqb.gif\(cq separately:
+.Xs
+\fBgifsicle \-b in.gif \-\-replace "#0" a.gif \-\-done b.gif\fR
+.Xe
+.PP
+Warning: You shouldn't use both frame selections and frame changes on
+the same input GIF.
+'
+.\" -----------------------------------------------------------------
+.SS Image Options
+
+Image options modify input images\*Eby changing their interlacing,
+transparency, and cropping, for example. Image options have three forms:
+.Qo \-\-X ,
+.Qo \-\-no\-X ,
+and
+.Qo \-\-same\-X .
+The
+.Qo \-\-X
+form selects a value for the feature, the
+.Qo \-\-no\-X
+form turns off the feature, and the
+.Qo \-\-same\-X
+form means that the feature's value is copied from each input. The default
+is always
+.Qo \-\-same\-X .
+For example,
+.Op \-background= """#0000FF"""
+sets the background color to blue,
+.Op \-\-no\-background
+turns the background color off (by setting it to 0), and
+.Op \-\-same\-background
+uses input images' existing background colors. You can give each option
+multiple times; for example,
+.Xs
+\fBgifsicle \-b \-O2 \-i a.gif \-\-same\-interlace b.gif c.gif\fR
+.Xe
+will make \(oqa.gif\(cq interlaced, but leave \(oqb.gif\(cq and \(oqc.gif\(cq interlaced only
+if they were already.
+'
+.Sp
+.PD 0
+.TP 5
+.Oa \-B color
+.TP
+.Oa \-\-background color
+'
+Set the output GIF's background to
+.IR color .
+The argument can have the same forms as in the
+.Op \-\-transparent
+option below.
+'
+.Sp
+.TP
+.Oa \-\-crop x1 , y1 - x2\fR,\fIy2
+.TP
+.Oa \-\-crop x1 , y1 + width\fRx\fIheight
+'
+Crop the following input frames to a smaller rectangular area. The top-left
+corner of this rectangle is
+.RI ( x1 , y1 );
+you can give either the lower-right corner,
+.RI ( x2 , y2 ),
+or the width and height of the rectangle. In the
+.IR x1 , y1 + width x height
+form,
+.I width
+and
+.I height
+can be zero or negative. A zero dimension means the cropping area goes to
+the edge of the image; a negative dimension brings the cropping area that
+many pixels back from the image edge. For example,
+.Op \-\-crop " 2,2+-2x-2"
+will shave 2 pixels off each side of the input image. Cropping takes place
+before any rotation, flipping, resizing, or positioning.
+'
+.Sp
+.TP
+.Op \-\-crop\-transparency
+'
+Crop any transparent borders off the following input frames. This happens
+after any cropping due to the
+.Op \-\-crop
+option. It works on the raw input images; for example, any transparency
+options have not yet been applied.
+'
+.Sp
+.TP
+.Op \-\-flip\-horizontal
+.TP
+.Op \-\-flip\-vertical
+'
+Flip the following frames horizontally or vertically.
+'
+.Sp
+.TP
+.Op \-i
+.TP
+.Op \-\-interlace
+'
+Turn interlacing on.
+'
+.Sp
+.TP
+.Oa \-S width x height
+.TP
+.Oa \-\-logical\-screen width x height
+'
+Set the output logical screen to
+.IR width x height .
+.Op \-\-no\-logical\-screen
+sets the output logical screen to the size of the largest output
+frame, while
+.Op \-\-same\-logical\-screen
+sets the output logical screen to the largest input logical screen.
+.Op \-\-screen
+is a synonym for
+.Op \-\-logical\-screen .
+'
+.Sp
+.TP
+.Oa \-p x\fR,\fIy
+.TP
+.Oa \-\-position x\fR,\fIy
+'
+Set the following frames' positions to
+.RI ( x , y ).
+.Op \-\-no\-position
+means
+.Op \-\-position " 0,0."
+Normally,
+.Oa \-\-position x\fR,\fIy
+places every succeeding frame exactly at \fIx\fR,\fIy\fR. However, if an
+entire animation is input, \fIx\fR,\fIy\fR is treated as the position for
+the animation.
+'
+.Sp
+.TP
+.Op \-\-rotate\-90
+.TP
+.Op \-\-rotate\-180
+.TP
+.Op \-\-rotate\-270
+'
+Rotate the following frames by 90, 180, or 270 degrees.
+.Op \-\-no\-rotate
+turns off any rotation.
+'
+.Sp
+.TP
+.Oa \-t color
+.TP
+.Oa \-\-transparent color
+'
+Make
+.I color
+transparent in the following frames.
+.I Color
+can be a colormap index (0\-255), a hexadecimal color specification
+(like "#FF00FF" for magenta), or slash- or comma-separated red, green
+and blue values (each between 0 and 255).
+.PD
+'
+.\" -----------------------------------------------------------------
+.SS Extension Options
+
+Extension options add non-visual information to the output GIF. This
+includes names, comments, and generic extensions.
+'
+.Sp
+.PD 0
+.TP 5
+.Oa \-\-app\-extension app\-name " " extension
+'
+Add an application extension named
+.I app\-name
+and with the value
+.I extension
+to the output GIF.
+.Op \-\-no\-app\-extensions
+removes application extensions from the input images.
+'
+.Sp
+.TP
+.Oa \-c text
+.TP
+.Oa \-\-comment text
+'
+Add a comment,
+.IR text ,
+to the output GIF. The comment will be placed before the next frame in
+the stream.
+.Op \-\-no\-comments
+removes comments from the input images.
+'
+.Sp
+.TP
+.Oa \-\-extension number " " extension
+'
+Add an extension numbered
+.I number
+and with the value
+.I extension
+to the output GIF.
+.I Number
+can be in decimal, octal, hex, or it can be a single character like \(oqn\(cq,
+whose ASCII value is used.
+.Op \-\-no\-extensions
+(or
+.Op +x )
+removes extensions from the input images.
+'
+.Sp
+.TP
+.Oa \-n text
+.TP
+.Oa \-\-name text
+'
+Set the next frame's name to
+.IR text .
+This name is stored as an extension in the output GIF (extension number
+0xCE, followed by the characters of the frame name).
+.Op \-\-no\-names
+removes name extensions from the input images.
+'
+.PD
+'
+.\" -----------------------------------------------------------------
+.SS Animation Options
+
+Animation options apply to GIF animations, or to individual frames in GIF
+animations. As with image options, most animation options have three forms,
+.Qo \-\-X ,
+.Qo \-\-no\-X ,
+and
+.Qo \-\-same\-X ,
+and you can give animation options multiple times; for example,
+.Xs
+\fBgifsicle \-b a.gif \-d50 "#0" "#1" \-d100 "#2" "#3"\fR
+.Xe
+sets the delays of frames 0 and 1 to 50, and frames 2 and 3 to 100.
+'
+.Sp
+.PD 0
+.TP 5
+.Oa \-d time
+.TP
+.Oa \-\-delay time
+'
+Set the delay between frames to
+.IR time
+in hundredths of a second.
+'
+.Sp
+.TP
+.Oa \-D method
+.TP
+.Oa \-\-disposal method
+'
+Set the disposal method for the following frames to
+.IR method .
+A frame's disposal method determines how a viewer should remove the frame
+when it's time to display the next.
+.I Method
+can be a number between 0 and 7 (although only 0 through 3 are
+generally meaningful), or one of these names:
+.BR none
+(leave the frame visible for future frames to build upon),
+.BR asis
+(same as "none"),
+.BR background " (or " bg ")"
+(replace the frame with the background), or
+.BR previous
+(replace the frame with the area from the previous displayed frame).
+.Op \-\-no\-disposal
+means
+.Op \-\-disposal = none .
+'
+.Sp
+.TP
+.Op \-l "[\fIcount\fR]"
+.TP
+.Op \-\-loopcount "[=\fIcount\fR]"
+'
+Set the Netscape loop extension to
+.IR count .
+.I Count
+is an integer, or
+.B forever
+to loop endlessly. If you supply a
+.Op \-\-loopcount
+option without specifying
+.IR count ,
+Gifsicle will use
+.BR forever .
+.Op \-\-no\-loopcount
+(the default) turns off looping.
+.Sp
+Set the loop count to one less than the number of times you want the
+animation to run. An animation with
+.Op \-\-no\-loopcount
+will show every frame once;
+.Op \-\-loopcount =1
+will loop once, thus showing every frame twice; and so forth.
+Note that
+.Op \-\-loopcount =0
+is equivalent to
+.Op \-\-loopcount =forever,
+not
+.Op \-\-no\-loopcount .
+'
+.Sp
+.TP
+.Op \-O "[\fIlevel\fR]"
+.TP
+.Op \-\-optimize "[=\fIlevel\fR]"
+'
+Optimize output GIF animations for space.
+.I Level
+determines how much optimization is done; higher levels take longer, but
+may have better results. There are currently three levels:
+.Sp
+.RS
+.TP 5
+.Op \-O1
+Stores only the changed portion of each image. This is the default.
+.TP 5
+.Op \-O2
+Also uses transparency to shrink the file further.
+.TP 5
+.Op \-O3
+Try several optimization methods (usually slower, sometimes better results).
+.Sp
+.PP
+Other optimization flags provide finer-grained control.
+.Sp
+.TP 5
+.Op \-Okeep-empty
+Preserve empty transparent frames (they are dropped by default).
+.Sp
+.PP
+You may also be interested in other options for shrinking GIFs, such as
+.Op \-k
+and
+.Op \-\-no\-extensions .
+.RE
+'
+.Sp
+.TP 5
+.Oa \-U
+.TP
+.Oa \-\-unoptimize
+'
+Unoptimize GIF animations into an easy-to-edit form.
+.Sp
+GIF animations are often optimized (see
+.Op \-\-optimize )
+to make them smaller and faster to load, which unfortunately makes them
+difficult to edit.
+.Op \-\-unoptimize
+changes optimized input GIFs into unoptimized GIFs, where each frame is a
+faithful representation of what a user would see at that point in the
+animation.
+.RE
+'
+.PD
+'
+.\" -----------------------------------------------------------------
+.SS Image Transformation Options
+'
+Image transformation options apply to entire GIFs as they are read or
+written. They can be turned off with
+.Qo \-\-no\-option .
+'
+.Sp
+.PD 0
+.TP 5
+.Oa \-\-resize width x height
+'
+Resize the output GIF to the given
+.IR width " and " height .
+If
+.I width
+or
+.I height
+is an underscore \(oq_\(cq, that dimension is chosen so that the
+aspect ratio remains unchanged.
+Resizing happens after all input frames have been combined and before
+optimization. Resizing uses logical screen dimensions; if
+the input stream has an unusual logical screen (many GIF displayers ignore
+logical screens), you may want to provide
+.Op \-\-no\-logical\-screen
+(or
+.Op +S )
+to reset it so
+.B gifsicle
+uses image dimensions instead. See also
+.Op \-\-resize\-method .
+'
+.Sp
+.TP
+.Oa \-\-resize\-width width
+.TP
+.Oa \-\-resize\-height height
+'
+Resize to a given width or height, preserving aspect ratio. Equivalent to
+.Oa \-\-resize width x_
+or
+.Oa \-\-resize "" _x height .
+'
+.Sp
+.TP
+.Oa \-\-resize\-fit width x height
+.TP
+.Oa \-\-resize\-touch width x height
+'
+Resize the output GIF to fit within a rectangle with dimensions
+.IR width x height .
+The aspect ratio remains unchanged. The
+.Op \-\-resize\-fit
+option only shrinks the image\(emno resize is performed if the GIF already
+fits within the rectangle. Either
+.I width
+or
+.I height
+may be an underscore \(oq_\(cq, which leaves that dimension unconstrained.
+'
+.Sp
+.TP
+.Oa \-\-resize\-fit\-width width
+.TP
+.Oa \-\-resize\-fit\-height height
+.TP
+.Oa \-\-resize\-touch\-width width
+.TP
+.Oa \-\-resize\-touch\-height height
+'
+Like
+.Oa \-\-resize\-fit
+and
+.Op \-\-resize\-touch ,
+but constrains only one dimension.
+'
+.Sp
+.TP
+.Oa \-\-scale Xfactor [x Yfactor ]
+'
+Scale the output GIF's width and height by
+.IR Xfactor " and " Yfactor .
+If
+.I Yfactor
+is not given, it defaults to
+.IR Xfactor .
+Scaling happens after all input frames have been combined and before
+optimization.
+'
+.Sp
+.TP
+.Oa \-\-resize\-method method
+'
+Set the method used to resize images. The \(oqsample\(cq method runs
+very quickly, but when shrinking images, it produces noisy results.
+The \(oqmix\(cq method is somewhat slower, but produces better-looking
+results. The default method is
+currently \(oqmix\(cq.
+.RS
+.Sp
+.PP
+Details: The resize methods differ most when shrinking images. The
+\(oqsample\(cq method is a point sampler: each pixel position in the
+output image maps to exactly one pixel position in the input. When
+shrinking, full rows and columns from the input are dropped. The other
+methods use all input pixels, which generally produces better-looking
+images. The \(oqbox\(cq method, a box sampler, is faster than the more
+complex filters and produces somewhat sharper results, but there will
+be anomalies when shrinking images by a small amount in one dimension.
+(Some output pixels will correspond to exactly 1 input row or column,
+while others will correspond to exactly 2 input rows or columns.) The
+\(oqmix\(cq method is a full bilinear interpolator. This is slower and
+produces somewhat blurrier results, but avoids anomalies.
+.Sp
+.PP
+Gifsicle also supports more complex resamplers, including
+Catmull-Rom cubic resampling (\(oqcatrom\(cq), the Mitchell-Netravali
+filter (\(oqmitchell\(cq), a 2-lobed Lanczos filter
+(\(oqlanczos2\(cq), and a 3-lobed Lanczos filter (\(oqlanczos3\(cq).
+These filters are slower still, but can give sharper, better results.
+.RE
+'
+.Sp
+.TP
+.Oa \-\-resize\-colors n
+'
+Allow Gifsicle to add intermediate colors when resizing images.
+Normally, Gifsicle's resize algorithms use input images' color
+palettes without changes. When shrinking images with very few colors
+(e.g., pure black-and-white images), adding intermediate colors can
+improve the results. Example:
+.Oa \-\-resize\-colors 64
+allows Gifsicle to add intermediate colors for images that have fewer
+than 64 input colors.
+.PD
+'
+.\" -----------------------------------------------------------------
+.SS Color Options
+'
+Color options apply to entire GIFs as they are read or
+written. They can be turned off with
+.Qo \-\-no\-option .
+.Sp
+.PD 0
+.TP 5
+.Oa \-k num
+.TP
+.Oa \-\-colors num
+'
+Reduce the number of distinct colors in each output GIF to
+.I num
+or less.
+.I Num
+must be between 2 and 256. This can be used to shrink output GIFs or
+eliminate any local color tables.
+.Sp
+Normally, an adaptive group of colors is chosen from the existing
+color table. You can affect this process with the
+.Op \-\-color\-method
+option or by giving your own colormap with
+.Op \-\-use\-colormap .
+Gifsicle may need to add an additional color (making
+.IR num +1
+in all) if there is transparency in the image.
+'
+.Sp
+.TP
+.Oa \-\-color\-method method
+'
+Determine how a smaller colormap is chosen.
+.RB \(oq diversity \(cq,
+the default, is
+.BR xv (1)'s
+diversity algorithm, which uses a strict subset of the existing colors
+and generally produces good results.
+.RB \(oq blend\-diversity \(cq
+is a modification of this: some color values are blended from groups of
+existing colors.
+.RB \(oq median\-cut \(cq
+is the median cut algorithm described by Heckbert.
+.Op \-\-method
+is a synonym for
+.Op \-\-color\-method .
+'
+.Sp
+.TP 5
+.Oa \-f
+.TP
+.Op \-\-dither "[=\fImethod\fR]"
+'
+When
+.Op \-\-dither
+is on and the colormap is changed, combinations of colors are used to
+approximate missing colors. This looks better, but makes bigger files
+and can cause animation artifacts, so it is off by default.
+.Sp
+Specify a dithering algorithm with the optional \fImethod\fR argument.
+The default,
+.RB \(oq floyd-steinberg \(cq,
+uses Floyd-Steinberg error
+diffusion. This usually looks best, but can cause animation artifacts,
+because dithering choices will vary from frame to frame. Gifsicle also
+supports ordered dithering algorithms that avoid animation artifacts.
+The
+.RB \(oq ro64 \(cq
+mode uses a
+large, random-looking pattern and generally produces good results. The
+.RB \(oq o3 \(cq,
+.RB \(oq o4 \(cq,
+and
+.RB \(oq o8 \(cq
+modes use smaller, more
+regular patterns. The
+.RB \(oq ordered \(cq
+mode chooses a good ordered
+dithering algorithm. For special effects, try the halftone modes
+.RB \(oq halftone \(cq,
+.RB \(oq squarehalftone \(cq,
+and
+.RB \(oq diagonal \(cq.
+Some modes take optional parameters using commas. The halftone modes
+take a cell size and a color limit:
+.RB \(oq halftone,10,3 \(cq
+creates 10-pixel wide halftone cells where each cell uses up to 3
+colors.
+'
+.Sp
+.TP 5
+.Oa \-\-gamma gamma
+'
+Set the gamma correction to
+.IR gamma ,
+which can be a real number or
+.RB \(oq srgb \(cq.
+Roughly speaking, higher
+numbers exaggerate shadows and lower numbers exaggerate highlights.
+The default is the function defined by the standard sRGB color space,
+which usually works well. (Its effects are similar to
+\fB\-\-gamma\fP=2.2.) Gifsicle uses gamma correction when choosing a
+color palette (\fB\-\-colors\fP) and when dithering
+(\fB\-\-dither\fP).
+'
+.Sp
+.PD 0
+.TP
+.Oa \-\-change\-color color1 " " color2
+'
+Change
+.I color1
+to
+.I color2
+in the following input GIFs. (The
+.I color
+arguments have the same forms as in the
+.Op \-t
+option.) Change multiple colors by giving the option multiple
+times. Color changes don't interfere with one another, so you can safely
+swap two colors with
+.Qa \-\-change\-color "color1 color2" \-\-change\-color "color2 color1" .
+They all take effect as an input GIF is read.
+.Op \-\-no\-change\-color
+cancels all color changes.
+'
+.Sp
+.TP
+.Oa \-\-transform\-colormap command
+'
+.I Command
+should be a shell command that reads from standard input and writes to
+standard output. Each colormap in the output GIF is translated into text
+colormap format (see
+.Op \-\-use\-colormap
+below) and piped to the command. The output that command generates
+(which should also be in text colormap format) will replace the input
+colormap. The replacement doesn't consider color matching, so pixels
+that used color slot
+.I n
+in the input will still use color slot
+.I n
+in the output.
+'
+.Sp
+.TP
+.Oa \-\-use\-colormap colormap
+'
+Change the image to use
+.IR colormap .
+Each pixel in the image is changed to the closest match in
+.I colormap
+(or, if
+.Op \-\-dither
+is on, to a dithered combination of colors in
+.IR colormap ")."
+.I Colormap
+can be
+.BR web
+for the 216-color \(lqWeb-safe palette\(rq;
+.BR gray
+for grayscale;
+.BR bw
+for black-and-white; or the name of a file. That file should either be a
+text file (the format is described below) or a GIF file, whose global
+colormap will be used. If
+.Op \-\-colors\fR=\fIN
+is also given, an
+.IR N \-sized
+subset of
+.I colormap
+will be used.
+.Sp
+Text colormap files use this format:
+.Es
+; each non-comment line represents one color, "red green blue"
+; each component should be between 0 and 255
+0 0 0            ; like this
+255 255 255
+; or use web hex notation
+#ffffff          ; like this
+.Ee
+'
+.PD
+.PP
+.br
+'
+.SH EXAMPLES
+'
+First, let's create an animation, \(oqanim.gif\(cq:
+.Es
+\fBgifsicle a.gif b.gif c.gif d.gif > anim.gif\fR
+.Ee
+This animation will move very quickly: since we didn't specify a delay, a
+browser will cycle through the frames as fast as it can. Let's slow it down
+and pause .5 seconds between frames, using the
+.Op \-\-delay
+option.
+.Es
+\fBgifsicle \-\-delay 50 a.gif b.gif c.gif d.gif > anim.gif\fR
+.Ee
+If we also want the GIF to loop three times, we can use
+.Op \-\-loopcount :
+.Es
+\fBgifsicle \-d 50 \-\-loop=3 a.gif b.gif c.gif d.gif > anim.gif\fR
+.Ee
+(Rather than type
+.Op \-\-delay
+again, we used its short form,
+.Op \-d .
+Many options have short forms; you can see them by running
+.RB \(oq "gifsicle \-\-help" \(cq.
+We also abbreviated
+.Op \-\-loopcount
+to
+.Op \-\-loop ,
+which is OK since no other option starts with \(oqloop\(cq.)
+.PP
+To explode \(oqanim.gif\(cq into its component frames:
+.Es
+\fBgifsicle \-\-explode anim.gif\fR
+.br
+\fBls anim.gif*\fR
+.br
+anim.gif  anim.gif.000  anim.gif.001  anim.gif.002  anim.gif.003
+.Ee
+To optimize \(oqanim.gif\(cq:
+.Es
+\fBgifsicle \-b \-O2 anim.gif\fR
+.Ee
+To change the second frame of \(oqanim.gif\(cq to \(oqx.gif\(cq:
+.Es
+\fBgifsicle \-b \-\-unoptimize \-O2 anim.gif \-\-replace "#1" x.gif\fR
+.Ee
+.Op \-\-unoptimize
+is used since \(oqanim.gif\(cq was optimized in the last step. Editing
+individual frames in optimized GIFs is dangerous without
+.Op \-\-unoptimize ;
+frames following the changed frame could be corrupted by the change.
+Of course, this might be what you want.
+.PP
+Note that
+.Op \-\-unoptimize
+and
+.Op \-\-optimize
+can be on simultaneously.
+.Op \-\-unoptimize
+affects
+.I input
+GIF files, while
+.Op \-\-optimize
+affects
+.I output
+GIF files.
+.PP
+To print information about the first and fourth frames of \(oqanim.gif\(cq:
+.Es
+\fBgifsicle \-I "#0" "#3" < anim.gif\fR
+.Ee
+To make black the transparent color in all the GIFs in the current
+directory, and also print information about each:
+.Es
+\fBgifsicle \-bII \-\-trans "#000000" *.gif\fR
+.Ee
+Giving
+.Op \-I
+twice forces normal output to occur. With only one
+.Op \-I ,
+the GIFs would not be modified.
+.PP
+To change \(oqanim.gif\(cq to use a 64-color subset of the Web-safe palette:
+.Es
+\fBgifsicle \-b \-\-colors=64 \-\-use\-col=web anim.gif\fR
+.Ee
+To make a dithered black-and-white version of \(oqanim.gif\(cq:
+.Es
+\fBgifsicle \-\-dither \-\-use\-col=bw anim.gif > anim-bw.gif\fR
+.Ee
+.PP
+To overlay one GIF atop another\*Eproducing a one-frame output GIF that
+looks like the superposition of the two inputs\*Euse
+.B gifsicle
+twice:
+.Es
+\fBgifsicle bottom.gif top.gif | gifsicle \-U "#1" > result.gif\fR
+.Ee
+'
+.SH BUGS
+'
+Some optimized output GIFs may appear incorrectly on some GIF
+implementations (for example, Java's); see the
+.Op \-\-careful
+option.
+.PP
+Please email suggestions, additions, patches and bugs to
+ekohler@gmail.com.
+'
+.SH "SEE ALSO"
+'
+For a tutorial on GIF images and animations, you might try some of the
+resources listed on-line at webreference\%.com:
+.br
+http://www.webreference.com/authoring/graphics/animation\|.html
+'
+.SH AUTHORS
+.na
+Eddie Kohler <ek...@gmail.com>
+.br
+http://www.read.seas.harvard.edu/~kohler/
+.br
+He wrote it.
+.PP
+Anne Dudfield <an...@frii.com>
+.br
+http://www.frii.com/~annied/
+.br
+She named it.
+.PP
+Hans Dinsen-Hansen <di...@danbbs.dk>
+.br
+http://www.danbbs.dk/~dino/
+.br
+Adaptive tree method for GIF writing.
+.PP
+http://www.lcdf.org/gifsicle/
+.br
+The
+.B gifsicle
+home page.
+'
diff --git a/.yarn/unplugged/hugo-extended-npm-0.84.3-127c9ef304/node_modules/hugo-extended/vendor/hugo b/.yarn/unplugged/hugo-extended-npm-0.84.3-127c9ef304/node_modules/hugo-extended/vendor/hugo
index cc6adb0..cc8ee8e 100755
Binary files a/.yarn/unplugged/hugo-extended-npm-0.84.3-127c9ef304/node_modules/hugo-extended/vendor/hugo and b/.yarn/unplugged/hugo-extended-npm-0.84.3-127c9ef304/node_modules/hugo-extended/vendor/hugo differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSUtil.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSUtil.cpython-39.pyc
new file mode 100644
index 0000000..9a35b43
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSUtil.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSVersion.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSVersion.cpython-39.pyc
new file mode 100644
index 0000000..e98155e
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSVersion.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/__init__.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000..b2f55c2
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/__init__.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/common.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/common.cpython-39.pyc
new file mode 100644
index 0000000..dec90de
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/common.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/input.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/input.cpython-39.pyc
new file mode 100644
index 0000000..a066c84
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/input.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/msvs_emulation.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/msvs_emulation.cpython-39.pyc
new file mode 100644
index 0000000..fc29ed0
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/msvs_emulation.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/ninja_syntax.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/ninja_syntax.cpython-39.pyc
new file mode 100644
index 0000000..830286f
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/ninja_syntax.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/simple_copy.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/simple_copy.cpython-39.pyc
new file mode 100644
index 0000000..e6a5613
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/simple_copy.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcode_emulation.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcode_emulation.cpython-39.pyc
new file mode 100644
index 0000000..360a0e6
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcode_emulation.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcode_ninja.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcode_ninja.cpython-39.pyc
new file mode 100644
index 0000000..ebf4b7b
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcode_ninja.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcodeproj_file.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcodeproj_file.cpython-39.pyc
new file mode 100644
index 0000000..335d861
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcodeproj_file.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/__init__.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000..a19905e
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/__init__.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/make.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/make.cpython-39.pyc
new file mode 100644
index 0000000..7a822be
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/make.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/ninja.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/ninja.cpython-39.pyc
new file mode 100644
index 0000000..61cc8f0
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/ninja.cpython-39.pyc differ
diff --git a/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/xcode.cpython-39.pyc b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/xcode.cpython-39.pyc
new file mode 100644
index 0000000..6fd4b95
Binary files /dev/null and b/.yarn/unplugged/node-gyp-npm-7.1.2-002c5798eb/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/xcode.cpython-39.pyc differ
diff --git a/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/man/man1/optipng.1 b/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/man/man1/optipng.1
new file mode 100644
index 0000000..c4c4c42
--- /dev/null
+++ b/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/man/man1/optipng.1
@@ -0,0 +1,343 @@
+.TH OPTIPNG 1 "2017-Dec-27" "OptiPNG version 0.7.7"
+
+.SH NAME
+.B OptiPNG
+\- Optimize Portable Network Graphics files
+
+.SH SYNOPSIS
+.B optipng
+[\fB\-?\fP | \fB\-h\fP | \fB\-help\fP]
+.br
+.B optipng
+[\fIoptions...\fP] \fIfiles...\fP
+
+.SH DESCRIPTION
+The
+.B OptiPNG
+program shall attempt to \fIoptimize\fP PNG files, i.e. reduce their size to
+a minimum, without losing semantic information. In addition, this program shall
+perform a suite of auxiliary functions like integrity checks, metadata recovery
+and pixmap-to-PNG conversion.
+.P
+The optimization attempts are not guaranteed to succeed. Valid PNG files that
+cannot be optimized by this program are normally left intact; their size will
+not grow. The user may request to override this default behavior.
+
+.SH FILES
+The input files are raster image files encoded either in PNG format (the native
+format), or in an external format. The currently supported external formats are
+GIF, BMP, PNM and TIFF.
+.P
+.B OptiPNG
+processes each image file given in the command line as follows:
+.P
+\- If the image is in PNG format:
+.IP
+Attempts to optimize the given file in-place. If optimization is successful, or
+if the option \fB\-force\fP is enabled, replaces the original file with its
+optimized version. The original file is backed up if the option \fB\-keep\fP
+is enabled.
+.P
+\- If the image is in an external format:
+.IP
+Creates an optimized PNG version of the given file. The output file name is
+composed from the original file name and the \fC.png\fP extension.
+.P
+Existing files are \fInot\fP overwritten, unless the option \fB\-clobber\fP is
+enabled.
+
+.SH OPTIONS
+.SS "General options"
+.TP
+\fB\-?\fP, \fB\-h\fP, \fB\-help\fP
+Show a complete summary of options.
+.TP
+\fB\-backup\fP, \fB\-keep\fP
+Keep a backup of the modified files.
+.TP
+\fB\-clobber\fP
+Overwrite the existing output and backup files.
+.br
+Under this option, if the option \fB\-backup\fP is not enabled, the old backups
+of the overwritten files are deleted.
+.TP
+\fB\-dir\fP \fIdirectory\fP
+Write the output files to \fIdirectory\fP.
+.TP
+\fB\-fix\fP
+Enable error recovery. This option has no effect on valid input files.
+.br
+The program will spend a reasonable amount of effort to recover as much data as
+possible, without increasing the output file size, but the success cannot be
+generally guaranteed. The program may even increase the file size, e.g., by
+reconstructing missing critical data. Under this option, integrity shall take
+precedence over file size.
+.br
+When this option is not used, the invalid input files are left unprocessed.
+.TP
+\fB\-force\fP
+Enforce writing of a new output file.
+.br
+This option overrides the program's decision not to write such file, e.g. when
+the PNG input is digitally signed (using dSIG), or when the PNG output becomes
+larger than the PNG input.
+.TP
+\fB\-log\fP \fIfile\fP
+Log messages to \fIfile\fP.
+For safety reasons, \fIfile\fP must have the extension \fC.log\fP.
+.br
+This option is deprecated and will be removed eventually. Use shell
+redirection.
+.TP
+\fB\-out\fP \fIfile\fP
+Write output file to \fIfile\fP.
+The command line must contain exactly one input file.
+.TP
+\fB\-preserve\fP
+Preserve file attributes (time stamps, file access rights, etc.) where
+applicable.
+.TP
+\fB\-quiet\fP, \fB\-silent\fP
+Run in quiet mode.
+.br
+The messages are still written to the log file if the option \fB\-log\fP is
+enabled.
+.TP
+\fB\-simulate\fP
+Run in simulation mode: perform the trials, but do not create output files.
+.TP
+\fB\-v\fP
+Enable the options \fB\-verbose\fP and \fB\-version\fP.
+.TP
+\fB\-verbose\fP
+Run in verbose mode.
+.TP
+\fB\-version\fP
+Show copyright, version and build info.
+.TP
+\fB\-\-\fP
+Stop option switch parsing.
+.SS "PNG encoding and optimization options"
+.TP
+\fB\-o\fP \fIlevel\fP
+Select the optimization level.
+.br
+The optimization level 0 enables a set of optimization operations that require
+minimal effort. There will be no changes to image attributes like bit depth
+or color type, and no recompression of existing IDAT datastreams.
+.br
+The optimization level 1 enables a single IDAT compression trial. The trial
+chosen is what \fBOptiPNG\fP \fIthinks\fP it's probably the most effective.
+.br
+The optimization levels 2 and higher enable multiple IDAT compression trials;
+the higher the level, the more trials.
+.br
+The behavior and the default value of this option may change across different
+program versions. Use the option \fB\-h\fP to see the details pertaining to
+your specific version.
+.TP
+\fB\-f\fP \fIfilters\fP
+Select the PNG delta filters.
+.br
+The \fIfilters\fP argument is specified as a rangeset (e.g. \fB\-f0\-5\fP),
+and the default \fIfilters\fP value depends on the optimization level set by
+the option \fB\-o\fP.
+.br
+The filter values 0, 1, 2, 3 and 4 indicate static filtering, and correspond to
+the standard PNG filter codes (\fINone\fP, \fILeft\fP, \fIUp\fP, \fIAverage\fP
+and \fIPaeth\fP, respectively). The filter value 5 indicates adaptive filtering,
+whose effect is defined by the \fBlibpng\fP(3) library used by \fBOptiPNG\fP.
+.TP
+\fB\-full\fP
+Produce a full report on IDAT.
+This option might slow down the trials.
+.TP
+\fB\-i\fP \fItype\fP
+Select the interlace type (0\-1).
+.br
+If the interlace type 0 is selected, the output image shall be non-interlaced
+(i.e. progressive-scanned). If the interlace type 1 is selected, the output
+image shall be interlaced using the \fIAdam7\fP method.
+.br
+By default, the output shall have the same interlace type as the input.
+.TP
+\fB\-nb\fP
+Do not apply bit depth reduction.
+.TP
+\fB\-nc\fP
+Do not apply color type reduction.
+.TP
+\fB\-np\fP
+Do not apply palette reduction.
+.TP
+\fB\-nx\fP
+Do not apply any lossless image reduction:
+enable the options \fB\-nb\fP, \fB\-nc\fP and \fB\-np\fP.
+.TP
+\fB\-nz\fP
+Do not recode IDAT datastreams.
+.br
+The IDAT optimization operations that do not require recoding (e.g. IDAT
+chunk concatenation) are still performed.
+.br
+This option has effect on PNG input files only.
+.TP
+\fB\-zc\fP \fIlevels\fP
+Select the zlib compression levels used in IDAT compression.
+.br
+The \fIlevels\fP argument is specified as a rangeset (e.g. \fB\-zc6\-9\fP),
+and the default \fIlevels\fP value depends on the optimization level set by
+the option \fB\-o\fP.
+.br
+The effect of this option is defined by the \fBzlib\fP(3) library used by
+\fBOptiPNG\fP.
+.TP
+\fB\-zm\fP \fIlevels\fP
+Select the zlib memory levels used in IDAT compression.
+.br
+The \fIlevels\fP argument is specified as a rangeset (e.g. \fB\-zm8\-9\fP),
+and the default \fIlevels\fP value depends on the optimization level set by
+the option \fB\-o\fP.
+.br
+The effect of this option is defined by the \fBzlib\fP(3) library used by
+\fBOptiPNG\fP.
+.TP
+\fB\-zs\fP \fIstrategies\fP
+Select the zlib compression strategies used in IDAT compression.
+.br
+The \fIstrategies\fP argument is specified as a rangeset (e.g. \fB\-zs0\-3\fP),
+and the default \fIstrategies\fP value depends on the optimization level set by
+the option \fB\-o\fP.
+.br
+The effect of this option is defined by the \fBzlib\fP(3) library used by
+\fBOptiPNG\fP.
+.TP
+\fB\-zw\fP \fIsize\fP
+Select the zlib window size (32k,16k,8k,4k,2k,1k,512,256) used in IDAT
+compression.
+.br
+The \fIsize\fP argument can be specified either in bytes (e.g. 16384) or
+kilobytes (e.g. 16k). The default \fIsize\fP value is set to the lowest
+window size that yields an IDAT output as big as if yielded by the value 32768.
+.br
+The effect of this option is defined by the \fBzlib\fP(3) library used by
+\fBOptiPNG\fP.
+.SS "Editing options"
+.TP
+\fB\-snip\fP
+Cut one image out of multi-image, animation or video files.
+.br
+Depending on the input format, this may be either the first or the most
+relevant (e.g. the largest) image.
+.TP
+\fB\-strip\fP \fIobjects\fP
+Strip metadata objects from a PNG file.
+.br
+PNG metadata is the information stored in any ancillary chunk except tRNS.
+(tRNS represents the alpha channel, which, even if ignored in rendering, is
+still a proper image channel in the RGBA color space.)
+.br
+The only option currently supported is \fB\-strip all\fP.
+.SS "Notes"
+Options may come in any order (except for \fB\-\-\fP), before, after, or
+alternating with file names. Option names are case-insensitive and may be
+abbreviated to their shortest unique prefix.
+.P
+Some options may have arguments that follow the option name, separated by
+whitespace or the equal sign ('\fB=\fP'). If the option argument is a number
+or a rangeset, the separator may be omitted. For example:
+.IP
+\fB\-out\fP \fCnewfile.png\fP \ <=> \ \fB\-out=\fP\fCnewfile.png\fP
+.br
+\fB\-o3\fP \ <=> \ \fB\-o 3\fP \ <=> \ \fB\-o=3\fP
+.br
+\fB\-f0,3\-5\fP \ <=> \ \fB\-f 0,3\-5\fP \ <=> \ \fB\-f=0,3\-5\fP
+.P
+Rangeset arguments are cumulative; e.g.
+.IP
+\fB\-f0 \-f3\-5\fP \ <=> \ \fB\-f0,3\-5\fP
+.br
+\fB\-zs0 \-zs1 \-zs2\-3\fP \ <=> \ \fB\-zs0,1,2,3\fP \ <=> \ \fB\-zs0\-3\fP
+
+.SH "EXTENDED DESCRIPTION"
+The PNG optimization algorithm consists of the following steps:
+.TP 4
+1.
+Reduce the bit depth, the color type and the color palette of the image.
+This step may reduce the size of the uncompressed image, which, indirectly, may
+reduce the size of the compressed image (i.e. the size of the output PNG file).
+.TP 4
+2.
+Run a suite of compression methods and strategies and select the compression
+parameters that yield the smallest output file.
+.TP 4
+3.
+Store all IDAT contents into a single chunk, eliminating the overhead
+incurred by repeated IDAT headers and CRCs.
+.TP 4
+4.
+Set the zlib window size inside IDAT to a mininum that does not affect the
+compression ratio, reducing the memory requirements of PNG decoders.
+.P
+Not all of the above steps need to be executed. The behavior depends on the
+actual input files and user options.
+.P
+Step 1 may be customized via the no-reduce options \fB\-nb\fP, \fB\-nc\fP,
+\fB\-np\fP and \fB\-nx\fP. Step 2 may be customized via the \fB\-o\fP option,
+and may be fine-tuned via the options \fB\-zc\fP, \fB\-zm\fP, \fB\-zs\fP and
+\fB\-zw\fP. Step 3 is always executed. Step 4 is executed only if a new IDAT is
+being created, and may be fine-tuned via the option \fB\-zw\fP.
+.P
+Extremely exhaustive searches are not generally expected to yield significant
+improvements in compression ratio, and are recommended to advanced users only.
+
+.SH EXAMPLES
+\fCoptipng file.png \ \ \ \ \ \fP# default speed
+.br
+\fCoptipng -o5 file.png \ \fP# slow
+.br
+\fCoptipng -o7 file.png \ \fP# very slow
+
+.SH BUGS
+Lossless image reductions are not completely implemented.
+(This does \fInot\fP affect the integrity of the output files.)
+Here are the missing pieces:
+.IP
+\- The color palette reductions are implemented only partially.
+.br
+\- The bit depth reductions below 8, for grayscale images, are not implemented
+yet.
+.P
+Encoding of images whose total IDAT size exceeds 2GB is not supported.
+.P
+TIFF support is limited to uncompressed, PNG-compatible (grayscale, RGB and
+RGBA) images.
+.P
+Metadata is not imported from the external image formats.
+.P
+There is no support for pipes, streams, extended file attributes or access
+control lists.
+
+.SH "SEE ALSO"
+\fBpng\fP(5),
+\fBlibpng\fP(3),
+\fBzlib\fP(3),
+\fBpngcrush\fP(1),
+\fBpngrewrite\fP(1).
+
+.SH STANDARDS
+The files produced by \fBOptiPNG\fP are compliant with \fBPNG\-2003\fP:
+.br
+Glenn Randers-Pehrson et al.
+\fIPortable Network Graphics (PNG) Specification, Second Edition\fP.
+.br
+W3C Recommendation 10 November 2003; ISO/IEC IS 15948:2003 (E).
+.br
+\fChttp://www.w3.org/TR/PNG/\fP
+
+.SH AUTHOR
+\fBOptiPNG\fP is written and maintained by Cosmin Truta.
+.PP
+This manual page was originally written by Nelson A. de Oliveira
+for the Debian Project. It was later updated by Cosmin Truta,
+and is now part of the \fBOptiPNG\fP distribution.
diff --git a/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/optipng b/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/optipng
index e9f982a..0f22c37 100755
Binary files a/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/optipng and b/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/optipng differ
diff --git a/antora-ui-camel/.yarn/build-state.yml b/antora-ui-camel/.yarn/build-state.yml
index 4e217ff..d4bc0da 100644
--- a/antora-ui-camel/.yarn/build-state.yml
+++ b/antora-ui-camel/.yarn/build-state.yml
@@ -3,16 +3,20 @@
 
 # core-js@npm:3.1.4
 "ec869069350ba4b6e4ca8b1008cb9eaca7409fc31801f8cc6138a1951f62c8965f06dad5d3be6653c0b81665f03070b31bfdac223b3bb241601ef86bb9ab125f":
-  893b93d820bf1bda2f02eabee6874ee98e28ea4408d7ef09398eec4f3660f988d3aec89c117238f400ba90c1f28e6599f24aed4bf40743c635f53c8d0aee5dfe
+  5f15dd598bab66e6613b3a7771a665821454c9317828bd1045f6711f36c84da8c9f63dffabe625a6c47b33b7008679cabe25c888bf60c75abe33296eca17d7a0
+
+# fsevents@patch:fsevents@npm%3A1.2.13#builtin<compat/fsevents>::version=1.2.13&hash=11e9ea
+"268c0b888ddfb611722b2ffd60f6a12729aed7f4e910e41b46d22ec5d652b177b3680e939f37b6278ca5903c81ec55105f93c7fc0944e125761166786225180b":
+  a875a3c27422ea22500630d89628f462b45a209f6faae9556ea89d166cc78115da226d8361b43f7585c24d005e5e1a28ec87e7f9c5d805102391d340ba057cd3
 
 # gifsicle@npm:4.0.1
 "47efba2323306056b5eb4428fb87bbe745eb0587d7a5c64c188c6bc7d13bb2ab6ee9099b11957e60c6dacefbfc0d074aa862e206c771bef851d72b01b35da575":
-  3e9ed5ca648e63ebc5420aacef2b4d3449073dc2bc433016aea1359ea84c9e198f93ac14b04b612b5d9ad5e27755a7e7b986301c8ca7631fc8a0282b96b9a379
+  5a0ff09a32b05626963962889313b67c3a9684a04b5bafb7e1ca18859e9956e879f6d69a0df6f3d6f9ae728a8eec988126190a5bd72a1ca8078d576191454b9e
 
 # jpegtran-bin@npm:4.0.0
 "c1e70a98c194359902d396160440b8d6aafc026faec0b483b98d24dac1a2756f6ebdb0d5b12c609339320ad38e22580c8c8b6e70edfc9c5019a30d10094fd1fb":
-  a7ae1d08087db5f0474a213b3eb03b19ea3f24fa73c62d262e9346cad322cceb0a8a7665652ee698f54a01d744f98d2d0af89402d5dba5c325ec953c671436fd
+  994562613a1c2a2e8425dd61c47fa1793b392f1f5237c558d1deb42c8f9d62b8f44e00236a27f4727a2f97bf9f90188f5c1984ade2241adc5e9133aa0abeaecb
 
 # optipng-bin@npm:6.0.0
 "3aa5f04a3e5704a556a7f98fdddf5ad260b55ca04a2b8cd3d448861d0bd4778bbc092bf0bd558eba02998faceda73052710fa3124f1940098d2ee8bd93474567":
-  5253f2ff83a05dc41825db70696fa3ce3dd12264e2747785fab5e2f3b01f49289495d57246d44e3142864c898d99caf1e8834e810fe2c2f16ff4de533ca08835
+  fe622ec3aa18fbd7ffef27961caa92db28ac9c7f969ac3ba21efcd7ce10b6504aff1d7eafc1eaba27533693bef90bf8293dc1f8e1c1cd3129e1e78e687bc1471
diff --git a/antora-ui-camel/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/gifsicle b/antora-ui-camel/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/gifsicle
index 00ce1dc..d724ac5 100755
Binary files a/antora-ui-camel/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/gifsicle and b/antora-ui-camel/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/gifsicle differ
diff --git a/antora-ui-camel/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/share/man/man1/gifsicle.1 b/antora-ui-camel/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/share/man/man1/gifsicle.1
new file mode 100644
index 0000000..7f8eab5
--- /dev/null
+++ b/antora-ui-camel/.yarn/unplugged/gifsicle-npm-4.0.1-47efba2323/node_modules/gifsicle/vendor/share/man/man1/gifsicle.1
@@ -0,0 +1,1318 @@
+.\" -*- mode: nroff -*-
+.ds V 1.90
+.ds E " \-\- 
+.if t .ds E \(em
+.de Op
+.BR "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
+..
+.de Oa
+.IR "\fB\\$1\& \|\fI\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
+..
+.de Qo
+.RB \(oq "\\$1" "\(cq\\$2"
+..
+.de Qa
+.BI "\fR\(oq\fB\\$1" " \\$2" " \\$3" " \\$4" "\fR\(cq\\$5"
+..
+.de Sp
+.if n .sp
+.if t .sp 0.4
+..
+.de Ix
+.TP 25
+\\$1
+.nh
+\\$2
+.hy
+..
+.de Es
+.Sp
+.RS 5
+.nf
+..
+.de Ee
+.fi
+.RE
+.PP
+..
+.de Xs
+.RS 5
+.nf
+..
+.de Xe
+.fi
+.RE
+..
+.TH GIFSICLE 1 "11 July 2017" "Version \*V"
+.SH NAME
+gifsicle \- manipulates GIF images and animations
+.SH SYNOPSIS
+.B gifsicle
+\%[options, frames, and filenames].\|.\|.
+'
+.SH DESCRIPTION
+.B gifsicle
+is a powerful command-line program for creating, editing, manipulating, and
+getting information about GIF images and animations.
+.PP
+.B Gifsicle
+normally processes input GIF files according to its command line
+options and writes the result to the standard output. The
+.Op \-i
+option, for example, tells
+.B gifsicle
+to interlace its inputs:
+.Es
+\fBgifsicle \-i < pic.gif > interlaced-pic.gif\fR
+.Ee
+.PP
+.B Gifsicle
+is good at creating and manipulating GIF animations. By default, it
+combines two or more input files into a \(lqflipbook\(rq animation:
+.Es
+\fBgifsicle pic1.gif pic2.gif pic3.gif > animation.gif\fR
+.Ee
+Use options like
+.Op \-\-delay ", " \-\-loopcount ", and " \-\-optimize
+to tune your animations.
+.PP
+To modify GIF files in place, use the
+.Op \-\-batch
+option. With
+.Op \-\-batch ,
+.B gifsicle
+will modify the files you specify instead of writing a new file to the
+standard output. To interlace all the GIFs in the current directory, you
+could say:
+.Es
+\fBgifsicle \-\-batch \-i *.gif
+.Ee
+.PP
+New users may want to skip to
+the Examples section at the end.
+'
+.SH CONCEPT INDEX
+'
+Concepts are on the left, relevant
+.B gifsicle
+options are on the right.
+'
+.Sp
+.PD 0
+.Ix "Animations, changing" "frame selections, frame changes, etc."
+.Ix "\ \ \ disposal" "\fB\-\-disposal\fP"
+.Ix "\ \ \ looping" "\fB\-\-loopcount\fP"
+.Ix "\ \ \ portions of" "frame selections"
+.Ix "\ \ \ smaller" "\fB\-\-optimize\fP, \fB\-\-colors\fP"
+.Ix "\ \ \ speed" "\fB\-\-delay\fP"
+.Ix "Bad output" "\fB\-\-careful\fP"
+.Ix "Background color" "\fB\-\-background\fP"
+.Ix "Colors, changing" "\fB\-\-change\-color\fP, \fB\-\-use\-colormap\fP, \fB\-\-dither\fP, \fB\-\-transform\-colormap\fP"
+.Ix "\ \ \ reducing number" "\fB\-\-colors\fP, \fB\-\-dither\fP, \fB\-\-gamma\fP"
+.Ix "Comments" "\fB\-\-comment\fP"
+.Ix "Extensions" "\fB\-\-extension\fP, \fB\-\-app\-extension\fP, \fB\-\-extension\-info\fP"
+.Ix "File size" "\fB\-\-optimize\fP, \fB\-\-unoptimize\fP, \fB\-\-colors\fP"
+.TP 30
+Image transformations
+.Ix "\ \ \ cropping" "\fB\-\-crop\fP, \fB\-\-crop\-transparency\fP"
+.Ix "\ \ \ flipping" "\fB\-\-flip\-*\fP"
+.Ix "\ \ \ resizing" "\fB\-\-resize\fP, \fB\-\-scale\fP"
+.Ix "\ \ \ rotating" "\fB\-\-rotate\-*\fP"
+.Ix "Grayscale" "\fB\-\-use\-colormap\fP"
+.Ix "Interlacing" "\fB\-\-interlace\fP"
+.Ix "Positioning frames" "\fB\-\-position\fP"
+.Ix "Screen, logical" "\fB\-\-logical\-screen\fP"
+.Ix "Selecting frames" "frame selections (like \fB'#0'\fP)"
+.Ix "Transparency" "\fB\-\-transparent\fP"
+.Ix "Warnings" "\fB\-\-no\-warnings\fP"
+.PD
+'
+.SH COMMAND LINE
+
+.BR gifsicle 's
+command line consists of GIF input files and options. Most options start
+with a dash (\-) or plus (+); frame selections, a kind of option, start
+with a number sign (#). Anything else is a GIF input file.
+.PP
+.B gifsicle
+reads and processes GIF input files in order. If no GIF input file is
+given, or you give the special filename \(oq\-\(cq,
+it reads from the standard input.
+.PP
+.B gifsicle
+exits with status 0 if there were no errors and status 1 otherwise.
+'
+.SH OPTIONS
+
+Every option has a long form,
+.Qo \-\-long\-descriptive\-name .
+You don't need to type the whole long descriptive name, just enough to
+make it unambiguous.
+.PP
+Some options also have a short form,
+.Qo \-X .
+You can combine short options if they don't take arguments:
+.Qo \-IIb
+is the same as
+.Qo "\-I \-I \-b" .
+But be careful with options that do take arguments:
+.Qo \-cblah
+means
+.Qo "\-c \fRblah" ,
+not
+.Qo "\-c \-b \-l \-a \-h" .
+.PP
+Many options also have a converse,
+.Qo \-\-no\-option ,
+which turns off the option. You can turn off a short option
+.Qo \-X
+by saying
+.Qo \+X
+instead.
+'
+.\" -----------------------------------------------------------------
+.SS Mode Options
+
+Mode options tell
+.B gifsicle
+what kind of output to generate. There can be at most one, and it must
+precede any GIF inputs.
+.TP 5
+.Op "\-\-merge" ", " "\-m"
+'
+Combine all GIF inputs into one file with multiple frames and write that
+file to the standard output. This is the default mode.
+'
+.TP
+.Op \-\-batch ", " \-b
+'
+Modify each GIF input in place by reading and writing to the same filename.
+(GIFs read from the standard input are written to the standard output.)
+'
+.TP
+.Op \-\-explode ", " \-e
+'
+Create an output GIF for each frame of each input file. The output GIFs are
+named \(oqxxx.000\(cq, \(oqxxx.001\(cq, and so on, where \(oqxxx\(cq is the name of the input
+file (or whatever you specified with
+.Qo \-\-output )
+and the numeric extension is the frame number.
+'
+.TP
+.Op \-\-explode\-by\-name ", " \-E
+'
+Same as
+.Op \-\-explode ","
+but write any named frames to files \(oqxxx.\fIname\fR\(cq instead of
+\(oqxxx.\fIframe-number\fR\(cq.  Frames are named using the
+.Qo \-\-name
+option.
+'
+.\" -----------------------------------------------------------------
+.SS General Options
+
+General options control the information
+.B gifsicle
+prints and where it writes its output. The info options and
+.Op \-\-verbose
+can be turned off with
+.Qo \-\-no\-X .
+'
+.Sp
+.PD 0
+.TP 5
+.Op \-\-info ", " \-I
+'
+Print a human-readable description of each input GIF to the standard
+output, or whatever file you specify with
+.Op \-o .
+This option suppresses normal output, and cannot be combined with mode
+options like
+.Op \-\-batch .
+If you give two
+.Op \-\-info
+or
+.Op \-I
+options, however, information is printed to standard error, and normal
+output takes place as usual.
+'
+.Sp
+.TP 5
+.Op \-\-color\-info ", " \-\-cinfo
+'
+Like
+.Op \%\-\-info ,
+but also print information about input files' colormaps.
+'
+.Sp
+.TP 5
+.Op \-\-extension\-info ", " \-\-xinfo
+'
+Like
+.Op \%\-\-info ,
+but also print any unrecognized GIF extensions in a
+.BR hexdump (1)-like
+format.
+'
+.Sp
+.TP 5
+.Op \-\-size\-info ", " \-\-sinfo
+'
+Like
+.Op \%\-\-info ,
+but also print information about compressed image sizes.
+'
+.Sp
+.TP 5
+.Op \-\-help ", " \-h
+'
+Print usage information and exit.
+'
+.Sp
+.TP
+.Oa \-o file
+.TP
+.Oa \-\-output file
+'
+Send output to
+.IR file .
+The special filename \(oq-\(cq means the standard output.
+'
+.Sp
+.TP
+.Op \-\-verbose ", " \-V
+'
+Print progress information (files read and written) to standard
+error.
+'
+.Sp
+.TP
+.Op \-\-no\-warnings ", " \-w
+'
+Suppress all warning messages.
+'
+.Sp
+.TP
+.Op \-\-no\-ignore\-errors
+'
+Exit with status 1 when encountering a very erroneous GIF. Default is to
+muddle on.
+'
+.Sp
+.TP
+.Op \-\-version
+'
+Print the version number and some short non-warranty information and exit.
+'
+.Sp
+.PD 0
+.TP 5
+.Op \-\-careful
+'
+Write slightly larger GIFs that avoid bugs in some other GIF
+implementations. Some Java and Internet Explorer versions cannot display
+the correct, minimal GIFs that Gifsicle produces. Use the
+.Op \-\-careful
+option if you are having problems with a particular image.
+'
+.Sp
+.TP
+.Op \-\-conserve\-memory
+'
+Conserve memory usage at the expense of processing time. This may be useful
+if you are processing large GIFs on a computer without very much memory. Or
+say
+.Op \-\-no\-conserve\-memory .
+'
+.Sp
+.TP
+.Op \-\-nextfile
+'
+Allow input files to contain multiple concatenated GIF images. If a
+filename appears multiple times on the command line, \fBgifsicle\fR will
+read a new image from the file each time. This option can help scripts
+avoid the need for temporary files. For example, to create an animated GIF
+with three frames with different delays, you might run "\fBgifsicle
+\-\-nextfile \-d10 \- \-d20 \- \-d30 \- > out.gif\fR" and write the three
+GIF images, in sequence, to \fBgifsicle\fR's standard input.
+'
+.Sp
+.TP
+.Op \-\-multifile
+'
+Like
+.Op \-\-nextfile ,
+but read
+.I as many GIF images as possible
+from each file. This option is intended for scripts. For example, to merge
+an unknown number of GIF images into a single animation, run "\fBgifsicle
+\-\-multifile \- > out.gif\fR" and write the GIF images, in sequence, to
+\fBgifsicle\fR's standard input.  Any frame selections apply only to the
+last file in the concatenation.
+'
+.PD
+'
+.\" -----------------------------------------------------------------
+.SS Frame Selections
+
+A frame selection tells
+.B gifsicle
+which frames to use from the current input file. They are useful only for
+animations, as non-animated GIFs only have one frame. Here are the
+acceptable forms for frame specifications.
+.Sp
+.PD 0
+.TP 13
+.BI # num
+'
+Select frame \fInum\fR. (The first frame is
+.Qo #0 .
+Negative numbers count backwards from the last frame, which is
+.Qo #-1 .)
+'
+.TP 13
+.BI # num1 \- num2
+'
+Select frames \fInum1\fR through \fInum2\fR.
+'
+.TP 13
+.BI # num1 \-
+'
+Select frames \fInum1\fR through the last frame.
+'
+.TP 13
+.BI # name
+'
+Select the frame named \fIname\fR.
+.PD
+.PP
+The \(oq#\(cq character has special meaning for many shells, so you generally
+need to quote it.
+.PP
+For example,
+.Xs
+\fBgifsicle happy.gif "#0"\fR
+.Xe
+uses the first frame from happy.gif;
+.Xs
+\fBgifsicle happy.gif "#0-2"\fR
+.Xe
+uses its first three frames; and
+.Xs
+\fBgifsicle happy.gif "#-1-0"\fR
+.Xe
+uses its frames in reverse order (starting from frame #-1\*Ethe
+last frame\*Eand ending at frame #0\*Ethe first).
+.PP
+The action performed with the selected frames depends on the current
+mode. In merge mode, only the selected frames are merged into the output
+GIF. In batch mode, only the selected frames are modified; other frames
+remain unchanged. In explode mode, only the selected frames are exploded
+into output GIFs.
+'
+.\" -----------------------------------------------------------------
+.SS Frame Change Options
+
+Frame change options insert new frames into an animation or replace or
+delete frames that already exist. Some things\*Efor example, changing one
+frame in an animation\*Eare difficult to express with frame selections, but
+easy with frame changes.
+'
+.TP 5
+.Oa \-\-delete frames " [" frames ".\|.\|.]"
+'
+Delete
+.I frames
+from the input GIF.
+'
+.TP
+.Oa \-\-insert\-before "frame other-GIFs"
+'
+Insert
+.I other-GIFs
+before
+.I frame
+in the input GIF.
+'
+.TP
+.Oa \-\-append "other-GIFs"
+'
+Append
+.I other-GIFs
+to the input GIF.
+'
+.TP
+.Oa \-\-replace "frames other-GIFs"
+'
+Replace
+.I frames
+from the input GIF with
+.IR other-GIFs .
+'
+.TP
+\fB\-\-done\fR
+'
+Complete the current set of frame changes.
+'
+.PP
+The
+.I frames
+arguments are frame selections (see above). These arguments always refer to
+frames from the
+.I original
+input GIF. So, if \(oqa.gif\(cq has 3 frames and \(oqb.gif\(cq has one, this
+command
+.Xs
+\fBgifsicle a.gif \-\-delete "#0" \-\-replace "#2" b.gif\fR
+.Xe
+will produce an output animation with 2 frames: \(oqa.gif\(cq frame 1, then
+\(oqb.gif\(cq.
+.PP
+The
+.I other-GIFs
+arguments are any number of GIF input files and frame selections.
+These images are combined in merge mode and added to the input GIF.
+The
+.I other-GIFs
+last until the next frame change option, so this command replaces the
+first frame of \(oqin.gif\(cq with the merge of \(oqa.gif\(cq and \(oqb.gif\(cq:
+.Xs
+\fBgifsicle \-b in.gif \-\-replace "#0" a.gif b.gif\fR
+.Xe
+.PP
+This command, however, replaces the first frame of \(oqin.gif\(cq with
+\(oqa.gif\(cq and then processes \(oqb.gif\(cq separately:
+.Xs
+\fBgifsicle \-b in.gif \-\-replace "#0" a.gif \-\-done b.gif\fR
+.Xe
+.PP
+Warning: You shouldn't use both frame selections and frame changes on
+the same input GIF.
+'
+.\" -----------------------------------------------------------------
+.SS Image Options
+
+Image options modify input images\*Eby changing their interlacing,
+transparency, and cropping, for example. Image options have three forms:
+.Qo \-\-X ,
+.Qo \-\-no\-X ,
+and
+.Qo \-\-same\-X .
+The
+.Qo \-\-X
+form selects a value for the feature, the
+.Qo \-\-no\-X
+form turns off the feature, and the
+.Qo \-\-same\-X
+form means that the feature's value is copied from each input. The default
+is always
+.Qo \-\-same\-X .
+For example,
+.Op \-background= """#0000FF"""
+sets the background color to blue,
+.Op \-\-no\-background
+turns the background color off (by setting it to 0), and
+.Op \-\-same\-background
+uses input images' existing background colors. You can give each option
+multiple times; for example,
+.Xs
+\fBgifsicle \-b \-O2 \-i a.gif \-\-same\-interlace b.gif c.gif\fR
+.Xe
+will make \(oqa.gif\(cq interlaced, but leave \(oqb.gif\(cq and \(oqc.gif\(cq interlaced only
+if they were already.
+'
+.Sp
+.PD 0
+.TP 5
+.Oa \-B color
+.TP
+.Oa \-\-background color
+'
+Set the output GIF's background to
+.IR color .
+The argument can have the same forms as in the
+.Op \-\-transparent
+option below.
+'
+.Sp
+.TP
+.Oa \-\-crop x1 , y1 - x2\fR,\fIy2
+.TP
+.Oa \-\-crop x1 , y1 + width\fRx\fIheight
+'
+Crop the following input frames to a smaller rectangular area. The top-left
+corner of this rectangle is
+.RI ( x1 , y1 );
+you can give either the lower-right corner,
+.RI ( x2 , y2 ),
+or the width and height of the rectangle. In the
+.IR x1 , y1 + width x height
+form,
+.I width
+and
+.I height
+can be zero or negative. A zero dimension means the cropping area goes to
+the edge of the image; a negative dimension brings the cropping area that
+many pixels back from the image edge. For example,
+.Op \-\-crop " 2,2+-2x-2"
+will shave 2 pixels off each side of the input image. Cropping takes place
+before any rotation, flipping, resizing, or positioning.
+'
+.Sp
+.TP
+.Op \-\-crop\-transparency
+'
+Crop any transparent borders off the following input frames. This happens
+after any cropping due to the
+.Op \-\-crop
+option. It works on the raw input images; for example, any transparency
+options have not yet been applied.
+'
+.Sp
+.TP
+.Op \-\-flip\-horizontal
+.TP
+.Op \-\-flip\-vertical
+'
+Flip the following frames horizontally or vertically.
+'
+.Sp
+.TP
+.Op \-i
+.TP
+.Op \-\-interlace
+'
+Turn interlacing on.
+'
+.Sp
+.TP
+.Oa \-S width x height
+.TP
+.Oa \-\-logical\-screen width x height
+'
+Set the output logical screen to
+.IR width x height .
+.Op \-\-no\-logical\-screen
+sets the output logical screen to the size of the largest output
+frame, while
+.Op \-\-same\-logical\-screen
+sets the output logical screen to the largest input logical screen.
+.Op \-\-screen
+is a synonym for
+.Op \-\-logical\-screen .
+'
+.Sp
+.TP
+.Oa \-p x\fR,\fIy
+.TP
+.Oa \-\-position x\fR,\fIy
+'
+Set the following frames' positions to
+.RI ( x , y ).
+.Op \-\-no\-position
+means
+.Op \-\-position " 0,0."
+Normally,
+.Oa \-\-position x\fR,\fIy
+places every succeeding frame exactly at \fIx\fR,\fIy\fR. However, if an
+entire animation is input, \fIx\fR,\fIy\fR is treated as the position for
+the animation.
+'
+.Sp
+.TP
+.Op \-\-rotate\-90
+.TP
+.Op \-\-rotate\-180
+.TP
+.Op \-\-rotate\-270
+'
+Rotate the following frames by 90, 180, or 270 degrees.
+.Op \-\-no\-rotate
+turns off any rotation.
+'
+.Sp
+.TP
+.Oa \-t color
+.TP
+.Oa \-\-transparent color
+'
+Make
+.I color
+transparent in the following frames.
+.I Color
+can be a colormap index (0\-255), a hexadecimal color specification
+(like "#FF00FF" for magenta), or slash- or comma-separated red, green
+and blue values (each between 0 and 255).
+.PD
+'
+.\" -----------------------------------------------------------------
+.SS Extension Options
+
+Extension options add non-visual information to the output GIF. This
+includes names, comments, and generic extensions.
+'
+.Sp
+.PD 0
+.TP 5
+.Oa \-\-app\-extension app\-name " " extension
+'
+Add an application extension named
+.I app\-name
+and with the value
+.I extension
+to the output GIF.
+.Op \-\-no\-app\-extensions
+removes application extensions from the input images.
+'
+.Sp
+.TP
+.Oa \-c text
+.TP
+.Oa \-\-comment text
+'
+Add a comment,
+.IR text ,
+to the output GIF. The comment will be placed before the next frame in
+the stream.
+.Op \-\-no\-comments
+removes comments from the input images.
+'
+.Sp
+.TP
+.Oa \-\-extension number " " extension
+'
+Add an extension numbered
+.I number
+and with the value
+.I extension
+to the output GIF.
+.I Number
+can be in decimal, octal, hex, or it can be a single character like \(oqn\(cq,
+whose ASCII value is used.
+.Op \-\-no\-extensions
+(or
+.Op +x )
+removes extensions from the input images.
+'
+.Sp
+.TP
+.Oa \-n text
+.TP
+.Oa \-\-name text
+'
+Set the next frame's name to
+.IR text .
+This name is stored as an extension in the output GIF (extension number
+0xCE, followed by the characters of the frame name).
+.Op \-\-no\-names
+removes name extensions from the input images.
+'
+.PD
+'
+.\" -----------------------------------------------------------------
+.SS Animation Options
+
+Animation options apply to GIF animations, or to individual frames in GIF
+animations. As with image options, most animation options have three forms,
+.Qo \-\-X ,
+.Qo \-\-no\-X ,
+and
+.Qo \-\-same\-X ,
+and you can give animation options multiple times; for example,
+.Xs
+\fBgifsicle \-b a.gif \-d50 "#0" "#1" \-d100 "#2" "#3"\fR
+.Xe
+sets the delays of frames 0 and 1 to 50, and frames 2 and 3 to 100.
+'
+.Sp
+.PD 0
+.TP 5
+.Oa \-d time
+.TP
+.Oa \-\-delay time
+'
+Set the delay between frames to
+.IR time
+in hundredths of a second.
+'
+.Sp
+.TP
+.Oa \-D method
+.TP
+.Oa \-\-disposal method
+'
+Set the disposal method for the following frames to
+.IR method .
+A frame's disposal method determines how a viewer should remove the frame
+when it's time to display the next.
+.I Method
+can be a number between 0 and 7 (although only 0 through 3 are
+generally meaningful), or one of these names:
+.BR none
+(leave the frame visible for future frames to build upon),
+.BR asis
+(same as "none"),
+.BR background " (or " bg ")"
+(replace the frame with the background), or
+.BR previous
+(replace the frame with the area from the previous displayed frame).
+.Op \-\-no\-disposal
+means
+.Op \-\-disposal = none .
+'
+.Sp
+.TP
+.Op \-l "[\fIcount\fR]"
+.TP
+.Op \-\-loopcount "[=\fIcount\fR]"
+'
+Set the Netscape loop extension to
+.IR count .
+.I Count
+is an integer, or
+.B forever
+to loop endlessly. If you supply a
+.Op \-\-loopcount
+option without specifying
+.IR count ,
+Gifsicle will use
+.BR forever .
+.Op \-\-no\-loopcount
+(the default) turns off looping.
+.Sp
+Set the loop count to one less than the number of times you want the
+animation to run. An animation with
+.Op \-\-no\-loopcount
+will show every frame once;
+.Op \-\-loopcount =1
+will loop once, thus showing every frame twice; and so forth.
+Note that
+.Op \-\-loopcount =0
+is equivalent to
+.Op \-\-loopcount =forever,
+not
+.Op \-\-no\-loopcount .
+'
+.Sp
+.TP
+.Op \-O "[\fIlevel\fR]"
+.TP
+.Op \-\-optimize "[=\fIlevel\fR]"
+'
+Optimize output GIF animations for space.
+.I Level
+determines how much optimization is done; higher levels take longer, but
+may have better results. There are currently three levels:
+.Sp
+.RS
+.TP 5
+.Op \-O1
+Stores only the changed portion of each image. This is the default.
+.TP 5
+.Op \-O2
+Also uses transparency to shrink the file further.
+.TP 5
+.Op \-O3
+Try several optimization methods (usually slower, sometimes better results).
+.Sp
+.PP
+Other optimization flags provide finer-grained control.
+.Sp
+.TP 5
+.Op \-Okeep-empty
+Preserve empty transparent frames (they are dropped by default).
+.Sp
+.PP
+You may also be interested in other options for shrinking GIFs, such as
+.Op \-k
+and
+.Op \-\-no\-extensions .
+.RE
+'
+.Sp
+.TP 5
+.Oa \-U
+.TP
+.Oa \-\-unoptimize
+'
+Unoptimize GIF animations into an easy-to-edit form.
+.Sp
+GIF animations are often optimized (see
+.Op \-\-optimize )
+to make them smaller and faster to load, which unfortunately makes them
+difficult to edit.
+.Op \-\-unoptimize
+changes optimized input GIFs into unoptimized GIFs, where each frame is a
+faithful representation of what a user would see at that point in the
+animation.
+.RE
+'
+.PD
+'
+.\" -----------------------------------------------------------------
+.SS Image Transformation Options
+'
+Image transformation options apply to entire GIFs as they are read or
+written. They can be turned off with
+.Qo \-\-no\-option .
+'
+.Sp
+.PD 0
+.TP 5
+.Oa \-\-resize width x height
+'
+Resize the output GIF to the given
+.IR width " and " height .
+If
+.I width
+or
+.I height
+is an underscore \(oq_\(cq, that dimension is chosen so that the
+aspect ratio remains unchanged.
+Resizing happens after all input frames have been combined and before
+optimization. Resizing uses logical screen dimensions; if
+the input stream has an unusual logical screen (many GIF displayers ignore
+logical screens), you may want to provide
+.Op \-\-no\-logical\-screen
+(or
+.Op +S )
+to reset it so
+.B gifsicle
+uses image dimensions instead. See also
+.Op \-\-resize\-method .
+'
+.Sp
+.TP
+.Oa \-\-resize\-width width
+.TP
+.Oa \-\-resize\-height height
+'
+Resize to a given width or height, preserving aspect ratio. Equivalent to
+.Oa \-\-resize width x_
+or
+.Oa \-\-resize "" _x height .
+'
+.Sp
+.TP
+.Oa \-\-resize\-fit width x height
+.TP
+.Oa \-\-resize\-touch width x height
+'
+Resize the output GIF to fit within a rectangle with dimensions
+.IR width x height .
+The aspect ratio remains unchanged. The
+.Op \-\-resize\-fit
+option only shrinks the image\(emno resize is performed if the GIF already
+fits within the rectangle. Either
+.I width
+or
+.I height
+may be an underscore \(oq_\(cq, which leaves that dimension unconstrained.
+'
+.Sp
+.TP
+.Oa \-\-resize\-fit\-width width
+.TP
+.Oa \-\-resize\-fit\-height height
+.TP
+.Oa \-\-resize\-touch\-width width
+.TP
+.Oa \-\-resize\-touch\-height height
+'
+Like
+.Oa \-\-resize\-fit
+and
+.Op \-\-resize\-touch ,
+but constrains only one dimension.
+'
+.Sp
+.TP
+.Oa \-\-scale Xfactor [x Yfactor ]
+'
+Scale the output GIF's width and height by
+.IR Xfactor " and " Yfactor .
+If
+.I Yfactor
+is not given, it defaults to
+.IR Xfactor .
+Scaling happens after all input frames have been combined and before
+optimization.
+'
+.Sp
+.TP
+.Oa \-\-resize\-method method
+'
+Set the method used to resize images. The \(oqsample\(cq method runs
+very quickly, but when shrinking images, it produces noisy results.
+The \(oqmix\(cq method is somewhat slower, but produces better-looking
+results. The default method is
+currently \(oqmix\(cq.
+.RS
+.Sp
+.PP
+Details: The resize methods differ most when shrinking images. The
+\(oqsample\(cq method is a point sampler: each pixel position in the
+output image maps to exactly one pixel position in the input. When
+shrinking, full rows and columns from the input are dropped. The other
+methods use all input pixels, which generally produces better-looking
+images. The \(oqbox\(cq method, a box sampler, is faster than the more
+complex filters and produces somewhat sharper results, but there will
+be anomalies when shrinking images by a small amount in one dimension.
+(Some output pixels will correspond to exactly 1 input row or column,
+while others will correspond to exactly 2 input rows or columns.) The
+\(oqmix\(cq method is a full bilinear interpolator. This is slower and
+produces somewhat blurrier results, but avoids anomalies.
+.Sp
+.PP
+Gifsicle also supports more complex resamplers, including
+Catmull-Rom cubic resampling (\(oqcatrom\(cq), the Mitchell-Netravali
+filter (\(oqmitchell\(cq), a 2-lobed Lanczos filter
+(\(oqlanczos2\(cq), and a 3-lobed Lanczos filter (\(oqlanczos3\(cq).
+These filters are slower still, but can give sharper, better results.
+.RE
+'
+.Sp
+.TP
+.Oa \-\-resize\-colors n
+'
+Allow Gifsicle to add intermediate colors when resizing images.
+Normally, Gifsicle's resize algorithms use input images' color
+palettes without changes. When shrinking images with very few colors
+(e.g., pure black-and-white images), adding intermediate colors can
+improve the results. Example:
+.Oa \-\-resize\-colors 64
+allows Gifsicle to add intermediate colors for images that have fewer
+than 64 input colors.
+.PD
+'
+.\" -----------------------------------------------------------------
+.SS Color Options
+'
+Color options apply to entire GIFs as they are read or
+written. They can be turned off with
+.Qo \-\-no\-option .
+.Sp
+.PD 0
+.TP 5
+.Oa \-k num
+.TP
+.Oa \-\-colors num
+'
+Reduce the number of distinct colors in each output GIF to
+.I num
+or less.
+.I Num
+must be between 2 and 256. This can be used to shrink output GIFs or
+eliminate any local color tables.
+.Sp
+Normally, an adaptive group of colors is chosen from the existing
+color table. You can affect this process with the
+.Op \-\-color\-method
+option or by giving your own colormap with
+.Op \-\-use\-colormap .
+Gifsicle may need to add an additional color (making
+.IR num +1
+in all) if there is transparency in the image.
+'
+.Sp
+.TP
+.Oa \-\-color\-method method
+'
+Determine how a smaller colormap is chosen.
+.RB \(oq diversity \(cq,
+the default, is
+.BR xv (1)'s
+diversity algorithm, which uses a strict subset of the existing colors
+and generally produces good results.
+.RB \(oq blend\-diversity \(cq
+is a modification of this: some color values are blended from groups of
+existing colors.
+.RB \(oq median\-cut \(cq
+is the median cut algorithm described by Heckbert.
+.Op \-\-method
+is a synonym for
+.Op \-\-color\-method .
+'
+.Sp
+.TP 5
+.Oa \-f
+.TP
+.Op \-\-dither "[=\fImethod\fR]"
+'
+When
+.Op \-\-dither
+is on and the colormap is changed, combinations of colors are used to
+approximate missing colors. This looks better, but makes bigger files
+and can cause animation artifacts, so it is off by default.
+.Sp
+Specify a dithering algorithm with the optional \fImethod\fR argument.
+The default,
+.RB \(oq floyd-steinberg \(cq,
+uses Floyd-Steinberg error
+diffusion. This usually looks best, but can cause animation artifacts,
+because dithering choices will vary from frame to frame. Gifsicle also
+supports ordered dithering algorithms that avoid animation artifacts.
+The
+.RB \(oq ro64 \(cq
+mode uses a
+large, random-looking pattern and generally produces good results. The
+.RB \(oq o3 \(cq,
+.RB \(oq o4 \(cq,
+and
+.RB \(oq o8 \(cq
+modes use smaller, more
+regular patterns. The
+.RB \(oq ordered \(cq
+mode chooses a good ordered
+dithering algorithm. For special effects, try the halftone modes
+.RB \(oq halftone \(cq,
+.RB \(oq squarehalftone \(cq,
+and
+.RB \(oq diagonal \(cq.
+Some modes take optional parameters using commas. The halftone modes
+take a cell size and a color limit:
+.RB \(oq halftone,10,3 \(cq
+creates 10-pixel wide halftone cells where each cell uses up to 3
+colors.
+'
+.Sp
+.TP 5
+.Oa \-\-gamma gamma
+'
+Set the gamma correction to
+.IR gamma ,
+which can be a real number or
+.RB \(oq srgb \(cq.
+Roughly speaking, higher
+numbers exaggerate shadows and lower numbers exaggerate highlights.
+The default is the function defined by the standard sRGB color space,
+which usually works well. (Its effects are similar to
+\fB\-\-gamma\fP=2.2.) Gifsicle uses gamma correction when choosing a
+color palette (\fB\-\-colors\fP) and when dithering
+(\fB\-\-dither\fP).
+'
+.Sp
+.PD 0
+.TP
+.Oa \-\-change\-color color1 " " color2
+'
+Change
+.I color1
+to
+.I color2
+in the following input GIFs. (The
+.I color
+arguments have the same forms as in the
+.Op \-t
+option.) Change multiple colors by giving the option multiple
+times. Color changes don't interfere with one another, so you can safely
+swap two colors with
+.Qa \-\-change\-color "color1 color2" \-\-change\-color "color2 color1" .
+They all take effect as an input GIF is read.
+.Op \-\-no\-change\-color
+cancels all color changes.
+'
+.Sp
+.TP
+.Oa \-\-transform\-colormap command
+'
+.I Command
+should be a shell command that reads from standard input and writes to
+standard output. Each colormap in the output GIF is translated into text
+colormap format (see
+.Op \-\-use\-colormap
+below) and piped to the command. The output that command generates
+(which should also be in text colormap format) will replace the input
+colormap. The replacement doesn't consider color matching, so pixels
+that used color slot
+.I n
+in the input will still use color slot
+.I n
+in the output.
+'
+.Sp
+.TP
+.Oa \-\-use\-colormap colormap
+'
+Change the image to use
+.IR colormap .
+Each pixel in the image is changed to the closest match in
+.I colormap
+(or, if
+.Op \-\-dither
+is on, to a dithered combination of colors in
+.IR colormap ")."
+.I Colormap
+can be
+.BR web
+for the 216-color \(lqWeb-safe palette\(rq;
+.BR gray
+for grayscale;
+.BR bw
+for black-and-white; or the name of a file. That file should either be a
+text file (the format is described below) or a GIF file, whose global
+colormap will be used. If
+.Op \-\-colors\fR=\fIN
+is also given, an
+.IR N \-sized
+subset of
+.I colormap
+will be used.
+.Sp
+Text colormap files use this format:
+.Es
+; each non-comment line represents one color, "red green blue"
+; each component should be between 0 and 255
+0 0 0            ; like this
+255 255 255
+; or use web hex notation
+#ffffff          ; like this
+.Ee
+'
+.PD
+.PP
+.br
+'
+.SH EXAMPLES
+'
+First, let's create an animation, \(oqanim.gif\(cq:
+.Es
+\fBgifsicle a.gif b.gif c.gif d.gif > anim.gif\fR
+.Ee
+This animation will move very quickly: since we didn't specify a delay, a
+browser will cycle through the frames as fast as it can. Let's slow it down
+and pause .5 seconds between frames, using the
+.Op \-\-delay
+option.
+.Es
+\fBgifsicle \-\-delay 50 a.gif b.gif c.gif d.gif > anim.gif\fR
+.Ee
+If we also want the GIF to loop three times, we can use
+.Op \-\-loopcount :
+.Es
+\fBgifsicle \-d 50 \-\-loop=3 a.gif b.gif c.gif d.gif > anim.gif\fR
+.Ee
+(Rather than type
+.Op \-\-delay
+again, we used its short form,
+.Op \-d .
+Many options have short forms; you can see them by running
+.RB \(oq "gifsicle \-\-help" \(cq.
+We also abbreviated
+.Op \-\-loopcount
+to
+.Op \-\-loop ,
+which is OK since no other option starts with \(oqloop\(cq.)
+.PP
+To explode \(oqanim.gif\(cq into its component frames:
+.Es
+\fBgifsicle \-\-explode anim.gif\fR
+.br
+\fBls anim.gif*\fR
+.br
+anim.gif  anim.gif.000  anim.gif.001  anim.gif.002  anim.gif.003
+.Ee
+To optimize \(oqanim.gif\(cq:
+.Es
+\fBgifsicle \-b \-O2 anim.gif\fR
+.Ee
+To change the second frame of \(oqanim.gif\(cq to \(oqx.gif\(cq:
+.Es
+\fBgifsicle \-b \-\-unoptimize \-O2 anim.gif \-\-replace "#1" x.gif\fR
+.Ee
+.Op \-\-unoptimize
+is used since \(oqanim.gif\(cq was optimized in the last step. Editing
+individual frames in optimized GIFs is dangerous without
+.Op \-\-unoptimize ;
+frames following the changed frame could be corrupted by the change.
+Of course, this might be what you want.
+.PP
+Note that
+.Op \-\-unoptimize
+and
+.Op \-\-optimize
+can be on simultaneously.
+.Op \-\-unoptimize
+affects
+.I input
+GIF files, while
+.Op \-\-optimize
+affects
+.I output
+GIF files.
+.PP
+To print information about the first and fourth frames of \(oqanim.gif\(cq:
+.Es
+\fBgifsicle \-I "#0" "#3" < anim.gif\fR
+.Ee
+To make black the transparent color in all the GIFs in the current
+directory, and also print information about each:
+.Es
+\fBgifsicle \-bII \-\-trans "#000000" *.gif\fR
+.Ee
+Giving
+.Op \-I
+twice forces normal output to occur. With only one
+.Op \-I ,
+the GIFs would not be modified.
+.PP
+To change \(oqanim.gif\(cq to use a 64-color subset of the Web-safe palette:
+.Es
+\fBgifsicle \-b \-\-colors=64 \-\-use\-col=web anim.gif\fR
+.Ee
+To make a dithered black-and-white version of \(oqanim.gif\(cq:
+.Es
+\fBgifsicle \-\-dither \-\-use\-col=bw anim.gif > anim-bw.gif\fR
+.Ee
+.PP
+To overlay one GIF atop another\*Eproducing a one-frame output GIF that
+looks like the superposition of the two inputs\*Euse
+.B gifsicle
+twice:
+.Es
+\fBgifsicle bottom.gif top.gif | gifsicle \-U "#1" > result.gif\fR
+.Ee
+'
+.SH BUGS
+'
+Some optimized output GIFs may appear incorrectly on some GIF
+implementations (for example, Java's); see the
+.Op \-\-careful
+option.
+.PP
+Please email suggestions, additions, patches and bugs to
+ekohler@gmail.com.
+'
+.SH "SEE ALSO"
+'
+For a tutorial on GIF images and animations, you might try some of the
+resources listed on-line at webreference\%.com:
+.br
+http://www.webreference.com/authoring/graphics/animation\|.html
+'
+.SH AUTHORS
+.na
+Eddie Kohler <ek...@gmail.com>
+.br
+http://www.read.seas.harvard.edu/~kohler/
+.br
+He wrote it.
+.PP
+Anne Dudfield <an...@frii.com>
+.br
+http://www.frii.com/~annied/
+.br
+She named it.
+.PP
+Hans Dinsen-Hansen <di...@danbbs.dk>
+.br
+http://www.danbbs.dk/~dino/
+.br
+Adaptive tree method for GIF writing.
+.PP
+http://www.lcdf.org/gifsicle/
+.br
+The
+.B gifsicle
+home page.
+'
diff --git a/antora-ui-camel/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/man/man1/optipng.1 b/antora-ui-camel/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/man/man1/optipng.1
new file mode 100644
index 0000000..c4c4c42
--- /dev/null
+++ b/antora-ui-camel/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/man/man1/optipng.1
@@ -0,0 +1,343 @@
+.TH OPTIPNG 1 "2017-Dec-27" "OptiPNG version 0.7.7"
+
+.SH NAME
+.B OptiPNG
+\- Optimize Portable Network Graphics files
+
+.SH SYNOPSIS
+.B optipng
+[\fB\-?\fP | \fB\-h\fP | \fB\-help\fP]
+.br
+.B optipng
+[\fIoptions...\fP] \fIfiles...\fP
+
+.SH DESCRIPTION
+The
+.B OptiPNG
+program shall attempt to \fIoptimize\fP PNG files, i.e. reduce their size to
+a minimum, without losing semantic information. In addition, this program shall
+perform a suite of auxiliary functions like integrity checks, metadata recovery
+and pixmap-to-PNG conversion.
+.P
+The optimization attempts are not guaranteed to succeed. Valid PNG files that
+cannot be optimized by this program are normally left intact; their size will
+not grow. The user may request to override this default behavior.
+
+.SH FILES
+The input files are raster image files encoded either in PNG format (the native
+format), or in an external format. The currently supported external formats are
+GIF, BMP, PNM and TIFF.
+.P
+.B OptiPNG
+processes each image file given in the command line as follows:
+.P
+\- If the image is in PNG format:
+.IP
+Attempts to optimize the given file in-place. If optimization is successful, or
+if the option \fB\-force\fP is enabled, replaces the original file with its
+optimized version. The original file is backed up if the option \fB\-keep\fP
+is enabled.
+.P
+\- If the image is in an external format:
+.IP
+Creates an optimized PNG version of the given file. The output file name is
+composed from the original file name and the \fC.png\fP extension.
+.P
+Existing files are \fInot\fP overwritten, unless the option \fB\-clobber\fP is
+enabled.
+
+.SH OPTIONS
+.SS "General options"
+.TP
+\fB\-?\fP, \fB\-h\fP, \fB\-help\fP
+Show a complete summary of options.
+.TP
+\fB\-backup\fP, \fB\-keep\fP
+Keep a backup of the modified files.
+.TP
+\fB\-clobber\fP
+Overwrite the existing output and backup files.
+.br
+Under this option, if the option \fB\-backup\fP is not enabled, the old backups
+of the overwritten files are deleted.
+.TP
+\fB\-dir\fP \fIdirectory\fP
+Write the output files to \fIdirectory\fP.
+.TP
+\fB\-fix\fP
+Enable error recovery. This option has no effect on valid input files.
+.br
+The program will spend a reasonable amount of effort to recover as much data as
+possible, without increasing the output file size, but the success cannot be
+generally guaranteed. The program may even increase the file size, e.g., by
+reconstructing missing critical data. Under this option, integrity shall take
+precedence over file size.
+.br
+When this option is not used, the invalid input files are left unprocessed.
+.TP
+\fB\-force\fP
+Enforce writing of a new output file.
+.br
+This option overrides the program's decision not to write such file, e.g. when
+the PNG input is digitally signed (using dSIG), or when the PNG output becomes
+larger than the PNG input.
+.TP
+\fB\-log\fP \fIfile\fP
+Log messages to \fIfile\fP.
+For safety reasons, \fIfile\fP must have the extension \fC.log\fP.
+.br
+This option is deprecated and will be removed eventually. Use shell
+redirection.
+.TP
+\fB\-out\fP \fIfile\fP
+Write output file to \fIfile\fP.
+The command line must contain exactly one input file.
+.TP
+\fB\-preserve\fP
+Preserve file attributes (time stamps, file access rights, etc.) where
+applicable.
+.TP
+\fB\-quiet\fP, \fB\-silent\fP
+Run in quiet mode.
+.br
+The messages are still written to the log file if the option \fB\-log\fP is
+enabled.
+.TP
+\fB\-simulate\fP
+Run in simulation mode: perform the trials, but do not create output files.
+.TP
+\fB\-v\fP
+Enable the options \fB\-verbose\fP and \fB\-version\fP.
+.TP
+\fB\-verbose\fP
+Run in verbose mode.
+.TP
+\fB\-version\fP
+Show copyright, version and build info.
+.TP
+\fB\-\-\fP
+Stop option switch parsing.
+.SS "PNG encoding and optimization options"
+.TP
+\fB\-o\fP \fIlevel\fP
+Select the optimization level.
+.br
+The optimization level 0 enables a set of optimization operations that require
+minimal effort. There will be no changes to image attributes like bit depth
+or color type, and no recompression of existing IDAT datastreams.
+.br
+The optimization level 1 enables a single IDAT compression trial. The trial
+chosen is what \fBOptiPNG\fP \fIthinks\fP it's probably the most effective.
+.br
+The optimization levels 2 and higher enable multiple IDAT compression trials;
+the higher the level, the more trials.
+.br
+The behavior and the default value of this option may change across different
+program versions. Use the option \fB\-h\fP to see the details pertaining to
+your specific version.
+.TP
+\fB\-f\fP \fIfilters\fP
+Select the PNG delta filters.
+.br
+The \fIfilters\fP argument is specified as a rangeset (e.g. \fB\-f0\-5\fP),
+and the default \fIfilters\fP value depends on the optimization level set by
+the option \fB\-o\fP.
+.br
+The filter values 0, 1, 2, 3 and 4 indicate static filtering, and correspond to
+the standard PNG filter codes (\fINone\fP, \fILeft\fP, \fIUp\fP, \fIAverage\fP
+and \fIPaeth\fP, respectively). The filter value 5 indicates adaptive filtering,
+whose effect is defined by the \fBlibpng\fP(3) library used by \fBOptiPNG\fP.
+.TP
+\fB\-full\fP
+Produce a full report on IDAT.
+This option might slow down the trials.
+.TP
+\fB\-i\fP \fItype\fP
+Select the interlace type (0\-1).
+.br
+If the interlace type 0 is selected, the output image shall be non-interlaced
+(i.e. progressive-scanned). If the interlace type 1 is selected, the output
+image shall be interlaced using the \fIAdam7\fP method.
+.br
+By default, the output shall have the same interlace type as the input.
+.TP
+\fB\-nb\fP
+Do not apply bit depth reduction.
+.TP
+\fB\-nc\fP
+Do not apply color type reduction.
+.TP
+\fB\-np\fP
+Do not apply palette reduction.
+.TP
+\fB\-nx\fP
+Do not apply any lossless image reduction:
+enable the options \fB\-nb\fP, \fB\-nc\fP and \fB\-np\fP.
+.TP
+\fB\-nz\fP
+Do not recode IDAT datastreams.
+.br
+The IDAT optimization operations that do not require recoding (e.g. IDAT
+chunk concatenation) are still performed.
+.br
+This option has effect on PNG input files only.
+.TP
+\fB\-zc\fP \fIlevels\fP
+Select the zlib compression levels used in IDAT compression.
+.br
+The \fIlevels\fP argument is specified as a rangeset (e.g. \fB\-zc6\-9\fP),
+and the default \fIlevels\fP value depends on the optimization level set by
+the option \fB\-o\fP.
+.br
+The effect of this option is defined by the \fBzlib\fP(3) library used by
+\fBOptiPNG\fP.
+.TP
+\fB\-zm\fP \fIlevels\fP
+Select the zlib memory levels used in IDAT compression.
+.br
+The \fIlevels\fP argument is specified as a rangeset (e.g. \fB\-zm8\-9\fP),
+and the default \fIlevels\fP value depends on the optimization level set by
+the option \fB\-o\fP.
+.br
+The effect of this option is defined by the \fBzlib\fP(3) library used by
+\fBOptiPNG\fP.
+.TP
+\fB\-zs\fP \fIstrategies\fP
+Select the zlib compression strategies used in IDAT compression.
+.br
+The \fIstrategies\fP argument is specified as a rangeset (e.g. \fB\-zs0\-3\fP),
+and the default \fIstrategies\fP value depends on the optimization level set by
+the option \fB\-o\fP.
+.br
+The effect of this option is defined by the \fBzlib\fP(3) library used by
+\fBOptiPNG\fP.
+.TP
+\fB\-zw\fP \fIsize\fP
+Select the zlib window size (32k,16k,8k,4k,2k,1k,512,256) used in IDAT
+compression.
+.br
+The \fIsize\fP argument can be specified either in bytes (e.g. 16384) or
+kilobytes (e.g. 16k). The default \fIsize\fP value is set to the lowest
+window size that yields an IDAT output as big as if yielded by the value 32768.
+.br
+The effect of this option is defined by the \fBzlib\fP(3) library used by
+\fBOptiPNG\fP.
+.SS "Editing options"
+.TP
+\fB\-snip\fP
+Cut one image out of multi-image, animation or video files.
+.br
+Depending on the input format, this may be either the first or the most
+relevant (e.g. the largest) image.
+.TP
+\fB\-strip\fP \fIobjects\fP
+Strip metadata objects from a PNG file.
+.br
+PNG metadata is the information stored in any ancillary chunk except tRNS.
+(tRNS represents the alpha channel, which, even if ignored in rendering, is
+still a proper image channel in the RGBA color space.)
+.br
+The only option currently supported is \fB\-strip all\fP.
+.SS "Notes"
+Options may come in any order (except for \fB\-\-\fP), before, after, or
+alternating with file names. Option names are case-insensitive and may be
+abbreviated to their shortest unique prefix.
+.P
+Some options may have arguments that follow the option name, separated by
+whitespace or the equal sign ('\fB=\fP'). If the option argument is a number
+or a rangeset, the separator may be omitted. For example:
+.IP
+\fB\-out\fP \fCnewfile.png\fP \ <=> \ \fB\-out=\fP\fCnewfile.png\fP
+.br
+\fB\-o3\fP \ <=> \ \fB\-o 3\fP \ <=> \ \fB\-o=3\fP
+.br
+\fB\-f0,3\-5\fP \ <=> \ \fB\-f 0,3\-5\fP \ <=> \ \fB\-f=0,3\-5\fP
+.P
+Rangeset arguments are cumulative; e.g.
+.IP
+\fB\-f0 \-f3\-5\fP \ <=> \ \fB\-f0,3\-5\fP
+.br
+\fB\-zs0 \-zs1 \-zs2\-3\fP \ <=> \ \fB\-zs0,1,2,3\fP \ <=> \ \fB\-zs0\-3\fP
+
+.SH "EXTENDED DESCRIPTION"
+The PNG optimization algorithm consists of the following steps:
+.TP 4
+1.
+Reduce the bit depth, the color type and the color palette of the image.
+This step may reduce the size of the uncompressed image, which, indirectly, may
+reduce the size of the compressed image (i.e. the size of the output PNG file).
+.TP 4
+2.
+Run a suite of compression methods and strategies and select the compression
+parameters that yield the smallest output file.
+.TP 4
+3.
+Store all IDAT contents into a single chunk, eliminating the overhead
+incurred by repeated IDAT headers and CRCs.
+.TP 4
+4.
+Set the zlib window size inside IDAT to a mininum that does not affect the
+compression ratio, reducing the memory requirements of PNG decoders.
+.P
+Not all of the above steps need to be executed. The behavior depends on the
+actual input files and user options.
+.P
+Step 1 may be customized via the no-reduce options \fB\-nb\fP, \fB\-nc\fP,
+\fB\-np\fP and \fB\-nx\fP. Step 2 may be customized via the \fB\-o\fP option,
+and may be fine-tuned via the options \fB\-zc\fP, \fB\-zm\fP, \fB\-zs\fP and
+\fB\-zw\fP. Step 3 is always executed. Step 4 is executed only if a new IDAT is
+being created, and may be fine-tuned via the option \fB\-zw\fP.
+.P
+Extremely exhaustive searches are not generally expected to yield significant
+improvements in compression ratio, and are recommended to advanced users only.
+
+.SH EXAMPLES
+\fCoptipng file.png \ \ \ \ \ \fP# default speed
+.br
+\fCoptipng -o5 file.png \ \fP# slow
+.br
+\fCoptipng -o7 file.png \ \fP# very slow
+
+.SH BUGS
+Lossless image reductions are not completely implemented.
+(This does \fInot\fP affect the integrity of the output files.)
+Here are the missing pieces:
+.IP
+\- The color palette reductions are implemented only partially.
+.br
+\- The bit depth reductions below 8, for grayscale images, are not implemented
+yet.
+.P
+Encoding of images whose total IDAT size exceeds 2GB is not supported.
+.P
+TIFF support is limited to uncompressed, PNG-compatible (grayscale, RGB and
+RGBA) images.
+.P
+Metadata is not imported from the external image formats.
+.P
+There is no support for pipes, streams, extended file attributes or access
+control lists.
+
+.SH "SEE ALSO"
+\fBpng\fP(5),
+\fBlibpng\fP(3),
+\fBzlib\fP(3),
+\fBpngcrush\fP(1),
+\fBpngrewrite\fP(1).
+
+.SH STANDARDS
+The files produced by \fBOptiPNG\fP are compliant with \fBPNG\-2003\fP:
+.br
+Glenn Randers-Pehrson et al.
+\fIPortable Network Graphics (PNG) Specification, Second Edition\fP.
+.br
+W3C Recommendation 10 November 2003; ISO/IEC IS 15948:2003 (E).
+.br
+\fChttp://www.w3.org/TR/PNG/\fP
+
+.SH AUTHOR
+\fBOptiPNG\fP is written and maintained by Cosmin Truta.
+.PP
+This manual page was originally written by Nelson A. de Oliveira
+for the Debian Project. It was later updated by Cosmin Truta,
+and is now part of the \fBOptiPNG\fP distribution.
diff --git a/antora-ui-camel/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/optipng b/antora-ui-camel/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/optipng
index e9f982a..0f22c37 100755
Binary files a/antora-ui-camel/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/optipng and b/antora-ui-camel/.yarn/unplugged/optipng-bin-npm-6.0.0-3aa5f04a3e/node_modules/optipng-bin/vendor/optipng differ
diff --git a/yarn.lock b/yarn.lock
index 5fc8c1c..6c65a9f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -137,34 +137,34 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@antora/asciidoc-loader@npm:3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/asciidoc-loader@npm:3.0.0-alpha.9"
+"@antora/asciidoc-loader@npm:3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/asciidoc-loader@npm:3.0.0-alpha.10"
   dependencies:
-    "@antora/logger": 3.0.0-alpha.9
+    "@antora/logger": 3.0.0-alpha.10
     "@antora/user-require-helper": ~2.0
     "@asciidoctor/core": ~2.2
-  checksum: de20a2db0552f7690be136128176c21762488803a91e47c017912696e9e180bae2d86345598ea084fd5323859514bbbaa96a6745d75c283f50e004ea27a6cf1d
+  checksum: 775199dd0f63449ce1852e4ceb2902d655b336da00219de0a7c476866650506f730026a0a6a3b7676e19e22f08a81ba734dcf10ba74337c8490bf2523fd70d1d
   languageName: node
   linkType: hard
 
-"@antora/cli@npm:^3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/cli@npm:3.0.0-alpha.9"
+"@antora/cli@npm:^3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/cli@npm:3.0.0-alpha.10"
   dependencies:
-    "@antora/logger": 3.0.0-alpha.9
-    "@antora/playbook-builder": 3.0.0-alpha.9
+    "@antora/logger": 3.0.0-alpha.10
+    "@antora/playbook-builder": 3.0.0-alpha.10
     "@antora/user-require-helper": ~2.0
     commander: ~7.2
   bin:
     antora: bin/antora
-  checksum: 20efdb6945546373e413545ddae9ae0167cf19b9d24ab746ca295ee13460917bf7eb937e971bbb76bebc2cad86cbb9f9f9cce167e7114318acba314d6959da90
+  checksum: 214d1b1cbc710ec5f9ce10b43ed4354bd5dfb67c11a2575ee0d5eee69e1a8ec3acb159ca766f8a6f6a628b1e4eea22fe950215d4de66dc9628a59067ba318836
   languageName: node
   linkType: hard
 
-"@antora/content-aggregator@npm:3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/content-aggregator@npm:3.0.0-alpha.9"
+"@antora/content-aggregator@npm:3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/content-aggregator@npm:3.0.0-alpha.10"
   dependencies:
     "@antora/expand-path-helper": ~2.0
     "@antora/user-require-helper": ~2.0
@@ -182,27 +182,27 @@ __metadata:
     simple-get: ~4.0
     vinyl: ~2.2
     vinyl-fs: ~3.0
-  checksum: df0c07c16e545c3b50f0734ca41745571ee5fd4d03531cd5db9363c2550c42d1e0bd751dff762c929fbfd4286f81914d23b5954af2b305f31672ffec38543aec
+  checksum: 54311f8f4884be94419a8c88b6677c676f2060f13f7cfff9a9af396f6043ddf16214be33dc7fd02f15c6717362bdd0b2c10be5f2e47c3a807b6153a0a44240b8
   languageName: node
   linkType: hard
 
-"@antora/content-classifier@npm:3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/content-classifier@npm:3.0.0-alpha.9"
+"@antora/content-classifier@npm:3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/content-classifier@npm:3.0.0-alpha.10"
   dependencies:
-    "@antora/logger": 3.0.0-alpha.9
+    "@antora/logger": 3.0.0-alpha.10
     mime-types: ~2.1
     vinyl: ~2.2
-  checksum: f7c0f636c198bcf0a4694f0ba295f83be31901f06d9faf1cc45e39522500e12eec1c795dac65c2c26bf1418c13426f6e52abb9098f3843a6bf08fa20588e038b
+  checksum: 1bb1e097fb7aee6e79247bbfc5db2ecaa0479c27e14fd5074921763812de40a446d1925f714faf71577eaa756a45f3bde6387c33aca9f6fc8b72a6e8c46399b3
   languageName: node
   linkType: hard
 
-"@antora/document-converter@npm:3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/document-converter@npm:3.0.0-alpha.9"
+"@antora/document-converter@npm:3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/document-converter@npm:3.0.0-alpha.10"
   dependencies:
-    "@antora/asciidoc-loader": 3.0.0-alpha.9
-  checksum: f3d24466e45b583305873885b8f6240c86e4f7421583c4c686a16f7eda96719a4a69876ae8d55a950bb499d823c58c01b2b234e941d4c3c8ba38fa9b0a7cb1b4
+    "@antora/asciidoc-loader": 3.0.0-alpha.10
+  checksum: 59762a59fdaf695d676460915a76b4f315ec672bc2fc22a25afaa7609e1efaad4b10f4e89dc678069a5e896b50923b81ad249ad6135366236d25a469c1df6535
   languageName: node
   linkType: hard
 
@@ -213,108 +213,108 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@antora/logger@npm:3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/logger@npm:3.0.0-alpha.9"
+"@antora/logger@npm:3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/logger@npm:3.0.0-alpha.10"
   dependencies:
     "@antora/expand-path-helper": ~2.0
     pino: ~6.13
-    pino-pretty: ~6.0
+    pino-pretty: ~7.1
     sonic-boom: ~2.1
-  checksum: f14b81190a3f53f3656cb1cd675a016771b180d73446fa4c8ce716360bee9d32451c2935aa556229c8675416d8ca0666697f3fa0f5bf3905f830a59887e09440
+  checksum: 3541654c19c126bb5fee217afb115932094eec296cae5b00c476ee72047f45eb00419f6dcdbac9b50fa9bfda9aca780a1af95076ec188e82eddd04410f62e6eb
   languageName: node
   linkType: hard
 
-"@antora/navigation-builder@npm:3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/navigation-builder@npm:3.0.0-alpha.9"
+"@antora/navigation-builder@npm:3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/navigation-builder@npm:3.0.0-alpha.10"
   dependencies:
-    "@antora/asciidoc-loader": 3.0.0-alpha.9
-  checksum: 6650ee0f0796879fadfe4cc206c72a0cd5bc057bb113aa587e3f5b5873c1dc8e33b36b6b2db865713cd633a0b4735c0458fb183c6fe524c16f7d511dd0568342
+    "@antora/asciidoc-loader": 3.0.0-alpha.10
+  checksum: 53ae29fb66ea74f129d19ab1b2888538b40060e3c2c959cf573ebaacaf38f2385929934eded5971581cd08a611e79bfc7ba92385b2022f8eaa37076479c7c657
   languageName: node
   linkType: hard
 
-"@antora/page-composer@npm:3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/page-composer@npm:3.0.0-alpha.9"
+"@antora/page-composer@npm:3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/page-composer@npm:3.0.0-alpha.10"
   dependencies:
-    "@antora/logger": 3.0.0-alpha.9
+    "@antora/logger": 3.0.0-alpha.10
     handlebars: ~4.7
     require-from-string: ~2.0
-  checksum: b3b367e7c83e4294964ebb9783299298561b46bd0b375731b1a6cca39585b5ea38fb6aa2933ff131765d151664941a05e426aeb135653eed87a10e81a13190a7
+  checksum: 4a44b5fe5dbfcc6ea71de310779f955f05ac57646d2db52d2e3c97c01981dea55bfb0a2316b2c9305b45bc17644f2abee9247613846ecbef1ea88bb7d01faca1
   languageName: node
   linkType: hard
 
-"@antora/playbook-builder@npm:3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/playbook-builder@npm:3.0.0-alpha.9"
+"@antora/playbook-builder@npm:3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/playbook-builder@npm:3.0.0-alpha.10"
   dependencies:
-    "@antora/logger": 3.0.0-alpha.9
+    "@antora/logger": 3.0.0-alpha.10
     "@iarna/toml": ~2.2
     camelcase-keys: ~6.2
-    convict: ~6.1
+    convict: ~6.2
     js-yaml: ~4.1
     json5: ~2.2
-  checksum: 7e74daf6329e8e99c98763f32d5ca377c05f2daa523347879361d37be23973e4caed99928f0e7e0d3550ff7904382c36225d69693999bbfabcb7017685d261c5
+  checksum: 1fc94cb3fa46ba41bef2ca6c0f81672d68fa439e5dbeeadbbd4e82a3a96d833de8ce987c91059c57a1b8cf41aabb390e926a74e43fc068909a7e7e89a694f0c5
   languageName: node
   linkType: hard
 
-"@antora/redirect-producer@npm:3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/redirect-producer@npm:3.0.0-alpha.9"
+"@antora/redirect-producer@npm:3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/redirect-producer@npm:3.0.0-alpha.10"
   dependencies:
-    "@antora/asciidoc-loader": 3.0.0-alpha.9
+    "@antora/asciidoc-loader": 3.0.0-alpha.10
     vinyl: ~2.2
-  checksum: 11906505e39cc52bf213b9de23c4befc625eba3520ae0cca59533d5de3572aec0368b1621563af3d1b75cbfc2ed55612a2df807fa123044f7ef77f817c9c9dd6
+  checksum: a728b859c2013f94d702ddff4899d0b4e016b432147ee6a85dd94c692814b6dce840adf05b986b25c263faf9d9cdde68d366f8a4d754d84acd0e0af172634af4
   languageName: node
   linkType: hard
 
-"@antora/site-generator-default@npm:^3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/site-generator-default@npm:3.0.0-alpha.9"
+"@antora/site-generator-default@npm:^3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/site-generator-default@npm:3.0.0-alpha.10"
   dependencies:
-    "@antora/asciidoc-loader": 3.0.0-alpha.9
-    "@antora/content-aggregator": 3.0.0-alpha.9
-    "@antora/content-classifier": 3.0.0-alpha.9
-    "@antora/document-converter": 3.0.0-alpha.9
-    "@antora/navigation-builder": 3.0.0-alpha.9
-    "@antora/page-composer": 3.0.0-alpha.9
-    "@antora/playbook-builder": 3.0.0-alpha.9
-    "@antora/redirect-producer": 3.0.0-alpha.9
-    "@antora/site-mapper": 3.0.0-alpha.9
-    "@antora/site-publisher": 3.0.0-alpha.9
-    "@antora/ui-loader": 3.0.0-alpha.9
+    "@antora/asciidoc-loader": 3.0.0-alpha.10
+    "@antora/content-aggregator": 3.0.0-alpha.10
+    "@antora/content-classifier": 3.0.0-alpha.10
+    "@antora/document-converter": 3.0.0-alpha.10
+    "@antora/navigation-builder": 3.0.0-alpha.10
+    "@antora/page-composer": 3.0.0-alpha.10
+    "@antora/playbook-builder": 3.0.0-alpha.10
+    "@antora/redirect-producer": 3.0.0-alpha.10
+    "@antora/site-mapper": 3.0.0-alpha.10
+    "@antora/site-publisher": 3.0.0-alpha.10
+    "@antora/ui-loader": 3.0.0-alpha.10
     "@antora/user-require-helper": ~2.0
-  checksum: b0ee477650edda2526fefff64b115ab43a4aad8a2a7548c2698334a997154f2177c3e5c8c522fe2b3ceb48f3772219ade5896932990dea57b3fdfbd05c484768
+  checksum: 7f7d45fc4208c6e412bc433d8ca06639c85d27a75aa5b0dc4d3625e90073d04061dec69d297e1b580decdd304b6592dbbd9e6a35b7cdb06f41717fcd857323a4
   languageName: node
   linkType: hard
 
-"@antora/site-mapper@npm:3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/site-mapper@npm:3.0.0-alpha.9"
+"@antora/site-mapper@npm:3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/site-mapper@npm:3.0.0-alpha.10"
   dependencies:
-    "@antora/content-classifier": 3.0.0-alpha.9
+    "@antora/content-classifier": 3.0.0-alpha.10
     vinyl: ~2.2
-  checksum: 7d15e9c5c455ad62e27214057493488db5f9e4dffe41bdf5be763edb441c5c76712dc073e6c44f28f55a30fdcb97795cd9c4a071cb4cda64429414e51e8819dd
+  checksum: e57e5cdc2043c1ee7de5460cd56408de763e7b44c46a30738c766e301c9ea4905600d831f4638b4d1099bf72e5df1d23074c8e0223ed0aeeb2c2c2c1e1f4c9de
   languageName: node
   linkType: hard
 
-"@antora/site-publisher@npm:3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/site-publisher@npm:3.0.0-alpha.9"
+"@antora/site-publisher@npm:3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/site-publisher@npm:3.0.0-alpha.10"
   dependencies:
     "@antora/expand-path-helper": ~2.0
     "@antora/user-require-helper": ~2.0
     gulp-vinyl-zip: ~2.5
     vinyl: ~2.2
     vinyl-fs: ~3.0
-  checksum: 71d10e41e59a0bbb7d783d3bade5f284cd3f9391802700770fa1ce8a50837367439f78e4c58228de3866b3fd9ba5102c1ee1b0c44ec20900536532bd297d80bd
+  checksum: c728160bc29d5bf40c3bfaf1c1f46549209b9f95abdb51eab01a3593ff890ca66dd78c525c82b0434c8d21c13c477458aa189eb4ff496e412350a647ff4775ae
   languageName: node
   linkType: hard
 
-"@antora/ui-loader@npm:3.0.0-alpha.9":
-  version: 3.0.0-alpha.9
-  resolution: "@antora/ui-loader@npm:3.0.0-alpha.9"
+"@antora/ui-loader@npm:3.0.0-alpha.10":
+  version: 3.0.0-alpha.10
+  resolution: "@antora/ui-loader@npm:3.0.0-alpha.10"
   dependencies:
     "@antora/expand-path-helper": ~2.0
     cache-directory: ~2.0
@@ -328,7 +328,7 @@ __metadata:
     simple-get: ~4.0
     vinyl: ~2.2
     vinyl-fs: ~3.0
-  checksum: a09c08a8672ddc41b83d4701c92ab18bfa2cb8cbc1b03faba147bfc2009aa40fd9546f07c64f8d100c8f1f13f5c6358e1c5f2d4050c8a80a9fd6876301ad6bb8
+  checksum: b0d1d05758759cff99f5620b8a1082c0c22bf8a668c5bf7412d2a62999fbb500a8171cca5328652110de0b07f169879a292bf01b130d00553ff6a4e2a1a41938
   languageName: node
   linkType: hard
 
@@ -3245,8 +3245,8 @@ __metadata:
   version: 0.0.0-use.local
   resolution: "apache-camel-website@workspace:."
   dependencies:
-    "@antora/cli": ^3.0.0-alpha.9
-    "@antora/site-generator-default": ^3.0.0-alpha.9
+    "@antora/cli": ^3.0.0-alpha.10
+    "@antora/site-generator-default": ^3.0.0-alpha.10
     "@deadlinks/cargo-deadlinks": "github-release:deadlinks/cargo-deadlinks:0.8.0/deadlinks-linux"
     "@djencks/asciidoctor-antora-indexer": ^0.1.0-alpha.1
     "@djencks/asciidoctor-jsonpath": ^0.1.0-alpha.1
@@ -5325,10 +5325,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"colorette@npm:^1.3.0":
-  version: 1.4.0
-  resolution: "colorette@npm:1.4.0"
-  checksum: 7ef8e1ca16ca7ae4659722ecd103ff89388e1e1e4100ee41e892ad880364a2f8bb9aacbce6c96aa572f25e56a45a2ea7008ff69b8182bc6baf383cd269b963c0
+"colorette@npm:^2.0.7":
+  version: 2.0.16
+  resolution: "colorette@npm:2.0.16"
+  checksum: 082063746a9881b9a6f49398b6938f9181046ee963d437f759fff97094758769a78db0e1eae67fd39a589958e325379579b871aafdf48b50c6b6929022aa63ce
   languageName: node
   linkType: hard
 
@@ -5632,13 +5632,13 @@ __metadata:
   languageName: node
   linkType: hard
 
-"convict@npm:~6.1":
-  version: 6.1.0
-  resolution: "convict@npm:6.1.0"
+"convict@npm:~6.2":
+  version: 6.2.1
+  resolution: "convict@npm:6.2.1"
   dependencies:
     lodash.clonedeep: ^4.5.0
-    yargs-parser: ^18.1.3
-  checksum: dce48437434998c9e105e0554b7d33b49870bb81fb5a49cc4adae7187c54371382c0a16dac6a8c4edc1e2e599ee5b6121af18db4402b8472d067ce989c3c1065
+    yargs-parser: ^20.2.7
+  checksum: 9851b4d548593193a4e4a49efd8cc6ea47324fd4cd5050a535f32e4694a95f7e0d62220e2d33baac8e539e7a1e7e5270bbda60aef3684440184f86c2086233fa
   languageName: node
   linkType: hard
 
@@ -6176,6 +6176,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"dateformat@npm:^4.6.3":
+  version: 4.6.3
+  resolution: "dateformat@npm:4.6.3"
+  checksum: fbef602ec57765d7e3a25fab5fd3ee7b553c82759905903e2584d2e3d54dac25b7739faa1ce0cda0ccd22819eb5cdf8e363d28c6ecbcb1f373154076c1e90485
+  languageName: node
+  linkType: hard
+
 "debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.9":
   version: 2.6.9
   resolution: "debug@npm:2.6.9"
@@ -6901,6 +6908,18 @@ __metadata:
   languageName: node
   linkType: hard
 
+"duplexify@npm:^4.1.2":
+  version: 4.1.2
+  resolution: "duplexify@npm:4.1.2"
+  dependencies:
+    end-of-stream: ^1.4.1
+    inherits: ^2.0.3
+    readable-stream: ^3.1.1
+    stream-shift: ^1.0.0
+  checksum: 2736c1d2ace4be57557845f4ad41310191469e2f6f0bd5afecf8cb04f0d4ef0377f014751f7bfd298cf371b4a3c89f551bbe138899a01157ab048c93fdf78d60
+  languageName: node
+  linkType: hard
+
 "each-props@npm:^1.3.0":
   version: 1.3.2
   resolution: "each-props@npm:1.3.2"
@@ -14905,6 +14924,16 @@ fsevents@~2.1.2:
   languageName: node
   linkType: hard
 
+"pino-abstract-transport@npm:^0.4.0":
+  version: 0.4.0
+  resolution: "pino-abstract-transport@npm:0.4.0"
+  dependencies:
+    duplexify: ^4.1.2
+    split2: ^3.2.2
+  checksum: 53d5bd35eb4d5c4d1bdf2f6c6b00db79e124a3c5d12dc30f5b466ad530e6503a87f799c7ad59ee82e10940e318db83f73403361395d7cef81cd4ca7eb17ba665
+  languageName: node
+  linkType: hard
+
 "pino-pretty@npm:^5.0.0":
   version: 5.1.3
   resolution: "pino-pretty@npm:5.1.3"
@@ -14927,25 +14956,25 @@ fsevents@~2.1.2:
   languageName: node
   linkType: hard
 
-"pino-pretty@npm:~6.0":
-  version: 6.0.0
-  resolution: "pino-pretty@npm:6.0.0"
+"pino-pretty@npm:~7.1":
+  version: 7.1.0
+  resolution: "pino-pretty@npm:7.1.0"
   dependencies:
-    "@hapi/bourne": ^2.0.0
     args: ^5.0.1
-    colorette: ^1.3.0
-    dateformat: ^4.5.1
+    colorette: ^2.0.7
+    dateformat: ^4.6.3
     fast-safe-stringify: ^2.0.7
-    jmespath: ^0.15.0
     joycon: ^3.0.0
+    pino-abstract-transport: ^0.4.0
     pump: ^3.0.0
     readable-stream: ^3.6.0
     rfdc: ^1.3.0
-    split2: ^3.1.1
+    secure-json-parse: ^2.4.0
+    sonic-boom: ^2.2.0
     strip-json-comments: ^3.1.1
   bin:
     pino-pretty: bin.js
-  checksum: 865a5ee324c9ad62c9662677ff0f1e13f9b4d75ed3b701678f87304d377d825b1f08b7f351caaec529dc376edfaf77e414c48abde80a484f565a88f7d36681b8
+  checksum: dc717aa4346ac07bc4c20377bee08645294137e37ba6402aa350c2497f00da3ce1a80206859ee6a56a667df8ad7b71b5fdea0dff3fe9f943547836db78dbc975
   languageName: node
   linkType: hard
 
@@ -16953,6 +16982,13 @@ resolve@^2.0.0-next.1:
   languageName: node
   linkType: hard
 
+"secure-json-parse@npm:^2.4.0":
+  version: 2.4.0
+  resolution: "secure-json-parse@npm:2.4.0"
+  checksum: bbf325b52d3eb399b23a337ef7185380424600b4d6c07e62e8d1ab9e9cc657258b897841e4da1ecca9c9d4a83e426756f74fff1685640b3fbe4f481f577517d4
+  languageName: node
+  linkType: hard
+
 "seek-bzip@npm:^1.0.5":
   version: 1.0.5
   resolution: "seek-bzip@npm:1.0.5"
@@ -17387,6 +17423,15 @@ resolve@^2.0.0-next.1:
   languageName: node
   linkType: hard
 
+"sonic-boom@npm:^2.2.0":
+  version: 2.3.0
+  resolution: "sonic-boom@npm:2.3.0"
+  dependencies:
+    atomic-sleep: ^1.0.0
+  checksum: 97b5b795f775b0ed9a3dcc06658c4c73f6bbc6e072380156573f38640676c0b7f2f8024152342039eff5f42b8e98faeb163c2bf324b1689bf0dc9bb2b5fea122
+  languageName: node
+  linkType: hard
+
 "sonic-boom@npm:~2.1":
   version: 2.1.0
   resolution: "sonic-boom@npm:2.1.0"
@@ -17556,7 +17601,7 @@ resolve@^2.0.0-next.1:
   languageName: node
   linkType: hard
 
-"split2@npm:^3.1.1":
+"split2@npm:^3.1.1, split2@npm:^3.2.2":
   version: 3.2.2
   resolution: "split2@npm:3.2.2"
   dependencies:
@@ -20132,6 +20177,13 @@ resolve@^2.0.0-next.1:
   languageName: node
   linkType: hard
 
+"yargs-parser@npm:^20.2.7":
+  version: 20.2.9
+  resolution: "yargs-parser@npm:20.2.9"
+  checksum: 3c58da6f6142f93c5207e309764bd90f723b9d7ed43f2e8aad0da1cefab83ee8ebf311dee2e81102646b74450c899e35b35053800b91fac23e6f433056f4c4cf
+  languageName: node
+  linkType: hard
+
 "yargs-parser@npm:^5.0.0":
   version: 5.0.0
   resolution: "yargs-parser@npm:5.0.0"