From 6a3f61e7bbfdfa2f58148ab4f3c57b2fdfb32820 Mon Sep 17 00:00:00 2001
From: "Akihiko.KIgure" <akihiko.kigure@gmail.com>
Date: Sat, 2 Apr 2022 12:52:59 +0900
Subject: [PATCH] TSDoc (#46)

Ref. #45

Co-authored-by: akihiko kigure <akihiko.kigure@lifewood-m1.local>
---
 .github/workflows/build.yml         |    0
 .github/workflows/publish.yml       |    0
 docs/.nojekyll                      |    1 +
 docs/assets/highlight.css           |   78 ++
 docs/assets/icons.css               | 1043 ++++++++++++++++++++
 docs/assets/icons.png               |  Bin 0 -> 9615 bytes
 docs/assets/icons@2x.png            |  Bin 0 -> 28144 bytes
 docs/assets/main.js                 |   52 +
 docs/assets/search.js               |    1 +
 docs/assets/style.css               | 1388 +++++++++++++++++++++++++++
 docs/assets/widgets.png             |  Bin 0 -> 480 bytes
 docs/assets/widgets@2x.png          |  Bin 0 -> 855 bytes
 docs/classes/I2CAccess.html         |   10 +
 docs/classes/I2CPort.html           |   18 +
 docs/classes/I2CPortMap.html        |   11 +
 docs/classes/OperationError.html    |   12 +
 docs/index.html                     |   17 +
 docs/interfaces/I2CSlaveDevice.html |   35 +
 docs/modules.html                   |    1 +
 index.ts                            |  172 +++-
 package.json                        |    6 +-
 typedoc.json                        |    4 +
 yarn.lock                           |  492 +++++-----
 23 files changed, 3069 insertions(+), 272 deletions(-)
 mode change 100644 => 100755 .github/workflows/build.yml
 mode change 100644 => 100755 .github/workflows/publish.yml
 create mode 100644 docs/.nojekyll
 create mode 100644 docs/assets/highlight.css
 create mode 100644 docs/assets/icons.css
 create mode 100644 docs/assets/icons.png
 create mode 100644 docs/assets/icons@2x.png
 create mode 100644 docs/assets/main.js
 create mode 100644 docs/assets/search.js
 create mode 100644 docs/assets/style.css
 create mode 100644 docs/assets/widgets.png
 create mode 100644 docs/assets/widgets@2x.png
 create mode 100644 docs/classes/I2CAccess.html
 create mode 100644 docs/classes/I2CPort.html
 create mode 100644 docs/classes/I2CPortMap.html
 create mode 100644 docs/classes/OperationError.html
 create mode 100644 docs/index.html
 create mode 100644 docs/interfaces/I2CSlaveDevice.html
 create mode 100644 docs/modules.html
 create mode 100644 typedoc.json

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
old mode 100644
new mode 100755
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
old mode 100644
new mode 100755
diff --git a/docs/.nojekyll b/docs/.nojekyll
new file mode 100644
index 0000000..e2ac661
--- /dev/null
+++ b/docs/.nojekyll
@@ -0,0 +1 @@
+TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.
\ No newline at end of file
diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css
new file mode 100644
index 0000000..87e5be2
--- /dev/null
+++ b/docs/assets/highlight.css
@@ -0,0 +1,78 @@
+:root {
+    --light-hl-0: #0000FF;
+    --dark-hl-0: #569CD6;
+    --light-hl-1: #000000;
+    --dark-hl-1: #D4D4D4;
+    --light-hl-2: #0070C1;
+    --dark-hl-2: #4FC1FF;
+    --light-hl-3: #795E26;
+    --dark-hl-3: #DCDCAA;
+    --light-hl-4: #A31515;
+    --dark-hl-4: #CE9178;
+    --light-hl-5: #098658;
+    --dark-hl-5: #B5CEA8;
+    --light-hl-6: #AF00DB;
+    --dark-hl-6: #C586C0;
+    --light-hl-7: #001080;
+    --dark-hl-7: #9CDCFE;
+    --light-code-background: #FFFFFF;
+    --dark-code-background: #1E1E1E;
+}
+
+@media (prefers-color-scheme: light) { :root {
+    --hl-0: var(--light-hl-0);
+    --hl-1: var(--light-hl-1);
+    --hl-2: var(--light-hl-2);
+    --hl-3: var(--light-hl-3);
+    --hl-4: var(--light-hl-4);
+    --hl-5: var(--light-hl-5);
+    --hl-6: var(--light-hl-6);
+    --hl-7: var(--light-hl-7);
+    --code-background: var(--light-code-background);
+} }
+
+@media (prefers-color-scheme: dark) { :root {
+    --hl-0: var(--dark-hl-0);
+    --hl-1: var(--dark-hl-1);
+    --hl-2: var(--dark-hl-2);
+    --hl-3: var(--dark-hl-3);
+    --hl-4: var(--dark-hl-4);
+    --hl-5: var(--dark-hl-5);
+    --hl-6: var(--dark-hl-6);
+    --hl-7: var(--dark-hl-7);
+    --code-background: var(--dark-code-background);
+} }
+
+body.light {
+    --hl-0: var(--light-hl-0);
+    --hl-1: var(--light-hl-1);
+    --hl-2: var(--light-hl-2);
+    --hl-3: var(--light-hl-3);
+    --hl-4: var(--light-hl-4);
+    --hl-5: var(--light-hl-5);
+    --hl-6: var(--light-hl-6);
+    --hl-7: var(--light-hl-7);
+    --code-background: var(--light-code-background);
+}
+
+body.dark {
+    --hl-0: var(--dark-hl-0);
+    --hl-1: var(--dark-hl-1);
+    --hl-2: var(--dark-hl-2);
+    --hl-3: var(--dark-hl-3);
+    --hl-4: var(--dark-hl-4);
+    --hl-5: var(--dark-hl-5);
+    --hl-6: var(--dark-hl-6);
+    --hl-7: var(--dark-hl-7);
+    --code-background: var(--dark-code-background);
+}
+
+.hl-0 { color: var(--hl-0); }
+.hl-1 { color: var(--hl-1); }
+.hl-2 { color: var(--hl-2); }
+.hl-3 { color: var(--hl-3); }
+.hl-4 { color: var(--hl-4); }
+.hl-5 { color: var(--hl-5); }
+.hl-6 { color: var(--hl-6); }
+.hl-7 { color: var(--hl-7); }
+pre, code { background: var(--code-background); }
diff --git a/docs/assets/icons.css b/docs/assets/icons.css
new file mode 100644
index 0000000..776a356
--- /dev/null
+++ b/docs/assets/icons.css
@@ -0,0 +1,1043 @@
+.tsd-kind-icon {
+    display: block;
+    position: relative;
+    padding-left: 20px;
+    text-indent: -20px;
+}
+.tsd-kind-icon:before {
+    content: "";
+    display: inline-block;
+    vertical-align: middle;
+    width: 17px;
+    height: 17px;
+    margin: 0 3px 2px 0;
+    background-image: url(./icons.png);
+}
+@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {
+    .tsd-kind-icon:before {
+        background-image: url(./icons@2x.png);
+        background-size: 238px 204px;
+    }
+}
+
+.tsd-signature.tsd-kind-icon:before {
+    background-position: 0 -153px;
+}
+
+.tsd-kind-object-literal > .tsd-kind-icon:before {
+    background-position: 0px -17px;
+}
+.tsd-kind-object-literal.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -17px -17px;
+}
+.tsd-kind-object-literal.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -34px -17px;
+}
+
+.tsd-kind-class > .tsd-kind-icon:before {
+    background-position: 0px -34px;
+}
+.tsd-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -17px -34px;
+}
+.tsd-kind-class.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -34px -34px;
+}
+
+.tsd-kind-class.tsd-has-type-parameter > .tsd-kind-icon:before {
+    background-position: 0px -51px;
+}
+.tsd-kind-class.tsd-has-type-parameter.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -17px -51px;
+}
+.tsd-kind-class.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -34px -51px;
+}
+
+.tsd-kind-interface > .tsd-kind-icon:before {
+    background-position: 0px -68px;
+}
+.tsd-kind-interface.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -17px -68px;
+}
+.tsd-kind-interface.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -34px -68px;
+}
+
+.tsd-kind-interface.tsd-has-type-parameter > .tsd-kind-icon:before {
+    background-position: 0px -85px;
+}
+.tsd-kind-interface.tsd-has-type-parameter.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -17px -85px;
+}
+.tsd-kind-interface.tsd-has-type-parameter.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -34px -85px;
+}
+
+.tsd-kind-namespace > .tsd-kind-icon:before {
+    background-position: 0px -102px;
+}
+.tsd-kind-namespace.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -17px -102px;
+}
+.tsd-kind-namespace.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -34px -102px;
+}
+
+.tsd-kind-module > .tsd-kind-icon:before {
+    background-position: 0px -102px;
+}
+.tsd-kind-module.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -17px -102px;
+}
+.tsd-kind-module.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -34px -102px;
+}
+
+.tsd-kind-enum > .tsd-kind-icon:before {
+    background-position: 0px -119px;
+}
+.tsd-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -17px -119px;
+}
+.tsd-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -34px -119px;
+}
+
+.tsd-kind-enum-member > .tsd-kind-icon:before {
+    background-position: 0px -136px;
+}
+.tsd-kind-enum-member.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -17px -136px;
+}
+.tsd-kind-enum-member.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -34px -136px;
+}
+
+.tsd-kind-signature > .tsd-kind-icon:before {
+    background-position: 0px -153px;
+}
+.tsd-kind-signature.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -17px -153px;
+}
+.tsd-kind-signature.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -34px -153px;
+}
+
+.tsd-kind-type-alias > .tsd-kind-icon:before {
+    background-position: 0px -170px;
+}
+.tsd-kind-type-alias.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -17px -170px;
+}
+.tsd-kind-type-alias.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -34px -170px;
+}
+
+.tsd-kind-type-alias.tsd-has-type-parameter > .tsd-kind-icon:before {
+    background-position: 0px -187px;
+}
+.tsd-kind-type-alias.tsd-has-type-parameter.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -17px -187px;
+}
+.tsd-kind-type-alias.tsd-has-type-parameter.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -34px -187px;
+}
+
+.tsd-kind-variable > .tsd-kind-icon:before {
+    background-position: -136px -0px;
+}
+.tsd-kind-variable.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -0px;
+}
+.tsd-kind-variable.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -0px;
+}
+.tsd-kind-variable.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -0px;
+}
+.tsd-kind-variable.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -0px;
+}
+.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -0px;
+}
+.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -0px;
+}
+.tsd-kind-variable.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -0px;
+}
+.tsd-kind-variable.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -0px;
+}
+.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -0px;
+}
+.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -0px;
+}
+.tsd-kind-variable.tsd-parent-kind-interface > .tsd-kind-icon:before {
+    background-position: -204px -0px;
+}
+.tsd-kind-variable.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -0px;
+}
+
+.tsd-kind-property > .tsd-kind-icon:before {
+    background-position: -136px -0px;
+}
+.tsd-kind-property.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -0px;
+}
+.tsd-kind-property.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -0px;
+}
+.tsd-kind-property.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -0px;
+}
+.tsd-kind-property.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -0px;
+}
+.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -0px;
+}
+.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -0px;
+}
+.tsd-kind-property.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -0px;
+}
+.tsd-kind-property.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -0px;
+}
+.tsd-kind-property.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -0px;
+}
+.tsd-kind-property.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -0px;
+}
+.tsd-kind-property.tsd-parent-kind-interface > .tsd-kind-icon:before {
+    background-position: -204px -0px;
+}
+.tsd-kind-property.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -0px;
+}
+
+.tsd-kind-get-signature > .tsd-kind-icon:before {
+    background-position: -136px -17px;
+}
+.tsd-kind-get-signature.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -17px;
+}
+.tsd-kind-get-signature.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -17px;
+}
+.tsd-kind-get-signature.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -17px;
+}
+.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -17px;
+}
+.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -17px;
+}
+.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -17px;
+}
+.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -17px;
+}
+.tsd-kind-get-signature.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -17px;
+}
+.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -17px;
+}
+.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -17px;
+}
+.tsd-kind-get-signature.tsd-parent-kind-interface > .tsd-kind-icon:before {
+    background-position: -204px -17px;
+}
+.tsd-kind-get-signature.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -17px;
+}
+
+.tsd-kind-set-signature > .tsd-kind-icon:before {
+    background-position: -136px -34px;
+}
+.tsd-kind-set-signature.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -34px;
+}
+.tsd-kind-set-signature.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -34px;
+}
+.tsd-kind-set-signature.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -34px;
+}
+.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -34px;
+}
+.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -34px;
+}
+.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -34px;
+}
+.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -34px;
+}
+.tsd-kind-set-signature.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -34px;
+}
+.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -34px;
+}
+.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -34px;
+}
+.tsd-kind-set-signature.tsd-parent-kind-interface > .tsd-kind-icon:before {
+    background-position: -204px -34px;
+}
+.tsd-kind-set-signature.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -34px;
+}
+
+.tsd-kind-accessor > .tsd-kind-icon:before {
+    background-position: -136px -51px;
+}
+.tsd-kind-accessor.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -51px;
+}
+.tsd-kind-accessor.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -51px;
+}
+.tsd-kind-accessor.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -51px;
+}
+.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -51px;
+}
+.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -51px;
+}
+.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -51px;
+}
+.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -51px;
+}
+.tsd-kind-accessor.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -51px;
+}
+.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -51px;
+}
+.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -51px;
+}
+.tsd-kind-accessor.tsd-parent-kind-interface > .tsd-kind-icon:before {
+    background-position: -204px -51px;
+}
+.tsd-kind-accessor.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -51px;
+}
+
+.tsd-kind-function > .tsd-kind-icon:before {
+    background-position: -136px -68px;
+}
+.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -68px;
+}
+.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -68px;
+}
+.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -68px;
+}
+.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -68px;
+}
+.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -68px;
+}
+.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -68px;
+}
+.tsd-kind-function.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -68px;
+}
+.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -68px;
+}
+.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -68px;
+}
+.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -68px;
+}
+.tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before {
+    background-position: -204px -68px;
+}
+.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -68px;
+}
+
+.tsd-kind-method > .tsd-kind-icon:before {
+    background-position: -136px -68px;
+}
+.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -68px;
+}
+.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -68px;
+}
+.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -68px;
+}
+.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -68px;
+}
+.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -68px;
+}
+.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -68px;
+}
+.tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -68px;
+}
+.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -68px;
+}
+.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -187px -68px;
+}
+.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -68px;
+}
+.tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before {
+    background-position: -204px -68px;
+}
+.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -68px;
+}
+
+.tsd-kind-call-signature > .tsd-kind-icon:before {
+    background-position: -136px -68px;
+}
+.tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -68px;
+}
+.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -68px;
+}
+.tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -68px;
+}
+.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -68px;
+}
+.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -68px;
+}
+.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -68px;
+}
+.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -68px;
+}
+.tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -68px;
+}
+.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -68px;
+}
+.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -68px;
+}
+.tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before {
+    background-position: -204px -68px;
+}
+.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -68px;
+}
+
+.tsd-kind-function.tsd-has-type-parameter > .tsd-kind-icon:before {
+    background-position: -136px -85px;
+}
+.tsd-kind-function.tsd-has-type-parameter.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -153px -85px;
+}
+.tsd-kind-function.tsd-has-type-parameter.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -85px;
+}
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class
+    > .tsd-kind-icon:before {
+    background-position: -51px -85px;
+}
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -85px;
+}
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -85px;
+}
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -85px;
+}
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -85px;
+}
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum
+    > .tsd-kind-icon:before {
+    background-position: -170px -85px;
+}
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -85px;
+}
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -85px;
+}
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface
+    > .tsd-kind-icon:before {
+    background-position: -204px -85px;
+}
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -85px;
+}
+
+.tsd-kind-method.tsd-has-type-parameter > .tsd-kind-icon:before {
+    background-position: -136px -85px;
+}
+.tsd-kind-method.tsd-has-type-parameter.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -153px -85px;
+}
+.tsd-kind-method.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -85px;
+}
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class
+    > .tsd-kind-icon:before {
+    background-position: -51px -85px;
+}
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -85px;
+}
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -85px;
+}
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -85px;
+}
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -85px;
+}
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum
+    > .tsd-kind-icon:before {
+    background-position: -170px -85px;
+}
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -85px;
+}
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -85px;
+}
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface
+    > .tsd-kind-icon:before {
+    background-position: -204px -85px;
+}
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -85px;
+}
+
+.tsd-kind-constructor > .tsd-kind-icon:before {
+    background-position: -136px -102px;
+}
+.tsd-kind-constructor.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -102px;
+}
+.tsd-kind-constructor.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -102px;
+}
+.tsd-kind-constructor.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -102px;
+}
+.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -102px;
+}
+.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -102px;
+}
+.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -102px;
+}
+.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -102px;
+}
+.tsd-kind-constructor.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -102px;
+}
+.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -102px;
+}
+.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -102px;
+}
+.tsd-kind-constructor.tsd-parent-kind-interface > .tsd-kind-icon:before {
+    background-position: -204px -102px;
+}
+.tsd-kind-constructor.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -102px;
+}
+
+.tsd-kind-constructor-signature > .tsd-kind-icon:before {
+    background-position: -136px -102px;
+}
+.tsd-kind-constructor-signature.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -102px;
+}
+.tsd-kind-constructor-signature.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -102px;
+}
+.tsd-kind-constructor-signature.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -102px;
+}
+.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -102px;
+}
+.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -102px;
+}
+.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -102px;
+}
+.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -102px;
+}
+.tsd-kind-constructor-signature.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -102px;
+}
+.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -102px;
+}
+.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -102px;
+}
+.tsd-kind-constructor-signature.tsd-parent-kind-interface
+    > .tsd-kind-icon:before {
+    background-position: -204px -102px;
+}
+.tsd-kind-constructor-signature.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -102px;
+}
+
+.tsd-kind-index-signature > .tsd-kind-icon:before {
+    background-position: -136px -119px;
+}
+.tsd-kind-index-signature.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -119px;
+}
+.tsd-kind-index-signature.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -119px;
+}
+.tsd-kind-index-signature.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -119px;
+}
+.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -119px;
+}
+.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -119px;
+}
+.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -119px;
+}
+.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -119px;
+}
+.tsd-kind-index-signature.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -119px;
+}
+.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -119px;
+}
+.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -119px;
+}
+.tsd-kind-index-signature.tsd-parent-kind-interface > .tsd-kind-icon:before {
+    background-position: -204px -119px;
+}
+.tsd-kind-index-signature.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -119px;
+}
+
+.tsd-kind-event > .tsd-kind-icon:before {
+    background-position: -136px -136px;
+}
+.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -136px;
+}
+.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -136px;
+}
+.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -136px;
+}
+.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+    background-position: -68px -136px;
+}
+.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -85px -136px;
+}
+.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -136px;
+}
+.tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -136px;
+}
+.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -136px;
+}
+.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -187px -136px;
+}
+.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -136px;
+}
+.tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before {
+    background-position: -204px -136px;
+}
+.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -136px;
+}
+
+.tsd-is-static > .tsd-kind-icon:before {
+    background-position: -136px -153px;
+}
+.tsd-is-static.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -153px;
+}
+.tsd-is-static.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -153px;
+}
+.tsd-is-static.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -153px;
+}
+.tsd-is-static.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+    background-position: -68px -153px;
+}
+.tsd-is-static.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -85px -153px;
+}
+.tsd-is-static.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -153px;
+}
+.tsd-is-static.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -153px;
+}
+.tsd-is-static.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -153px;
+}
+.tsd-is-static.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -187px -153px;
+}
+.tsd-is-static.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -153px;
+}
+.tsd-is-static.tsd-parent-kind-interface > .tsd-kind-icon:before {
+    background-position: -204px -153px;
+}
+.tsd-is-static.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -153px;
+}
+
+.tsd-is-static.tsd-kind-function > .tsd-kind-icon:before {
+    background-position: -136px -170px;
+}
+.tsd-is-static.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -170px;
+}
+.tsd-is-static.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -170px;
+}
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -170px;
+}
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -170px;
+}
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -170px;
+}
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -170px;
+}
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -170px;
+}
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -170px;
+}
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -170px;
+}
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -170px;
+}
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface
+    > .tsd-kind-icon:before {
+    background-position: -204px -170px;
+}
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -170px;
+}
+
+.tsd-is-static.tsd-kind-method > .tsd-kind-icon:before {
+    background-position: -136px -170px;
+}
+.tsd-is-static.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -170px;
+}
+.tsd-is-static.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -170px;
+}
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -170px;
+}
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -170px;
+}
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -170px;
+}
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -170px;
+}
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -170px;
+}
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -170px;
+}
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -170px;
+}
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -170px;
+}
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface
+    > .tsd-kind-icon:before {
+    background-position: -204px -170px;
+}
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -170px;
+}
+
+.tsd-is-static.tsd-kind-call-signature > .tsd-kind-icon:before {
+    background-position: -136px -170px;
+}
+.tsd-is-static.tsd-kind-call-signature.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -153px -170px;
+}
+.tsd-is-static.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -170px;
+}
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class
+    > .tsd-kind-icon:before {
+    background-position: -51px -170px;
+}
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -170px;
+}
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -170px;
+}
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -170px;
+}
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -170px;
+}
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum
+    > .tsd-kind-icon:before {
+    background-position: -170px -170px;
+}
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -170px;
+}
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -170px;
+}
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface
+    > .tsd-kind-icon:before {
+    background-position: -204px -170px;
+}
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -170px;
+}
+
+.tsd-is-static.tsd-kind-event > .tsd-kind-icon:before {
+    background-position: -136px -187px;
+}
+.tsd-is-static.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before {
+    background-position: -153px -187px;
+}
+.tsd-is-static.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before {
+    background-position: -119px -187px;
+}
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before {
+    background-position: -51px -187px;
+}
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -68px -187px;
+}
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -85px -187px;
+}
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -102px -187px;
+}
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -187px;
+}
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before {
+    background-position: -170px -187px;
+}
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected
+    > .tsd-kind-icon:before {
+    background-position: -187px -187px;
+}
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private
+    > .tsd-kind-icon:before {
+    background-position: -119px -187px;
+}
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface
+    > .tsd-kind-icon:before {
+    background-position: -204px -187px;
+}
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited
+    > .tsd-kind-icon:before {
+    background-position: -221px -187px;
+}
diff --git a/docs/assets/icons.png b/docs/assets/icons.png
new file mode 100644
index 0000000000000000000000000000000000000000..3836d5fe46e48bbe186116855aae879c23935327
GIT binary patch
literal 9615
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
NZmR35l_G4O{0}dcmS_L~

literal 0
HcmV?d00001

diff --git a/docs/assets/icons@2x.png b/docs/assets/icons@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a209e2f6d7f915cc9cb6fe7a4264c8be4db87b0
GIT binary patch
literal 28144
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

literal 0
HcmV?d00001

diff --git a/docs/assets/main.js b/docs/assets/main.js
new file mode 100644
index 0000000..61009a4
--- /dev/null
+++ b/docs/assets/main.js
@@ -0,0 +1,52 @@
+(()=>{var Ce=Object.create;var J=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,_e=Object.prototype.hasOwnProperty;var Me=t=>J(t,"__esModule",{value:!0});var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Oe(e))!_e.call(t,n)&&n!=="default"&&J(t,n,{get:()=>e[n],enumerable:!(r=Pe(e,n))||r.enumerable});return t},Ae=t=>De(Me(J(t!=null?Ce(Re(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var de=Fe((ue,he)=>{(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i<n.length;i++){var s=n[i],o=e[s];if(Array.isArray(o)){r[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){r[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return r},t.FieldRef=function(e,r,n){this.docRef=e,this.fieldName=r,this._stringValue=n},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var r=e.indexOf(t.FieldRef.joiner);if(r===-1)throw"malformed field ref string";var n=e.slice(0,r),i=e.slice(r+1);return new t.FieldRef(i,n,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var r=0;r<this.length;r++)this.elements[e[r]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var r,n,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(r=this,n=e):(r=e,n=this),i=Object.keys(r.elements);for(var o=0;o<i.length;o++){var a=i[o];a in n.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,r){var n=0;for(var i in e)i!="_index"&&(n+=Object.keys(e[i]).length);var s=(r-n+.5)/(n+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,r){this.str=e||"",this.metadata=r||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(r){return r},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,r){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(f){return new t.Token(t.utils.asString(f).toLowerCase(),t.utils.clone(r))});for(var n=e.toString().toLowerCase(),i=n.length,s=[],o=0,a=0;o<=i;o++){var c=n.charAt(o),l=o-a;if(c.match(t.tokenizer.separator)||o==i){if(l>0){var h=t.utils.clone(r)||{};h.position=[a,l],h.index=s.length,s.push(new t.Token(n.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
+`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n<r;n++){for(var i=this._stack[n],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var c=0;c<a.length;c++)s.push(a[c]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,r){var n=new t.Token(e,r);return this.run([n]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var r=0,n=this.elements.length/2,i=n-r,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(r=s),o>e&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,r){this.upsert(e,r,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,r,n){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=n(this.elements[i+1],r):this.elements.splice(i,0,e,r)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,r=this.elements.length,n=1;n<r;n+=2){var i=this.elements[n];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var r=0,n=this.elements,i=e.elements,s=n.length,o=i.length,a=0,c=0,l=0,h=0;l<s&&h<o;)a=n[l],c=i[h],a<c?l+=2:a>c?h+=2:a==c&&(r+=n[l+1]*i[h+1],l+=2,h+=2);return r},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),r=1,n=0;r<this.elements.length;r+=2,n++)e[n]=this.elements[r];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},r={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",s=n+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,c="^("+s+")?"+o+s+"("+o+")?$",l="^("+s+")?"+o+s+o+s,h="^("+s+")?"+i,f=new RegExp(a),v=new RegExp(l),b=new RegExp(c),y=new RegExp(h),E=/^(.+?)(ss|i)es$/,p=/^(.+?)([^s])s$/,m=/^(.+?)eed$/,T=/^(.+?)(ed|ing)$/,w=/.$/,k=/(at|bl|iz)$/,M=new RegExp("([^aeiouylsz])\\1$"),j=new RegExp("^"+s+i+"[^aeiouwxy]$"),V=/^(.+?[^aeiou])y$/,B=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,q=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,H=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,$=/^(.+?)(s|t)(ion)$/,P=/^(.+?)e$/,W=/ll$/,U=new RegExp("^"+s+i+"[^aeiouwxy]$"),z=function(u){var g,O,S,d,x,R,D;if(u.length<3)return u;if(S=u.substr(0,1),S=="y"&&(u=S.toUpperCase()+u.substr(1)),d=E,x=p,d.test(u)?u=u.replace(d,"$1$2"):x.test(u)&&(u=u.replace(x,"$1$2")),d=m,x=T,d.test(u)){var L=d.exec(u);d=f,d.test(L[1])&&(d=w,u=u.replace(d,""))}else if(x.test(u)){var L=x.exec(u);g=L[1],x=y,x.test(g)&&(u=g,x=k,R=M,D=j,x.test(u)?u=u+"e":R.test(u)?(d=w,u=u.replace(d,"")):D.test(u)&&(u=u+"e"))}if(d=V,d.test(u)){var L=d.exec(u);g=L[1],u=g+"i"}if(d=B,d.test(u)){var L=d.exec(u);g=L[1],O=L[2],d=f,d.test(g)&&(u=g+e[O])}if(d=q,d.test(u)){var L=d.exec(u);g=L[1],O=L[2],d=f,d.test(g)&&(u=g+r[O])}if(d=H,x=$,d.test(u)){var L=d.exec(u);g=L[1],d=v,d.test(g)&&(u=g)}else if(x.test(u)){var L=x.exec(u);g=L[1]+L[2],x=v,x.test(g)&&(u=g)}if(d=P,d.test(u)){var L=d.exec(u);g=L[1],d=v,x=b,R=U,(d.test(g)||x.test(g)&&!R.test(g))&&(u=g)}return d=W,x=v,d.test(u)&&x.test(u)&&(d=w,u=u.replace(d,"")),S=="y"&&(u=S.toLowerCase()+u.substr(1)),u};return function(F){return F.update(z)}}(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var r=e.reduce(function(n,i){return n[i]=i,n},{});return function(n){if(n&&r[n.toString()]!==n.toString())return n}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(r){return r.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var r=new t.TokenSet.Builder,n=0,i=e.length;n<i;n++)r.insert(e[n]);return r.finish(),r.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,r){for(var n=new t.TokenSet,i=[{node:n,editsRemaining:r,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),f=s.str.charAt(1),v;f in s.node.edges?v=s.node.edges[f]:(v=new t.TokenSet,s.node.edges[f]=v),s.str.length==1&&(v.final=!0),i.push({node:v,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")r.edges[o]=r,r.final=a;else{var c=new t.TokenSet;c.final=a,r.edges[o]=c,r=c}}return n},t.TokenSet.prototype.toArray=function(){for(var e=[],r=[{prefix:"",node:this}];r.length;){var n=r.pop(),i=Object.keys(n.node.edges),s=i.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var o=0;o<s;o++){var a=i[o];r.push({prefix:n.prefix.concat(a),node:n.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",r=Object.keys(this.edges).sort(),n=r.length,i=0;i<n;i++){var s=r[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var r=new t.TokenSet,n=void 0,i=[{qNode:e,output:r,node:this}];i.length;){n=i.pop();for(var s=Object.keys(n.qNode.edges),o=s.length,a=Object.keys(n.node.edges),c=a.length,l=0;l<o;l++)for(var h=s[l],f=0;f<c;f++){var v=a[f];if(v==h||h=="*"){var b=n.node.edges[v],y=n.qNode.edges[h],E=b.final&&y.final,p=void 0;v in n.output.edges?(p=n.output.edges[v],p.final=p.final||E):(p=new t.TokenSet,p.final=E,n.output.edges[v]=p),i.push({qNode:y,output:p,node:b})}}}return r},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var r,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)n++;this.minimize(n),this.uncheckedNodes.length==0?r=this.root:r=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=n;i<e.length;i++){var s=new t.TokenSet,o=e[i];r.edges[o]=s,this.uncheckedNodes.push({parent:r,char:o,child:s}),r=s}r.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var r=this.uncheckedNodes.length-1;r>=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c<this.fields.length;c++)i[this.fields[c]]=new t.Vector;e.call(r,r);for(var c=0;c<r.clauses.length;c++){var l=r.clauses[c],h=null,f=t.Set.empty;l.usePipeline?h=this.pipeline.runString(l.term,{fields:l.fields}):h=[l.term];for(var v=0;v<h.length;v++){var b=h[v];l.term=b;var y=t.TokenSet.fromClause(l),E=this.tokenSet.intersect(y).toArray();if(E.length===0&&l.presence===t.Query.presence.REQUIRED){for(var p=0;p<l.fields.length;p++){var m=l.fields[p];o[m]=t.Set.empty}break}for(var T=0;T<E.length;T++)for(var w=E[T],k=this.invertedIndex[w],M=k._index,p=0;p<l.fields.length;p++){var m=l.fields[p],j=k[m],V=Object.keys(j),B=w+"/"+m,q=new t.Set(V);if(l.presence==t.Query.presence.REQUIRED&&(f=f.union(q),o[m]===void 0&&(o[m]=t.Set.complete)),l.presence==t.Query.presence.PROHIBITED){a[m]===void 0&&(a[m]=t.Set.empty),a[m]=a[m].union(q);continue}if(i[m].upsert(M,l.boost,function(Qe,Ie){return Qe+Ie}),!s[B]){for(var H=0;H<V.length;H++){var $=V[H],P=new t.FieldRef($,m),W=j[$],U;(U=n[P])===void 0?n[P]=new t.MatchData(w,m,W):U.add(w,m,W)}s[B]=!0}}}if(l.presence===t.Query.presence.REQUIRED)for(var p=0;p<l.fields.length;p++){var m=l.fields[p];o[m]=o[m].intersect(f)}}for(var z=t.Set.complete,F=t.Set.empty,c=0;c<this.fields.length;c++){var m=this.fields[c];o[m]&&(z=z.intersect(o[m])),a[m]&&(F=F.union(a[m]))}var u=Object.keys(n),g=[],O=Object.create(null);if(r.isNegated()){u=Object.keys(this.fieldVectors);for(var c=0;c<u.length;c++){var P=u[c],S=t.FieldRef.fromString(P);n[P]=new t.MatchData}}for(var c=0;c<u.length;c++){var S=t.FieldRef.fromString(u[c]),d=S.docRef;if(!!z.contains(d)&&!F.contains(d)){var x=this.fieldVectors[S],R=i[S.fieldName].similarity(x),D;if((D=O[d])!==void 0)D.score+=R,D.matchData.combine(n[S]);else{var L={ref:d,score:R,matchData:n[S]};O[d]=L,g.push(L)}}}return g.sort(function(Se,ke){return ke.score-Se.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(n){return[n,this.invertedIndex[n]]},this),r=Object.keys(this.fieldVectors).map(function(n){return[n,this.fieldVectors[n].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:r,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var r={},n={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,c=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var l=0;l<i.length;l++){var h=i[l],f=h[0],v=h[1];n[f]=new t.Vector(v)}for(var l=0;l<o.length;l++){var h=o[l],b=h[0],y=h[1];a.insert(b),s[b]=y}return a.finish(),r.fields=e.fields,r.fieldVectors=n,r.invertedIndex=s,r.tokenSet=a.root,r.pipeline=c,new t.Index(r)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,r){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=r||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,c=a?a(e):e[o],l=this.tokenizer(c,{fields:[o]}),h=this.pipeline.run(l),f=new t.FieldRef(n,o),v=Object.create(null);this.fieldTermFrequencies[f]=v,this.fieldLengths[f]=0,this.fieldLengths[f]+=h.length;for(var b=0;b<h.length;b++){var y=h[b];if(v[y]==null&&(v[y]=0),v[y]+=1,this.invertedIndex[y]==null){var E=Object.create(null);E._index=this.termIndex,this.termIndex+=1;for(var p=0;p<i.length;p++)E[i[p]]=Object.create(null);this.invertedIndex[y]=E}this.invertedIndex[y][o][n]==null&&(this.invertedIndex[y][o][n]=Object.create(null));for(var m=0;m<this.metadataWhitelist.length;m++){var T=this.metadataWhitelist[m],w=y.metadata[T];this.invertedIndex[y][o][n][T]==null&&(this.invertedIndex[y][o][n][T]=[]),this.invertedIndex[y][o][n][T].push(w)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),r=e.length,n={},i={},s=0;s<r;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,n[a]||(n[a]=0),n[a]+=this.fieldLengths[o]}for(var c=Object.keys(this._fields),s=0;s<c.length;s++){var l=c[s];n[l]=n[l]/i[l]}this.averageFieldLength=n},t.Builder.prototype.createFieldVectors=function(){for(var e={},r=Object.keys(this.fieldTermFrequencies),n=r.length,i=Object.create(null),s=0;s<n;s++){for(var o=t.FieldRef.fromString(r[s]),a=o.fieldName,c=this.fieldLengths[o],l=new t.Vector,h=this.fieldTermFrequencies[o],f=Object.keys(h),v=f.length,b=this._fields[a].boost||1,y=this._documents[o.docRef].boost||1,E=0;E<v;E++){var p=f[E],m=h[p],T=this.invertedIndex[p]._index,w,k,M;i[p]===void 0?(w=t.idf(this.invertedIndex[p],this.documentCount),i[p]=w):w=i[p],k=w*((this._k1+1)*m)/(this._k1*(1-this._b+this._b*(c/this.averageFieldLength[a]))+m),k*=b,k*=y,M=Math.round(k*1e3)/1e3,l.insert(T,M)}e[o]=l}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var r=Array.prototype.slice.call(arguments,1);r.unshift(this),e.apply(this,r)},t.MatchData=function(e,r,n){for(var i=Object.create(null),s=Object.keys(n||{}),o=0;o<s.length;o++){var a=s[o];i[a]=n[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][r]=i)},t.MatchData.prototype.combine=function(e){for(var r=Object.keys(e.metadata),n=0;n<r.length;n++){var i=r[n],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],c=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var l=0;l<c.length;l++){var h=c[l];this.metadata[i][a][h]==null?this.metadata[i][a][h]=e.metadata[i][a][h]:this.metadata[i][a][h]=this.metadata[i][a][h].concat(e.metadata[i][a][h])}}}},t.MatchData.prototype.add=function(e,r,n){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][r]=n;return}if(!(r in this.metadata[e])){this.metadata[e][r]=n;return}for(var i=Object.keys(n),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][r]?this.metadata[e][r][o]=this.metadata[e][r][o].concat(n[o]):this.metadata[e][r][o]=n[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,r){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(r))},this),this;var n=r||{};return n.term=e.toString(),this.clause(n),this},t.QueryParseError=function(e,r,n){this.name="QueryParseError",this.message=e,this.start=r,this.end=n},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],r=this.start,n=this.pos,i=0;i<this.escapeCharPositions.length;i++)n=this.escapeCharPositions[i],e.push(this.str.slice(r,n)),r=n+1;return e.push(this.str.slice(r,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var r=e.peekLexeme();if(r!=null)switch(r.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,r){typeof define=="function"&&define.amd?define(r):typeof ue=="object"?he.exports=r():e.lunr=r()}(this,function(){return t})})()});var le=[];function N(t,e){le.push({selector:e,constructor:t})}var X=class{constructor(){this.createComponents(document.body)}createComponents(e){le.forEach(r=>{e.querySelectorAll(r.selector).forEach(n=>{n.dataset.hasInstance||(new r.constructor({el:n}),n.dataset.hasInstance=String(!0))})})}};var Q=class{constructor(e){this.el=e.el}};var Z=class{constructor(){this.listeners={}}addEventListener(e,r){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(r)}removeEventListener(e,r){if(!(e in this.listeners))return;let n=this.listeners[e];for(let i=0,s=n.length;i<s;i++)if(n[i]===r){n.splice(i,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return!0;let r=this.listeners[e.type].slice();for(let n=0,i=r.length;n<i;n++)r[n].call(this,e);return!e.defaultPrevented}};var K=(t,e=100)=>{let r=Date.now();return(...n)=>{r+e-Date.now()<0&&(t(...n),r=Date.now())}};var ee=class extends Z{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.secondaryNav=document.querySelector(".tsd-navigation.secondary"),window.addEventListener("scroll",K(()=>this.onScroll(),10)),window.addEventListener("resize",K(()=>this.onResize(),10)),this.onResize(),this.onScroll()}triggerResize(){let e=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(e)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let e=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(e)}onScroll(){this.scrollTop=window.scrollY||0;let e=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(e),this.hideShowToolbar()}hideShowToolbar(){var r;let e=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0,e!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),(r=this.secondaryNav)==null||r.classList.toggle("tsd-navigation--toolbar-hide")),this.lastY=this.scrollTop}},I=ee;I.instance=new ee;var te=class extends Q{constructor(e){super(e);this.anchors=[];this.index=-1;I.instance.addEventListener("resize",()=>this.onResize()),I.instance.addEventListener("scroll",r=>this.onScroll(r)),this.createAnchors()}createAnchors(){let e=window.location.href;e.indexOf("#")!=-1&&(e=e.substr(0,e.indexOf("#"))),this.el.querySelectorAll("a").forEach(r=>{let n=r.href;if(n.indexOf("#")==-1||n.substr(0,e.length)!=e)return;let i=n.substr(n.indexOf("#")+1),s=document.querySelector("a.tsd-anchor[name="+i+"]"),o=r.parentNode;!s||!o||this.anchors.push({link:o,anchor:s,position:0})}),this.onResize()}onResize(){let e;for(let n=0,i=this.anchors.length;n<i;n++){e=this.anchors[n];let s=e.anchor.getBoundingClientRect();e.position=s.top+document.body.scrollTop}this.anchors.sort((n,i)=>n.position-i.position);let r=new CustomEvent("scroll",{detail:{scrollTop:I.instance.scrollTop}});this.onScroll(r)}onScroll(e){let r=e.detail.scrollTop+5,n=this.anchors,i=n.length-1,s=this.index;for(;s>-1&&n[s].position>r;)s-=1;for(;s<i&&n[s+1].position<r;)s+=1;this.index!=s&&(this.index>-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=s,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var ce=(t,e=100)=>{let r;return(...n)=>{clearTimeout(r),r=setTimeout(()=>t(n),e)}};var pe=Ae(de());function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let r=document.querySelector("#tsd-search input"),n=document.querySelector("#tsd-search .results");if(!r||!n)throw new Error("The input field or the result list wrapper was not found");let i=!1;n.addEventListener("mousedown",()=>i=!0),n.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Ve(t,n,r,s)}function Ve(t,e,r,n){r.addEventListener("input",ce(()=>{ze(t,e,r,n)},200));let i=!1;r.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ne(e,r):s.key=="Escape"?r.blur():s.key=="ArrowUp"?me(e,-1):s.key==="ArrowDown"?me(e,1):i=!1}),r.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!r.matches(":focus")&&s.key==="/"&&(r.focus(),s.preventDefault())})}function He(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=pe.Index.load(window.searchData.index))}function ze(t,e,r,n){if(He(n,t),!n.index||!n.data)return;e.textContent="";let i=r.value.trim(),s=n.index.search(`*${i}*`);for(let o=0,a=Math.min(10,s.length);o<a;o++){let c=n.data.rows[Number(s[o].ref)],l=ve(c.name,i);c.parent&&(l=`<span class="parent">${ve(c.parent,i)}.</span>${l}`);let h=document.createElement("li");h.classList.value=c.classes;let f=document.createElement("a");f.href=n.base+c.url,f.classList.add("tsd-kind-icon"),f.innerHTML=l,h.append(f),e.appendChild(h)}}function me(t,e){let r=t.querySelector(".current");if(!r)r=t.querySelector(e==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let n=r;if(e===1)do n=n.nextElementSibling;while(n instanceof HTMLElement&&n.offsetParent==null);else do n=n.previousElementSibling;while(n instanceof HTMLElement&&n.offsetParent==null);n&&(r.classList.remove("current"),n.classList.add("current"))}}function Ne(t,e){let r=t.querySelector(".current");if(r||(r=t.querySelector("li:first-child")),r){let n=r.querySelector("a");n&&(window.location.href=n.href),e.blur()}}function ve(t,e){if(e==="")return t;let r=t.toLocaleLowerCase(),n=e.toLocaleLowerCase(),i=[],s=0,o=r.indexOf(n);for(;o!=-1;)i.push(re(t.substring(s,o)),`<b>${re(t.substring(o,o+n.length))}</b>`),s=o+n.length,o=r.indexOf(n,s);return i.push(re(t.substring(s))),i.join("")}var je={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function re(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var ge=class{constructor(e,r){this.signature=e,this.description=r}addClass(e){return this.signature.classList.add(e),this.description.classList.add(e),this}removeClass(e){return this.signature.classList.remove(e),this.description.classList.remove(e),this}},ne=class extends Q{constructor(e){super(e);this.groups=[];this.index=-1;this.createGroups(),this.container&&(this.el.classList.add("active"),Array.from(this.el.children).forEach(r=>{r.addEventListener("touchstart",n=>this.onClick(n)),r.addEventListener("click",n=>this.onClick(n))}),this.container.classList.add("active"),this.setIndex(0))}setIndex(e){if(e<0&&(e=0),e>this.groups.length-1&&(e=this.groups.length-1),this.index==e)return;let r=this.groups[e];if(this.index>-1){let n=this.groups[this.index];n.removeClass("current").addClass("fade-out"),r.addClass("current"),r.addClass("fade-in"),I.instance.triggerResize(),setTimeout(()=>{n.removeClass("fade-out"),r.removeClass("fade-in")},300)}else r.addClass("current"),I.instance.triggerResize();this.index=e}createGroups(){let e=this.el.children;if(e.length<2)return;this.container=this.el.nextElementSibling;let r=this.container.children;this.groups=[];for(let n=0;n<e.length;n++)this.groups.push(new ge(e[n],r[n]))}onClick(e){this.groups.forEach((r,n)=>{r.signature===e.currentTarget&&this.setIndex(n)})}};var C="mousedown",ye="mousemove",_="mouseup",G={x:0,y:0},xe=!1,ie=!1,Be=!1,A=!1,Le=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Le?"is-mobile":"not-mobile");Le&&"ontouchstart"in document.documentElement&&(Be=!0,C="touchstart",ye="touchmove",_="touchend");document.addEventListener(C,t=>{ie=!0,A=!1;let e=C=="touchstart"?t.targetTouches[0]:t;G.y=e.pageY||0,G.x=e.pageX||0});document.addEventListener(ye,t=>{if(!!ie&&!A){let e=C=="touchstart"?t.targetTouches[0]:t,r=G.x-(e.pageX||0),n=G.y-(e.pageY||0);A=Math.sqrt(r*r+n*n)>10}});document.addEventListener(_,()=>{ie=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var se=class extends Q{constructor(e){super(e);this.className=this.el.dataset.toggle||"",this.el.addEventListener(_,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(C,r=>this.onDocumentPointerDown(r)),document.addEventListener(_,r=>this.onDocumentPointerUp(r))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(e){A||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!A&&this.active&&e.target.closest(".col-menu")){let r=e.target.closest("a");if(r){let n=window.location.href;n.indexOf("#")!=-1&&(n=n.substr(0,n.indexOf("#"))),r.href.substr(0,n.length)==n&&setTimeout(()=>this.setActive(!1),250)}}}};var oe=class{constructor(e,r){this.key=e,this.value=r,this.defaultValue=r,this.initialize(),window.localStorage[this.key]&&this.setValue(this.fromLocalStorage(window.localStorage[this.key]))}initialize(){}setValue(e){if(this.value==e)return;let r=this.value;this.value=e,window.localStorage[this.key]=this.toLocalStorage(e),this.handleValueChange(r,e)}},ae=class extends oe{initialize(){let e=document.querySelector("#tsd-filter-"+this.key);!e||(this.checkbox=e,this.checkbox.addEventListener("change",()=>{this.setValue(this.checkbox.checked)}))}handleValueChange(e,r){!this.checkbox||(this.checkbox.checked=this.value,document.documentElement.classList.toggle("toggle-"+this.key,this.value!=this.defaultValue))}fromLocalStorage(e){return e=="true"}toLocalStorage(e){return e?"true":"false"}},Ee=class extends oe{initialize(){document.documentElement.classList.add("toggle-"+this.key+this.value);let e=document.querySelector("#tsd-filter-"+this.key);if(!e)return;this.select=e;let r=()=>{this.select.classList.add("active")},n=()=>{this.select.classList.remove("active")};this.select.addEventListener(C,r),this.select.addEventListener("mouseover",r),this.select.addEventListener("mouseleave",n),this.select.querySelectorAll("li").forEach(i=>{i.addEventListener(_,s=>{e.classList.remove("active"),this.setValue(s.target.dataset.value||"")})}),document.addEventListener(C,i=>{this.select.contains(i.target)||this.select.classList.remove("active")})}handleValueChange(e,r){this.select.querySelectorAll("li.selected").forEach(s=>{s.classList.remove("selected")});let n=this.select.querySelector('li[data-value="'+r+'"]'),i=this.select.querySelector(".tsd-select-label");n&&i&&(n.classList.add("selected"),i.textContent=n.textContent),document.documentElement.classList.remove("toggle-"+e),document.documentElement.classList.add("toggle-"+r)}fromLocalStorage(e){return e}toLocalStorage(e){return e}},Y=class extends Q{constructor(e){super(e);this.optionVisibility=new Ee("visibility","private"),this.optionInherited=new ae("inherited",!0),this.optionExternals=new ae("externals",!0)}static isSupported(){try{return typeof window.localStorage!="undefined"}catch{return!1}}};function be(t){let e=localStorage.getItem("tsd-theme")||"os";t.value=e,we(e),t.addEventListener("change",()=>{localStorage.setItem("tsd-theme",t.value),we(t.value)})}function we(t){switch(t){case"os":document.body.classList.remove("light","dark");break;case"light":document.body.classList.remove("dark"),document.body.classList.add("light");break;case"dark":document.body.classList.remove("light"),document.body.classList.add("dark");break}}fe();N(te,".menu-highlight");N(ne,".tsd-signatures");N(se,"a[data-toggle]");Y.isSupported()?N(Y,"#tsd-filter"):document.documentElement.classList.add("no-filter");var Te=document.getElementById("theme");Te&&be(Te);var qe=new X;Object.defineProperty(window,"app",{value:qe});})();
+/*!
+ * lunr.Builder
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+/*!
+ * lunr.Index
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+/*!
+ * lunr.Pipeline
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+/*!
+ * lunr.Set
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+/*!
+ * lunr.TokenSet
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+/*!
+ * lunr.Vector
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+/*!
+ * lunr.stemmer
+ * Copyright (C) 2020 Oliver Nightingale
+ * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
+ */
+/*!
+ * lunr.stopWordFilter
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+/*!
+ * lunr.tokenizer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+/*!
+ * lunr.trimmer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+/*!
+ * lunr.utils
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+/**
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
+ * Copyright (C) 2020 Oliver Nightingale
+ * @license MIT
+ */
diff --git a/docs/assets/search.js b/docs/assets/search.js
new file mode 100644
index 0000000..e7c2e82
--- /dev/null
+++ b/docs/assets/search.js
@@ -0,0 +1 @@
+window.searchData = {"kinds":{"64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor"},"rows":[{"id":0,"kind":64,"name":"requestI2CAccess","url":"modules.html#requestI2CAccess","classes":"tsd-kind-function"},{"id":1,"kind":128,"name":"I2CAccess","url":"classes/I2CAccess.html","classes":"tsd-kind-class"},{"id":2,"kind":512,"name":"constructor","url":"classes/I2CAccess.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"I2CAccess"},{"id":3,"kind":1024,"name":"_ports","url":"classes/I2CAccess.html#_ports","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"I2CAccess"},{"id":4,"kind":262144,"name":"ports","url":"classes/I2CAccess.html#ports","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"I2CAccess"},{"id":5,"kind":128,"name":"I2CPortMap","url":"classes/I2CPortMap.html","classes":"tsd-kind-class"},{"id":6,"kind":512,"name":"constructor","url":"classes/I2CPortMap.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited","parent":"I2CPortMap"},{"id":7,"kind":2048,"name":"getByName","url":"classes/I2CPortMap.html#getByName","classes":"tsd-kind-method tsd-parent-kind-class","parent":"I2CPortMap"},{"id":8,"kind":128,"name":"I2CPort","url":"classes/I2CPort.html","classes":"tsd-kind-class"},{"id":9,"kind":512,"name":"constructor","url":"classes/I2CPort.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"I2CPort"},{"id":10,"kind":1024,"name":"_portNumber","url":"classes/I2CPort.html#_portNumber","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"I2CPort"},{"id":11,"kind":262144,"name":"portNumber","url":"classes/I2CPort.html#portNumber","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"I2CPort"},{"id":12,"kind":262144,"name":"portName","url":"classes/I2CPort.html#portName","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"I2CPort"},{"id":13,"kind":2048,"name":"open","url":"classes/I2CPort.html#open","classes":"tsd-kind-method tsd-parent-kind-class","parent":"I2CPort"},{"id":14,"kind":256,"name":"I2CSlaveDevice","url":"interfaces/I2CSlaveDevice.html","classes":"tsd-kind-interface"},{"id":15,"kind":1024,"name":"slaveAddress","url":"interfaces/I2CSlaveDevice.html#slaveAddress","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"I2CSlaveDevice"},{"id":16,"kind":2048,"name":"read8","url":"interfaces/I2CSlaveDevice.html#read8","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"I2CSlaveDevice"},{"id":17,"kind":2048,"name":"read16","url":"interfaces/I2CSlaveDevice.html#read16","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"I2CSlaveDevice"},{"id":18,"kind":2048,"name":"write8","url":"interfaces/I2CSlaveDevice.html#write8","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"I2CSlaveDevice"},{"id":19,"kind":2048,"name":"write16","url":"interfaces/I2CSlaveDevice.html#write16","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"I2CSlaveDevice"},{"id":20,"kind":2048,"name":"readByte","url":"interfaces/I2CSlaveDevice.html#readByte","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"I2CSlaveDevice"},{"id":21,"kind":2048,"name":"readBytes","url":"interfaces/I2CSlaveDevice.html#readBytes","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"I2CSlaveDevice"},{"id":22,"kind":2048,"name":"writeByte","url":"interfaces/I2CSlaveDevice.html#writeByte","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"I2CSlaveDevice"},{"id":23,"kind":2048,"name":"writeBytes","url":"interfaces/I2CSlaveDevice.html#writeBytes","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"I2CSlaveDevice"},{"id":24,"kind":128,"name":"OperationError","url":"classes/OperationError.html","classes":"tsd-kind-class"},{"id":25,"kind":65536,"name":"__type","url":"classes/OperationError.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-class","parent":"OperationError"},{"id":26,"kind":512,"name":"constructor","url":"classes/OperationError.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"OperationError"}],"index":{"version":"2.3.9","fields":["name","parent"],"fieldVectors":[["name/0",[0,29.267]],["parent/0",[]],["name/1",[1,18.281]],["parent/1",[]],["name/2",[2,18.281]],["parent/2",[1,1.637]],["name/3",[3,29.267]],["parent/3",[1,1.637]],["name/4",[4,29.267]],["parent/4",[1,1.637]],["name/5",[5,20.794]],["parent/5",[]],["name/6",[2,18.281]],["parent/6",[5,1.862]],["name/7",[6,29.267]],["parent/7",[5,1.862]],["name/8",[7,14.604]],["parent/8",[]],["name/9",[2,18.281]],["parent/9",[7,1.308]],["name/10",[8,29.267]],["parent/10",[7,1.308]],["name/11",[9,29.267]],["parent/11",[7,1.308]],["name/12",[10,29.267]],["parent/12",[7,1.308]],["name/13",[11,29.267]],["parent/13",[7,1.308]],["name/14",[12,9.808]],["parent/14",[]],["name/15",[13,29.267]],["parent/15",[12,0.878]],["name/16",[14,29.267]],["parent/16",[12,0.878]],["name/17",[15,29.267]],["parent/17",[12,0.878]],["name/18",[16,29.267]],["parent/18",[12,0.878]],["name/19",[17,29.267]],["parent/19",[12,0.878]],["name/20",[18,29.267]],["parent/20",[12,0.878]],["name/21",[19,29.267]],["parent/21",[12,0.878]],["name/22",[20,29.267]],["parent/22",[12,0.878]],["name/23",[21,29.267]],["parent/23",[12,0.878]],["name/24",[22,20.794]],["parent/24",[]],["name/25",[23,29.267]],["parent/25",[22,1.862]],["name/26",[2,18.281]],["parent/26",[22,1.862]]],"invertedIndex":[["__type",{"_index":23,"name":{"25":{}},"parent":{}}],["_portnumber",{"_index":8,"name":{"10":{}},"parent":{}}],["_ports",{"_index":3,"name":{"3":{}},"parent":{}}],["constructor",{"_index":2,"name":{"2":{},"6":{},"9":{},"26":{}},"parent":{}}],["getbyname",{"_index":6,"name":{"7":{}},"parent":{}}],["i2caccess",{"_index":1,"name":{"1":{}},"parent":{"2":{},"3":{},"4":{}}}],["i2cport",{"_index":7,"name":{"8":{}},"parent":{"9":{},"10":{},"11":{},"12":{},"13":{}}}],["i2cportmap",{"_index":5,"name":{"5":{}},"parent":{"6":{},"7":{}}}],["i2cslavedevice",{"_index":12,"name":{"14":{}},"parent":{"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{}}}],["open",{"_index":11,"name":{"13":{}},"parent":{}}],["operationerror",{"_index":22,"name":{"24":{}},"parent":{"25":{},"26":{}}}],["portname",{"_index":10,"name":{"12":{}},"parent":{}}],["portnumber",{"_index":9,"name":{"11":{}},"parent":{}}],["ports",{"_index":4,"name":{"4":{}},"parent":{}}],["read16",{"_index":15,"name":{"17":{}},"parent":{}}],["read8",{"_index":14,"name":{"16":{}},"parent":{}}],["readbyte",{"_index":18,"name":{"20":{}},"parent":{}}],["readbytes",{"_index":19,"name":{"21":{}},"parent":{}}],["requesti2caccess",{"_index":0,"name":{"0":{}},"parent":{}}],["slaveaddress",{"_index":13,"name":{"15":{}},"parent":{}}],["write16",{"_index":17,"name":{"19":{}},"parent":{}}],["write8",{"_index":16,"name":{"18":{}},"parent":{}}],["writebyte",{"_index":20,"name":{"22":{}},"parent":{}}],["writebytes",{"_index":21,"name":{"23":{}},"parent":{}}]],"pipeline":[]}}
\ No newline at end of file
diff --git a/docs/assets/style.css b/docs/assets/style.css
new file mode 100644
index 0000000..28f90b6
--- /dev/null
+++ b/docs/assets/style.css
@@ -0,0 +1,1388 @@
+@import url("./icons.css");
+
+:root {
+    /* Light */
+    --light-color-background: #fcfcfc;
+    --light-color-secondary-background: #fff;
+    --light-color-text: #222;
+    --light-color-text-aside: #707070;
+    --light-color-link: #4da6ff;
+    --light-color-menu-divider: #eee;
+    --light-color-menu-divider-focus: #000;
+    --light-color-menu-label: #707070;
+    --light-color-panel: var(--light-color-secondary-background);
+    --light-color-panel-divider: #eee;
+    --light-color-comment-tag: #707070;
+    --light-color-comment-tag-text: #fff;
+    --light-color-ts: #9600ff;
+    --light-color-ts-interface: #647f1b;
+    --light-color-ts-enum: #937210;
+    --light-color-ts-class: #0672de;
+    --light-color-ts-private: #707070;
+    --light-color-toolbar: #fff;
+    --light-color-toolbar-text: #333;
+    --light-icon-filter: invert(0);
+    --light-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23000' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
+
+    /* Dark */
+    --dark-color-background: #36393f;
+    --dark-color-secondary-background: #2f3136;
+    --dark-color-text: #ffffff;
+    --dark-color-text-aside: #e6e4e4;
+    --dark-color-link: #00aff4;
+    --dark-color-menu-divider: #eee;
+    --dark-color-menu-divider-focus: #000;
+    --dark-color-menu-label: #707070;
+    --dark-color-panel: var(--dark-color-secondary-background);
+    --dark-color-panel-divider: #818181;
+    --dark-color-comment-tag: #dcddde;
+    --dark-color-comment-tag-text: #2f3136;
+    --dark-color-ts: #c97dff;
+    --dark-color-ts-interface: #9cbe3c;
+    --dark-color-ts-enum: #d6ab29;
+    --dark-color-ts-class: #3695f3;
+    --dark-color-ts-private: #e2e2e2;
+    --dark-color-toolbar: #34373c;
+    --dark-color-toolbar-text: #ffffff;
+    --dark-icon-filter: invert(1);
+    --dark-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23fff' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
+}
+
+@media (prefers-color-scheme: light) {
+    :root {
+        --color-background: var(--light-color-background);
+        --color-secondary-background: var(--light-color-secondary-background);
+        --color-text: var(--light-color-text);
+        --color-text-aside: var(--light-color-text-aside);
+        --color-link: var(--light-color-link);
+        --color-menu-divider: var(--light-color-menu-divider);
+        --color-menu-divider-focus: var(--light-color-menu-divider-focus);
+        --color-menu-label: var(--light-color-menu-label);
+        --color-panel: var(--light-color-panel);
+        --color-panel-divider: var(--light-color-panel-divider);
+        --color-comment-tag: var(--light-color-comment-tag);
+        --color-comment-tag-text: var(--light-color-comment-tag-text);
+        --color-ts: var(--light-color-ts);
+        --color-ts-interface: var(--light-color-ts-interface);
+        --color-ts-enum: var(--light-color-ts-enum);
+        --color-ts-class: var(--light-color-ts-class);
+        --color-ts-private: var(--light-color-ts-private);
+        --color-toolbar: var(--light-color-toolbar);
+        --color-toolbar-text: var(--light-color-toolbar-text);
+        --icon-filter: var(--light-icon-filter);
+        --external-icon: var(--light-external-icon);
+    }
+}
+
+@media (prefers-color-scheme: dark) {
+    :root {
+        --color-background: var(--dark-color-background);
+        --color-secondary-background: var(--dark-color-secondary-background);
+        --color-text: var(--dark-color-text);
+        --color-text-aside: var(--dark-color-text-aside);
+        --color-link: var(--dark-color-link);
+        --color-menu-divider: var(--dark-color-menu-divider);
+        --color-menu-divider-focus: var(--dark-color-menu-divider-focus);
+        --color-menu-label: var(--dark-color-menu-label);
+        --color-panel: var(--dark-color-panel);
+        --color-panel-divider: var(--dark-color-panel-divider);
+        --color-comment-tag: var(--dark-color-comment-tag);
+        --color-comment-tag-text: var(--dark-color-comment-tag-text);
+        --color-ts: var(--dark-color-ts);
+        --color-ts-interface: var(--dark-color-ts-interface);
+        --color-ts-enum: var(--dark-color-ts-enum);
+        --color-ts-class: var(--dark-color-ts-class);
+        --color-ts-private: var(--dark-color-ts-private);
+        --color-toolbar: var(--dark-color-toolbar);
+        --color-toolbar-text: var(--dark-color-toolbar-text);
+        --icon-filter: var(--dark-icon-filter);
+        --external-icon: var(--dark-external-icon);
+    }
+}
+
+body {
+    margin: 0;
+}
+
+body.light {
+    --color-background: var(--light-color-background);
+    --color-secondary-background: var(--light-color-secondary-background);
+    --color-text: var(--light-color-text);
+    --color-text-aside: var(--light-color-text-aside);
+    --color-link: var(--light-color-link);
+    --color-menu-divider: var(--light-color-menu-divider);
+    --color-menu-divider-focus: var(--light-color-menu-divider-focus);
+    --color-menu-label: var(--light-color-menu-label);
+    --color-panel: var(--light-color-panel);
+    --color-panel-divider: var(--light-color-panel-divider);
+    --color-comment-tag: var(--light-color-comment-tag);
+    --color-comment-tag-text: var(--light-color-comment-tag-text);
+    --color-ts: var(--light-color-ts);
+    --color-ts-interface: var(--light-color-ts-interface);
+    --color-ts-enum: var(--light-color-ts-enum);
+    --color-ts-class: var(--light-color-ts-class);
+    --color-ts-private: var(--light-color-ts-private);
+    --color-toolbar: var(--light-color-toolbar);
+    --color-toolbar-text: var(--light-color-toolbar-text);
+    --icon-filter: var(--light-icon-filter);
+    --external-icon: var(--light-external-icon);
+}
+
+body.dark {
+    --color-background: var(--dark-color-background);
+    --color-secondary-background: var(--dark-color-secondary-background);
+    --color-text: var(--dark-color-text);
+    --color-text-aside: var(--dark-color-text-aside);
+    --color-link: var(--dark-color-link);
+    --color-menu-divider: var(--dark-color-menu-divider);
+    --color-menu-divider-focus: var(--dark-color-menu-divider-focus);
+    --color-menu-label: var(--dark-color-menu-label);
+    --color-panel: var(--dark-color-panel);
+    --color-panel-divider: var(--dark-color-panel-divider);
+    --color-comment-tag: var(--dark-color-comment-tag);
+    --color-comment-tag-text: var(--dark-color-comment-tag-text);
+    --color-ts: var(--dark-color-ts);
+    --color-ts-interface: var(--dark-color-ts-interface);
+    --color-ts-enum: var(--dark-color-ts-enum);
+    --color-ts-class: var(--dark-color-ts-class);
+    --color-ts-private: var(--dark-color-ts-private);
+    --color-toolbar: var(--dark-color-toolbar);
+    --color-toolbar-text: var(--dark-color-toolbar-text);
+    --icon-filter: var(--dark-icon-filter);
+    --external-icon: var(--dark-external-icon);
+}
+
+h1 {
+    font-size: 2em;
+    margin: 0.67em 0;
+}
+
+h2 {
+    font-size: 1.5em;
+    margin: 0.83em 0;
+}
+
+h3 {
+    font-size: 1.17em;
+    margin: 1em 0;
+}
+
+h4,
+.tsd-index-panel h3 {
+    font-size: 1em;
+    margin: 1.33em 0;
+}
+
+h5 {
+    font-size: 0.83em;
+    margin: 1.67em 0;
+}
+
+h6 {
+    font-size: 0.67em;
+    margin: 2.33em 0;
+}
+
+pre {
+    white-space: pre;
+    white-space: pre-wrap;
+    word-wrap: break-word;
+}
+
+dl,
+menu,
+ol,
+ul {
+    margin: 1em 0;
+}
+
+dd {
+    margin: 0 0 0 40px;
+}
+
+.container {
+    max-width: 1200px;
+    margin: 0 auto;
+    padding: 0 40px;
+}
+@media (max-width: 640px) {
+    .container {
+        padding: 0 20px;
+    }
+}
+
+.container-main {
+    padding-bottom: 200px;
+}
+
+.row {
+    display: flex;
+    position: relative;
+    margin: 0 -10px;
+}
+.row:after {
+    visibility: hidden;
+    display: block;
+    content: "";
+    clear: both;
+    height: 0;
+}
+
+.col-4,
+.col-8 {
+    box-sizing: border-box;
+    float: left;
+    padding: 0 10px;
+}
+
+.col-4 {
+    width: 33.3333333333%;
+}
+.col-8 {
+    width: 66.6666666667%;
+}
+
+ul.tsd-descriptions > li > :first-child,
+.tsd-panel > :first-child,
+.col-8 > :first-child,
+.col-4 > :first-child,
+ul.tsd-descriptions > li > :first-child > :first-child,
+.tsd-panel > :first-child > :first-child,
+.col-8 > :first-child > :first-child,
+.col-4 > :first-child > :first-child,
+ul.tsd-descriptions > li > :first-child > :first-child > :first-child,
+.tsd-panel > :first-child > :first-child > :first-child,
+.col-8 > :first-child > :first-child > :first-child,
+.col-4 > :first-child > :first-child > :first-child {
+    margin-top: 0;
+}
+ul.tsd-descriptions > li > :last-child,
+.tsd-panel > :last-child,
+.col-8 > :last-child,
+.col-4 > :last-child,
+ul.tsd-descriptions > li > :last-child > :last-child,
+.tsd-panel > :last-child > :last-child,
+.col-8 > :last-child > :last-child,
+.col-4 > :last-child > :last-child,
+ul.tsd-descriptions > li > :last-child > :last-child > :last-child,
+.tsd-panel > :last-child > :last-child > :last-child,
+.col-8 > :last-child > :last-child > :last-child,
+.col-4 > :last-child > :last-child > :last-child {
+    margin-bottom: 0;
+}
+
+@keyframes fade-in {
+    from {
+        opacity: 0;
+    }
+    to {
+        opacity: 1;
+    }
+}
+@keyframes fade-out {
+    from {
+        opacity: 1;
+        visibility: visible;
+    }
+    to {
+        opacity: 0;
+    }
+}
+@keyframes fade-in-delayed {
+    0% {
+        opacity: 0;
+    }
+    33% {
+        opacity: 0;
+    }
+    100% {
+        opacity: 1;
+    }
+}
+@keyframes fade-out-delayed {
+    0% {
+        opacity: 1;
+        visibility: visible;
+    }
+    66% {
+        opacity: 0;
+    }
+    100% {
+        opacity: 0;
+    }
+}
+@keyframes shift-to-left {
+    from {
+        transform: translate(0, 0);
+    }
+    to {
+        transform: translate(-25%, 0);
+    }
+}
+@keyframes unshift-to-left {
+    from {
+        transform: translate(-25%, 0);
+    }
+    to {
+        transform: translate(0, 0);
+    }
+}
+@keyframes pop-in-from-right {
+    from {
+        transform: translate(100%, 0);
+    }
+    to {
+        transform: translate(0, 0);
+    }
+}
+@keyframes pop-out-to-right {
+    from {
+        transform: translate(0, 0);
+        visibility: visible;
+    }
+    to {
+        transform: translate(100%, 0);
+    }
+}
+body {
+    background: var(--color-background);
+    font-family: "Segoe UI", sans-serif;
+    font-size: 16px;
+    color: var(--color-text);
+}
+
+a {
+    color: var(--color-link);
+    text-decoration: none;
+}
+a:hover {
+    text-decoration: underline;
+}
+a.external[target="_blank"] {
+    background-image: var(--external-icon);
+    background-position: top 3px right;
+    background-repeat: no-repeat;
+    padding-right: 13px;
+}
+
+code,
+pre {
+    font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+    padding: 0.2em;
+    margin: 0;
+    font-size: 14px;
+}
+
+pre {
+    padding: 10px;
+}
+pre code {
+    padding: 0;
+    font-size: 100%;
+}
+
+blockquote {
+    margin: 1em 0;
+    padding-left: 1em;
+    border-left: 4px solid gray;
+}
+
+.tsd-typography {
+    line-height: 1.333em;
+}
+.tsd-typography ul {
+    list-style: square;
+    padding: 0 0 0 20px;
+    margin: 0;
+}
+.tsd-typography h4,
+.tsd-typography .tsd-index-panel h3,
+.tsd-index-panel .tsd-typography h3,
+.tsd-typography h5,
+.tsd-typography h6 {
+    font-size: 1em;
+    margin: 0;
+}
+.tsd-typography h5,
+.tsd-typography h6 {
+    font-weight: normal;
+}
+.tsd-typography p,
+.tsd-typography ul,
+.tsd-typography ol {
+    margin: 1em 0;
+}
+
+@media (min-width: 901px) and (max-width: 1024px) {
+    html .col-content {
+        width: 72%;
+    }
+    html .col-menu {
+        width: 28%;
+    }
+    html .tsd-navigation {
+        padding-left: 10px;
+    }
+}
+@media (max-width: 900px) {
+    html .col-content {
+        float: none;
+        width: 100%;
+    }
+    html .col-menu {
+        position: fixed !important;
+        overflow: auto;
+        -webkit-overflow-scrolling: touch;
+        z-index: 1024;
+        top: 0 !important;
+        bottom: 0 !important;
+        left: auto !important;
+        right: 0 !important;
+        width: 100%;
+        padding: 20px 20px 0 0;
+        max-width: 450px;
+        visibility: hidden;
+        background-color: var(--color-panel);
+        transform: translate(100%, 0);
+    }
+    html .col-menu > *:last-child {
+        padding-bottom: 20px;
+    }
+    html .overlay {
+        content: "";
+        display: block;
+        position: fixed;
+        z-index: 1023;
+        top: 0;
+        left: 0;
+        right: 0;
+        bottom: 0;
+        background-color: rgba(0, 0, 0, 0.75);
+        visibility: hidden;
+    }
+
+    .to-has-menu .overlay {
+        animation: fade-in 0.4s;
+    }
+
+    .to-has-menu :is(header, footer, .col-content) {
+        animation: shift-to-left 0.4s;
+    }
+
+    .to-has-menu .col-menu {
+        animation: pop-in-from-right 0.4s;
+    }
+
+    .from-has-menu .overlay {
+        animation: fade-out 0.4s;
+    }
+
+    .from-has-menu :is(header, footer, .col-content) {
+        animation: unshift-to-left 0.4s;
+    }
+
+    .from-has-menu .col-menu {
+        animation: pop-out-to-right 0.4s;
+    }
+
+    .has-menu body {
+        overflow: hidden;
+    }
+    .has-menu .overlay {
+        visibility: visible;
+    }
+    .has-menu :is(header, footer, .col-content) {
+        transform: translate(-25%, 0);
+    }
+    .has-menu .col-menu {
+        visibility: visible;
+        transform: translate(0, 0);
+        display: grid;
+        grid-template-rows: auto 1fr;
+        max-height: 100vh;
+    }
+    .has-menu .tsd-navigation {
+        max-height: 100%;
+    }
+}
+
+.tsd-page-title {
+    padding: 70px 0 20px 0;
+    margin: 0 0 40px 0;
+    background: var(--color-panel);
+    box-shadow: 0 0 5px rgba(0, 0, 0, 0.35);
+}
+.tsd-page-title h1 {
+    margin: 0;
+}
+
+.tsd-breadcrumb {
+    margin: 0;
+    padding: 0;
+    color: var(--color-text-aside);
+}
+.tsd-breadcrumb a {
+    color: var(--color-text-aside);
+    text-decoration: none;
+}
+.tsd-breadcrumb a:hover {
+    text-decoration: underline;
+}
+.tsd-breadcrumb li {
+    display: inline;
+}
+.tsd-breadcrumb li:after {
+    content: " / ";
+}
+
+dl.tsd-comment-tags {
+    overflow: hidden;
+}
+dl.tsd-comment-tags dt {
+    float: left;
+    padding: 1px 5px;
+    margin: 0 10px 0 0;
+    border-radius: 4px;
+    border: 1px solid var(--color-comment-tag);
+    color: var(--color-comment-tag);
+    font-size: 0.8em;
+    font-weight: normal;
+}
+dl.tsd-comment-tags dd {
+    margin: 0 0 10px 0;
+}
+dl.tsd-comment-tags dd:before,
+dl.tsd-comment-tags dd:after {
+    display: table;
+    content: " ";
+}
+dl.tsd-comment-tags dd pre,
+dl.tsd-comment-tags dd:after {
+    clear: both;
+}
+dl.tsd-comment-tags p {
+    margin: 0;
+}
+
+.tsd-panel.tsd-comment .lead {
+    font-size: 1.1em;
+    line-height: 1.333em;
+    margin-bottom: 2em;
+}
+.tsd-panel.tsd-comment .lead:last-child {
+    margin-bottom: 0;
+}
+
+.toggle-protected .tsd-is-private {
+    display: none;
+}
+
+.toggle-public .tsd-is-private,
+.toggle-public .tsd-is-protected,
+.toggle-public .tsd-is-private-protected {
+    display: none;
+}
+
+.toggle-inherited .tsd-is-inherited {
+    display: none;
+}
+
+.toggle-externals .tsd-is-external {
+    display: none;
+}
+
+#tsd-filter {
+    position: relative;
+    display: inline-block;
+    height: 40px;
+    vertical-align: bottom;
+}
+.no-filter #tsd-filter {
+    display: none;
+}
+#tsd-filter .tsd-filter-group {
+    display: inline-block;
+    height: 40px;
+    vertical-align: bottom;
+    white-space: nowrap;
+}
+#tsd-filter input {
+    display: none;
+}
+@media (max-width: 900px) {
+    #tsd-filter .tsd-filter-group {
+        display: block;
+        position: absolute;
+        top: 40px;
+        right: 20px;
+        height: auto;
+        background-color: var(--color-panel);
+        visibility: hidden;
+        transform: translate(50%, 0);
+        box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
+    }
+    .has-options #tsd-filter .tsd-filter-group {
+        visibility: visible;
+    }
+    .to-has-options #tsd-filter .tsd-filter-group {
+        animation: fade-in 0.2s;
+    }
+    .from-has-options #tsd-filter .tsd-filter-group {
+        animation: fade-out 0.2s;
+    }
+    #tsd-filter label,
+    #tsd-filter .tsd-select {
+        display: block;
+        padding-right: 20px;
+    }
+}
+
+footer {
+    border-top: 1px solid var(--color-panel-divider);
+    background-color: var(--color-panel);
+}
+footer:after {
+    content: "";
+    display: table;
+}
+footer.with-border-bottom {
+    border-bottom: 1px solid var(--color-panel-divider);
+}
+footer .tsd-legend-group {
+    font-size: 0;
+}
+footer .tsd-legend {
+    display: inline-block;
+    width: 25%;
+    padding: 0;
+    font-size: 16px;
+    list-style: none;
+    line-height: 1.333em;
+    vertical-align: top;
+}
+@media (max-width: 900px) {
+    footer .tsd-legend {
+        width: 50%;
+    }
+}
+
+.tsd-hierarchy {
+    list-style: square;
+    padding: 0 0 0 20px;
+    margin: 0;
+}
+.tsd-hierarchy .target {
+    font-weight: bold;
+}
+
+.tsd-index-panel .tsd-index-content {
+    margin-bottom: -30px !important;
+}
+.tsd-index-panel .tsd-index-section {
+    margin-bottom: 30px !important;
+}
+.tsd-index-panel h3 {
+    margin: 0 -20px 10px -20px;
+    padding: 0 20px 10px 20px;
+    border-bottom: 1px solid var(--color-panel-divider);
+}
+.tsd-index-panel ul.tsd-index-list {
+    -webkit-column-count: 3;
+    -moz-column-count: 3;
+    -ms-column-count: 3;
+    -o-column-count: 3;
+    column-count: 3;
+    -webkit-column-gap: 20px;
+    -moz-column-gap: 20px;
+    -ms-column-gap: 20px;
+    -o-column-gap: 20px;
+    column-gap: 20px;
+    padding: 0;
+    list-style: none;
+    line-height: 1.333em;
+}
+@media (max-width: 900px) {
+    .tsd-index-panel ul.tsd-index-list {
+        -webkit-column-count: 1;
+        -moz-column-count: 1;
+        -ms-column-count: 1;
+        -o-column-count: 1;
+        column-count: 1;
+    }
+}
+@media (min-width: 901px) and (max-width: 1024px) {
+    .tsd-index-panel ul.tsd-index-list {
+        -webkit-column-count: 2;
+        -moz-column-count: 2;
+        -ms-column-count: 2;
+        -o-column-count: 2;
+        column-count: 2;
+    }
+}
+.tsd-index-panel ul.tsd-index-list li {
+    -webkit-page-break-inside: avoid;
+    -moz-page-break-inside: avoid;
+    -ms-page-break-inside: avoid;
+    -o-page-break-inside: avoid;
+    page-break-inside: avoid;
+}
+.tsd-index-panel a,
+.tsd-index-panel .tsd-parent-kind-module a {
+    color: var(--color-ts);
+}
+.tsd-index-panel .tsd-parent-kind-interface a {
+    color: var(--color-ts-interface);
+}
+.tsd-index-panel .tsd-parent-kind-enum a {
+    color: var(--color-ts-enum);
+}
+.tsd-index-panel .tsd-parent-kind-class a {
+    color: var(--color-ts-class);
+}
+.tsd-index-panel .tsd-kind-module a {
+    color: var(--color-ts);
+}
+.tsd-index-panel .tsd-kind-interface a {
+    color: var(--color-ts-interface);
+}
+.tsd-index-panel .tsd-kind-enum a {
+    color: var(--color-ts-enum);
+}
+.tsd-index-panel .tsd-kind-class a {
+    color: var(--color-ts-class);
+}
+.tsd-index-panel .tsd-is-private a {
+    color: var(--color-ts-private);
+}
+
+.tsd-flag {
+    display: inline-block;
+    padding: 1px 5px;
+    border-radius: 4px;
+    color: var(--color-comment-tag-text);
+    background-color: var(--color-comment-tag);
+    text-indent: 0;
+    font-size: 14px;
+    font-weight: normal;
+}
+
+.tsd-anchor {
+    position: absolute;
+    top: -100px;
+}
+
+.tsd-member {
+    position: relative;
+}
+.tsd-member .tsd-anchor + h3 {
+    margin-top: 0;
+    margin-bottom: 0;
+    border-bottom: none;
+}
+.tsd-member [data-tsd-kind] {
+    color: var(--color-ts);
+}
+.tsd-member [data-tsd-kind="Interface"] {
+    color: var(--color-ts-interface);
+}
+.tsd-member [data-tsd-kind="Enum"] {
+    color: var(--color-ts-enum);
+}
+.tsd-member [data-tsd-kind="Class"] {
+    color: var(--color-ts-class);
+}
+.tsd-member [data-tsd-kind="Private"] {
+    color: var(--color-ts-private);
+}
+
+.tsd-navigation {
+    margin: 0 0 0 40px;
+}
+.tsd-navigation a {
+    display: block;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    border-left: 2px solid transparent;
+    color: var(--color-text);
+    text-decoration: none;
+    transition: border-left-color 0.1s;
+}
+.tsd-navigation a:hover {
+    text-decoration: underline;
+}
+.tsd-navigation ul {
+    margin: 0;
+    padding: 0;
+    list-style: none;
+}
+.tsd-navigation li {
+    padding: 0;
+}
+
+.tsd-navigation.primary {
+    padding-bottom: 40px;
+}
+.tsd-navigation.primary a {
+    display: block;
+    padding-top: 6px;
+    padding-bottom: 6px;
+}
+.tsd-navigation.primary ul li a {
+    padding-left: 5px;
+}
+.tsd-navigation.primary ul li li a {
+    padding-left: 25px;
+}
+.tsd-navigation.primary ul li li li a {
+    padding-left: 45px;
+}
+.tsd-navigation.primary ul li li li li a {
+    padding-left: 65px;
+}
+.tsd-navigation.primary ul li li li li li a {
+    padding-left: 85px;
+}
+.tsd-navigation.primary ul li li li li li li a {
+    padding-left: 105px;
+}
+.tsd-navigation.primary > ul {
+    border-bottom: 1px solid var(--color-panel-divider);
+}
+.tsd-navigation.primary li {
+    border-top: 1px solid var(--color-panel-divider);
+}
+.tsd-navigation.primary li.current > a {
+    font-weight: bold;
+}
+.tsd-navigation.primary li.label span {
+    display: block;
+    padding: 20px 0 6px 5px;
+    color: var(--color-menu-label);
+}
+.tsd-navigation.primary li.globals + li > span,
+.tsd-navigation.primary li.globals + li > a {
+    padding-top: 20px;
+}
+
+.tsd-navigation.secondary {
+    max-height: calc(100vh - 1rem - 40px);
+    overflow: auto;
+    position: sticky;
+    top: calc(0.5rem + 40px);
+    transition: 0.3s;
+}
+.tsd-navigation.secondary.tsd-navigation--toolbar-hide {
+    max-height: calc(100vh - 1rem);
+    top: 0.5rem;
+}
+.tsd-navigation.secondary ul {
+    transition: opacity 0.2s;
+}
+.tsd-navigation.secondary ul li a {
+    padding-left: 25px;
+}
+.tsd-navigation.secondary ul li li a {
+    padding-left: 45px;
+}
+.tsd-navigation.secondary ul li li li a {
+    padding-left: 65px;
+}
+.tsd-navigation.secondary ul li li li li a {
+    padding-left: 85px;
+}
+.tsd-navigation.secondary ul li li li li li a {
+    padding-left: 105px;
+}
+.tsd-navigation.secondary ul li li li li li li a {
+    padding-left: 125px;
+}
+.tsd-navigation.secondary ul.current a {
+    border-left-color: var(--color-panel-divider);
+}
+.tsd-navigation.secondary li.focus > a,
+.tsd-navigation.secondary ul.current li.focus > a {
+    border-left-color: var(--color-menu-divider-focus);
+}
+.tsd-navigation.secondary li.current {
+    margin-top: 20px;
+    margin-bottom: 20px;
+    border-left-color: var(--color-panel-divider);
+}
+.tsd-navigation.secondary li.current > a {
+    font-weight: bold;
+}
+
+@media (min-width: 901px) {
+    .menu-sticky-wrap {
+        position: static;
+    }
+}
+
+.tsd-panel {
+    margin: 20px 0;
+    padding: 20px;
+    background-color: var(--color-panel);
+    box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
+}
+.tsd-panel:empty {
+    display: none;
+}
+.tsd-panel > h1,
+.tsd-panel > h2,
+.tsd-panel > h3 {
+    margin: 1.5em -20px 10px -20px;
+    padding: 0 20px 10px 20px;
+    border-bottom: 1px solid var(--color-panel-divider);
+}
+.tsd-panel > h1.tsd-before-signature,
+.tsd-panel > h2.tsd-before-signature,
+.tsd-panel > h3.tsd-before-signature {
+    margin-bottom: 0;
+    border-bottom: 0;
+}
+.tsd-panel table {
+    display: block;
+    width: 100%;
+    overflow: auto;
+    margin-top: 10px;
+    word-break: normal;
+    word-break: keep-all;
+    border-collapse: collapse;
+}
+.tsd-panel table th {
+    font-weight: bold;
+}
+.tsd-panel table th,
+.tsd-panel table td {
+    padding: 6px 13px;
+    border: 1px solid var(--color-panel-divider);
+}
+.tsd-panel table tr {
+    background: var(--color-background);
+}
+.tsd-panel table tr:nth-child(even) {
+    background: var(--color-secondary-background);
+}
+
+.tsd-panel-group {
+    margin: 60px 0;
+}
+.tsd-panel-group > h1,
+.tsd-panel-group > h2,
+.tsd-panel-group > h3 {
+    padding-left: 20px;
+    padding-right: 20px;
+}
+
+#tsd-search {
+    transition: background-color 0.2s;
+}
+#tsd-search .title {
+    position: relative;
+    z-index: 2;
+}
+#tsd-search .field {
+    position: absolute;
+    left: 0;
+    top: 0;
+    right: 40px;
+    height: 40px;
+}
+#tsd-search .field input {
+    box-sizing: border-box;
+    position: relative;
+    top: -50px;
+    z-index: 1;
+    width: 100%;
+    padding: 0 10px;
+    opacity: 0;
+    outline: 0;
+    border: 0;
+    background: transparent;
+    color: var(--color-text);
+}
+#tsd-search .field label {
+    position: absolute;
+    overflow: hidden;
+    right: -40px;
+}
+#tsd-search .field input,
+#tsd-search .title {
+    transition: opacity 0.2s;
+}
+#tsd-search .results {
+    position: absolute;
+    visibility: hidden;
+    top: 40px;
+    width: 100%;
+    margin: 0;
+    padding: 0;
+    list-style: none;
+    box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
+}
+#tsd-search .results li {
+    padding: 0 10px;
+    background-color: var(--color-background);
+}
+#tsd-search .results li:nth-child(even) {
+    background-color: var(--color-panel);
+}
+#tsd-search .results li.state {
+    display: none;
+}
+#tsd-search .results li.current,
+#tsd-search .results li:hover {
+    background-color: var(--color-panel-divider);
+}
+#tsd-search .results a {
+    display: block;
+}
+#tsd-search .results a:before {
+    top: 10px;
+}
+#tsd-search .results span.parent {
+    color: var(--color-text-aside);
+    font-weight: normal;
+}
+#tsd-search.has-focus {
+    background-color: var(--color-panel-divider);
+}
+#tsd-search.has-focus .field input {
+    top: 0;
+    opacity: 1;
+}
+#tsd-search.has-focus .title {
+    z-index: 0;
+    opacity: 0;
+}
+#tsd-search.has-focus .results {
+    visibility: visible;
+}
+#tsd-search.loading .results li.state.loading {
+    display: block;
+}
+#tsd-search.failure .results li.state.failure {
+    display: block;
+}
+
+.tsd-signature {
+    margin: 0 0 1em 0;
+    padding: 10px;
+    border: 1px solid var(--color-panel-divider);
+    font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+    font-size: 14px;
+    overflow-x: auto;
+}
+.tsd-signature.tsd-kind-icon {
+    padding-left: 30px;
+}
+.tsd-signature.tsd-kind-icon:before {
+    top: 10px;
+    left: 10px;
+}
+.tsd-panel > .tsd-signature {
+    margin-left: -20px;
+    margin-right: -20px;
+    border-width: 1px 0;
+}
+.tsd-panel > .tsd-signature.tsd-kind-icon {
+    padding-left: 40px;
+}
+.tsd-panel > .tsd-signature.tsd-kind-icon:before {
+    left: 20px;
+}
+
+.tsd-signature-symbol {
+    color: var(--color-text-aside);
+    font-weight: normal;
+}
+
+.tsd-signature-type {
+    font-style: italic;
+    font-weight: normal;
+}
+
+.tsd-signatures {
+    padding: 0;
+    margin: 0 0 1em 0;
+    border: 1px solid var(--color-panel-divider);
+}
+.tsd-signatures .tsd-signature {
+    margin: 0;
+    border-width: 1px 0 0 0;
+    transition: background-color 0.1s;
+}
+.tsd-signatures .tsd-signature:first-child {
+    border-top-width: 0;
+}
+.tsd-signatures .tsd-signature.current {
+    background-color: var(--color-panel-divider);
+}
+.tsd-signatures.active > .tsd-signature {
+    cursor: pointer;
+}
+.tsd-panel > .tsd-signatures {
+    margin-left: -20px;
+    margin-right: -20px;
+    border-width: 1px 0;
+}
+.tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon {
+    padding-left: 40px;
+}
+.tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon:before {
+    left: 20px;
+}
+.tsd-panel > a.anchor + .tsd-signatures {
+    border-top-width: 0;
+    margin-top: -20px;
+}
+
+ul.tsd-descriptions {
+    position: relative;
+    overflow: hidden;
+    padding: 0;
+    list-style: none;
+}
+ul.tsd-descriptions.active > .tsd-description {
+    display: none;
+}
+ul.tsd-descriptions.active > .tsd-description.current {
+    display: block;
+}
+ul.tsd-descriptions.active > .tsd-description.fade-in {
+    animation: fade-in-delayed 0.3s;
+}
+ul.tsd-descriptions.active > .tsd-description.fade-out {
+    animation: fade-out-delayed 0.3s;
+    position: absolute;
+    display: block;
+    top: 0;
+    left: 0;
+    right: 0;
+    opacity: 0;
+    visibility: hidden;
+}
+ul.tsd-descriptions h4,
+ul.tsd-descriptions .tsd-index-panel h3,
+.tsd-index-panel ul.tsd-descriptions h3 {
+    font-size: 16px;
+    margin: 1em 0 0.5em 0;
+}
+
+ul.tsd-parameters,
+ul.tsd-type-parameters {
+    list-style: square;
+    margin: 0;
+    padding-left: 20px;
+}
+ul.tsd-parameters > li.tsd-parameter-signature,
+ul.tsd-type-parameters > li.tsd-parameter-signature {
+    list-style: none;
+    margin-left: -20px;
+}
+ul.tsd-parameters h5,
+ul.tsd-type-parameters h5 {
+    font-size: 16px;
+    margin: 1em 0 0.5em 0;
+}
+ul.tsd-parameters .tsd-comment,
+ul.tsd-type-parameters .tsd-comment {
+    margin-top: -0.5em;
+}
+
+.tsd-sources {
+    font-size: 14px;
+    color: var(--color-text-aside);
+    margin: 0 0 1em 0;
+}
+.tsd-sources a {
+    color: var(--color-text-aside);
+    text-decoration: underline;
+}
+.tsd-sources ul,
+.tsd-sources p {
+    margin: 0 !important;
+}
+.tsd-sources ul {
+    list-style: none;
+    padding: 0;
+}
+
+.tsd-page-toolbar {
+    position: fixed;
+    z-index: 1;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 40px;
+    color: var(--color-toolbar-text);
+    background: var(--color-toolbar);
+    border-bottom: 1px solid var(--color-panel-divider);
+    transition: transform 0.3s linear;
+}
+.tsd-page-toolbar a {
+    color: var(--color-toolbar-text);
+    text-decoration: none;
+}
+.tsd-page-toolbar a.title {
+    font-weight: bold;
+}
+.tsd-page-toolbar a.title:hover {
+    text-decoration: underline;
+}
+.tsd-page-toolbar .table-wrap {
+    display: table;
+    width: 100%;
+    height: 40px;
+}
+.tsd-page-toolbar .table-cell {
+    display: table-cell;
+    position: relative;
+    white-space: nowrap;
+    line-height: 40px;
+}
+.tsd-page-toolbar .table-cell:first-child {
+    width: 100%;
+}
+
+.tsd-page-toolbar--hide {
+    transform: translateY(-100%);
+}
+
+.tsd-select .tsd-select-list li:before,
+.tsd-select .tsd-select-label:before,
+.tsd-widget:before {
+    content: "";
+    display: inline-block;
+    width: 40px;
+    height: 40px;
+    margin: 0 -8px 0 0;
+    background-image: url(./widgets.png);
+    background-repeat: no-repeat;
+    text-indent: -1024px;
+    vertical-align: bottom;
+    filter: var(--icon-filter);
+}
+@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {
+    .tsd-select .tsd-select-list li:before,
+    .tsd-select .tsd-select-label:before,
+    .tsd-widget:before {
+        background-image: url(./widgets@2x.png);
+        background-size: 320px 40px;
+    }
+}
+
+.tsd-widget {
+    display: inline-block;
+    overflow: hidden;
+    opacity: 0.8;
+    height: 40px;
+    transition: opacity 0.1s, background-color 0.2s;
+    vertical-align: bottom;
+    cursor: pointer;
+}
+.tsd-widget:hover {
+    opacity: 0.9;
+}
+.tsd-widget.active {
+    opacity: 1;
+    background-color: var(--color-panel-divider);
+}
+.tsd-widget.no-caption {
+    width: 40px;
+}
+.tsd-widget.no-caption:before {
+    margin: 0;
+}
+.tsd-widget.search:before {
+    background-position: 0 0;
+}
+.tsd-widget.menu:before {
+    background-position: -40px 0;
+}
+.tsd-widget.options:before {
+    background-position: -80px 0;
+}
+.tsd-widget.options,
+.tsd-widget.menu {
+    display: none;
+}
+@media (max-width: 900px) {
+    .tsd-widget.options,
+    .tsd-widget.menu {
+        display: inline-block;
+    }
+}
+input[type="checkbox"] + .tsd-widget:before {
+    background-position: -120px 0;
+}
+input[type="checkbox"]:checked + .tsd-widget:before {
+    background-position: -160px 0;
+}
+
+.tsd-select {
+    position: relative;
+    display: inline-block;
+    height: 40px;
+    transition: opacity 0.1s, background-color 0.2s;
+    vertical-align: bottom;
+    cursor: pointer;
+}
+.tsd-select .tsd-select-label {
+    opacity: 0.6;
+    transition: opacity 0.2s;
+}
+.tsd-select .tsd-select-label:before {
+    background-position: -240px 0;
+}
+.tsd-select.active .tsd-select-label {
+    opacity: 0.8;
+}
+.tsd-select.active .tsd-select-list {
+    visibility: visible;
+    opacity: 1;
+    transition-delay: 0s;
+}
+.tsd-select .tsd-select-list {
+    position: absolute;
+    visibility: hidden;
+    top: 40px;
+    left: 0;
+    margin: 0;
+    padding: 0;
+    opacity: 0;
+    list-style: none;
+    box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
+    transition: visibility 0s 0.2s, opacity 0.2s;
+}
+.tsd-select .tsd-select-list li {
+    padding: 0 20px 0 0;
+    background-color: var(--color-background);
+}
+.tsd-select .tsd-select-list li:before {
+    background-position: 40px 0;
+}
+.tsd-select .tsd-select-list li:nth-child(even) {
+    background-color: var(--color-panel);
+}
+.tsd-select .tsd-select-list li:hover {
+    background-color: var(--color-panel-divider);
+}
+.tsd-select .tsd-select-list li.selected:before {
+    background-position: -200px 0;
+}
+@media (max-width: 900px) {
+    .tsd-select .tsd-select-list {
+        top: 0;
+        left: auto;
+        right: 100%;
+        margin-right: -5px;
+    }
+    .tsd-select .tsd-select-label:before {
+        background-position: -280px 0;
+    }
+}
+
+img {
+    max-width: 100%;
+}
diff --git a/docs/assets/widgets.png b/docs/assets/widgets.png
new file mode 100644
index 0000000000000000000000000000000000000000..c7380532ac1b45400620011c37c4dcb7aec27a4c
GIT binary patch
literal 480
zcmeAS@N?(olHy`uVBq!ia0y~yU~~YoH8@y+q^jrZML>b&o-U3d6^w6h1+IPUz|;DW
zIZ;96kdsD>Qv^q=09&hp0GpEni<1IR%gvP3v%OR9*{MuRTKWHZyIbuBt)Ci`cU_&%
z1T+i^Y)o{%281-<3TpPAUTzw5v;RY=>1rvxmPl96#kYc9hX!6V^nB|ad#(S+)}?8C
zr_H+lT3B#So$T=?$(w3-{rbQ4R<@nsf$}$hwSO)A$8&`(j+wQf=Jwhb0`CvhR5DCf
z^OgI)KQemrUFPH+UynC$Y~QHG%DbTVh-Skz{enNU)cV_hPu~{TD7TPZl>0&K>iuE|
z7AYn$<f?qDn<D7%t@_^M`}t`}tQUTB<b|cys~qQC(7U7mNeaXFzvph2ZJby5=y?H)
zu!FRle5W(R_P>7)Jrb9GE&SfQW4q&G*@N|4cHI`VakFa5-C!ov&XD)J(qp$rJJ*9e
z-sHv}#g*T7Cv048d1v~BEAzM5FztAse#q78WWC^B<r7kBKcv(gmaJX;-oJ3CyTLi7
zUGKy%vKTy*I_B8_AXqS^clP{8c~VnLLw*O``y1ghf5LiRg?hIG#Va#lfeNA<>UCzQ
U&wLp6h6BX&boFyt=akR{0G%$)mH+?%

literal 0
HcmV?d00001

diff --git a/docs/assets/widgets@2x.png b/docs/assets/widgets@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4bbbd57272f3b28f47527d4951ad10f950b8ad43
GIT binary patch
literal 855
zcmeAS@N?(olHy`uVBq!ia0y~yU}^xe12~w0<i1TN;y}tcz$e5NNRtW{v$~xG>Jcmn
z@(X6T|9^jgLcx21{)7exgY)a>N6m2F0<`Rqr;B4q1>>88jUdw-7W`c)zLE*mq8W2H
z-<&Jl_Hco5BuC5n@AbF5GD82~-e8-v=#zCyUX0F-o}8pPfAv`!GN$ff+TL<~@kgt}
z62eO?_|&+>xBmM$@p|z`tIKEdpPf8%qI>4r7@jn<=eta*{3~?g(zz{Ke9zc-G^gr?
z-7foa?LcS!hmbwzru}ICvbWLlW8;+l-}!^=c32!^nV`+`C*;0-*Y%l94pC;Cb3GXz
zzSf%a!{gVr{Y_lVuUj+a)*Ca+<Ue1=oN!I>!-Hu%xmP&&X-2CuANY8^i{D7Kg6qzP
zXz_ps9+lN8ESH{K4`y<koVa&$<z$fy#Y_&nWfs4Q-`gM<ab^x{$FjqRTqUlT^2GG0
zX)buq(okmUcGG@S=%j|TXKpT;R~ezq@O<i$<+2UQvL>u&b~I>N9xGlE&;2u<VUxbW
zMDv9esy$Uqzh*J4SX1~(U|w+OpKRTP*S;P%%OoH6b~VfkuJK*PqVwn~w})O)mht}*
zuY%uZJ=_*Q=DGMEU`dIe?8Vq!p&R<KyUmf+OflAB(|S*CM%y^;$dEtT_uF2oO8l`~
z&8qWg>*b?+Go!AhN?m-bxlLvtC#MzDF2kFzfHJ1W7ybqdefSqVhbOykd*Yi%EDuhs
z4wF{ft^bv2+DDnKb8gj1FuvcV`M}luS>lO<^)8x>y1#R;a=-ZKwWTQQb)ioBbi;zh
zD!f5V)8581to1LL7c9!l^PSC$NBPYif!_vAZhmL4)v4U)4UsrLYiH_9rmQDd?)(e5
z^pcH>qvBg*i0dus2r*mp4;zKvu=P#s-ti;2obl`NjjwoYd>e(oo#j_uyRb<7Pv^If
zzZ|mGHmV)8^tbO%^>eqMw(@7(&3g{jEp-Najo<c9d+_hN%-sXQuZvHt|MtLv4VWSm
iChY%eyAPC6P{0GV>7V75xI_ZHK*FA`elF{r5}E*d7+j_R

literal 0
HcmV?d00001

diff --git a/docs/classes/I2CAccess.html b/docs/classes/I2CAccess.html
new file mode 100644
index 0000000..ddac092
--- /dev/null
+++ b/docs/classes/I2CAccess.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>I2CAccess | node-web-i2c</title><meta name="description" content="Documentation for node-web-i2c"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">node-web-i2c</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">node-web-i2c</a></li><li><a href="I2CAccess.html">I2CAccess</a></li></ul><h1>Class I2CAccess</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><div class="lead">
+<p>I2CAccess クラス</p>
+</div></div></section><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="target">I2CAccess</span></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Constructors</h3><ul class="tsd-index-list"><li class="tsd-kind-constructor tsd-parent-kind-class"><a href="I2CAccess.html#constructor" class="tsd-kind-icon">constructor</a></li></ul></section><section class="tsd-index-section tsd-is-private tsd-is-private-protected"><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="I2CAccess.html#_ports" class="tsd-kind-icon">_ports</a></li></ul></section><section class="tsd-index-section "><h3>Accessors</h3><ul class="tsd-index-list"><li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="I2CAccess.html#ports" class="tsd-kind-icon">ports</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Constructors</h2><section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class"><a id="constructor" class="tsd-anchor"></a><h3>constructor</h3><ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">new <wbr/>I2CAccess<span class="tsd-signature-symbol">(</span>ports<span class="tsd-signature-symbol">?: </span><a href="I2CPortMap.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPortMap</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="I2CAccess.html" class="tsd-signature-type" data-tsd-kind="Class">I2CAccess</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L43">index.ts:43</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>Creates an instance of GPIOAccess.</p>
+</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5><span class="tsd-flag ts-flagOptional">Optional</span> ports: <a href="I2CPortMap.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPortMap</a></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>ポート番号</p>
+</div></div></li></ul><h4 class="tsd-returns-title">Returns <a href="I2CAccess.html" class="tsd-signature-type" data-tsd-kind="Class">I2CAccess</a></h4></li></ul></section></section><section class="tsd-panel-group tsd-member-group tsd-is-private tsd-is-private-protected"><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a id="_ports" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> _ports</h3><div class="tsd-signature tsd-kind-icon">_ports<span class="tsd-signature-symbol">:</span> <a href="I2CPortMap.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPortMap</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L37">index.ts:37</a></li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group "><h2>Accessors</h2><section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class"><a id="ports" class="tsd-anchor"></a><h3>ports</h3><ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> ports<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="I2CPortMap.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPortMap</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L51">index.ts:51</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>ポート情報取得処理</p>
+</div></div><h4 class="tsd-returns-title">Returns <a href="I2CPortMap.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPortMap</a></h4><div><p>現在のポート情報</p>
+</div></li></ul></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Exports</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-class"><a href="I2CAccess.html" class="tsd-kind-icon">I2CAccess</a><ul><li class="tsd-kind-constructor tsd-parent-kind-class"><a href="I2CAccess.html#constructor" class="tsd-kind-icon">constructor</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="I2CAccess.html#_ports" class="tsd-kind-icon">_ports</a></li><li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="I2CAccess.html#ports" class="tsd-kind-icon">ports</a></li></ul></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
diff --git a/docs/classes/I2CPort.html b/docs/classes/I2CPort.html
new file mode 100644
index 0000000..14f47a1
--- /dev/null
+++ b/docs/classes/I2CPort.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>I2CPort | node-web-i2c</title><meta name="description" content="Documentation for node-web-i2c"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">node-web-i2c</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">node-web-i2c</a></li><li><a href="I2CPort.html">I2CPort</a></li></ul><h1>Class I2CPort</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><div class="lead">
+<p>I2CPort クラス</p>
+</div></div></section><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="target">I2CPort</span></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Constructors</h3><ul class="tsd-index-list"><li class="tsd-kind-constructor tsd-parent-kind-class"><a href="I2CPort.html#constructor" class="tsd-kind-icon">constructor</a></li></ul></section><section class="tsd-index-section tsd-is-private tsd-is-private-protected"><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="I2CPort.html#_portNumber" class="tsd-kind-icon">_port<wbr/>Number</a></li></ul></section><section class="tsd-index-section "><h3>Accessors</h3><ul class="tsd-index-list"><li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="I2CPort.html#portName" class="tsd-kind-icon">port<wbr/>Name</a></li><li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="I2CPort.html#portNumber" class="tsd-kind-icon">port<wbr/>Number</a></li></ul></section><section class="tsd-index-section "><h3>Methods</h3><ul class="tsd-index-list"><li class="tsd-kind-method tsd-parent-kind-class"><a href="I2CPort.html#open" class="tsd-kind-icon">open</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Constructors</h2><section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class"><a id="constructor" class="tsd-anchor"></a><h3>constructor</h3><ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">new <wbr/>I2CPort<span class="tsd-signature-symbol">(</span>portNumber<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L74">index.ts:74</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>Creates an instance of GPIOPort.</p>
+</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>portNumber: <span class="tsd-signature-type">number</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>ポート番号</p>
+</div></div></li></ul><h4 class="tsd-returns-title">Returns <a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a></h4></li></ul></section></section><section class="tsd-panel-group tsd-member-group tsd-is-private tsd-is-private-protected"><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a id="_portNumber" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> _port<wbr/>Number</h3><div class="tsd-signature tsd-kind-icon">_port<wbr/>Number<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L68">index.ts:68</a></li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group "><h2>Accessors</h2><section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class"><a id="portName" class="tsd-anchor"></a><h3>port<wbr/>Name</h3><ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> portName<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L90">index.ts:90</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>ポート名取得処理</p>
+</div></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div><p>現在のポート名</p>
+</div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class"><a id="portNumber" class="tsd-anchor"></a><h3>port<wbr/>Number</h3><ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> portNumber<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L82">index.ts:82</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>ポート番号取得処理</p>
+</div></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4><div><p>現在のポート番号</p>
+</div></li></ul></section></section><section class="tsd-panel-group tsd-member-group "><h2>Methods</h2><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="open" class="tsd-anchor"></a><h3>open</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">open<span class="tsd-signature-symbol">(</span>slaveAddress<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/I2CSlaveDevice.html" class="tsd-signature-type" data-tsd-kind="Interface">I2CSlaveDevice</a><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L99">index.ts:99</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>I2CSlave 接続デバイスオープン処理</p>
+</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>slaveAddress: <span class="tsd-signature-type">number</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>接続デバイス情報のアドレス</p>
+</div></div></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/I2CSlaveDevice.html" class="tsd-signature-type" data-tsd-kind="Interface">I2CSlaveDevice</a><span class="tsd-signature-symbol">&gt;</span></h4><div><p>I2CSlaveDevice インスタンスの生成の完了</p>
+</div></li></ul></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Exports</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-class"><a href="I2CPort.html" class="tsd-kind-icon">I2CPort</a><ul><li class="tsd-kind-constructor tsd-parent-kind-class"><a href="I2CPort.html#constructor" class="tsd-kind-icon">constructor</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="I2CPort.html#_portNumber" class="tsd-kind-icon">_port<wbr/>Number</a></li><li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="I2CPort.html#portName" class="tsd-kind-icon">port<wbr/>Name</a></li><li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="I2CPort.html#portNumber" class="tsd-kind-icon">port<wbr/>Number</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="I2CPort.html#open" class="tsd-kind-icon">open</a></li></ul></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
diff --git a/docs/classes/I2CPortMap.html b/docs/classes/I2CPortMap.html
new file mode 100644
index 0000000..b270060
--- /dev/null
+++ b/docs/classes/I2CPortMap.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>I2CPortMap | node-web-i2c</title><meta name="description" content="Documentation for node-web-i2c"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">node-web-i2c</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">node-web-i2c</a></li><li><a href="I2CPortMap.html">I2CPortMap</a></li></ul><h1>Class I2CPortMap</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><div class="lead">
+<p>Different from Web I2C API specification.</p>
+</div></div></section><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="tsd-signature-type">Map</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">PortNumber</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">&gt;</span><ul class="tsd-hierarchy"><li><span class="target">I2CPortMap</span></li></ul></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section tsd-is-inherited"><h3>Constructors</h3><ul class="tsd-index-list"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><a href="I2CPortMap.html#constructor" class="tsd-kind-icon">constructor</a></li></ul></section><section class="tsd-index-section tsd-is-inherited tsd-is-external"><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#_toStringTag_" class="tsd-kind-icon">[to<wbr/>String<wbr/>Tag]</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#size" class="tsd-kind-icon">size</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a href="I2CPortMap.html#_species_" class="tsd-kind-icon">[species]</a></li></ul></section><section class="tsd-index-section "><h3>Methods</h3><ul class="tsd-index-list"><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#_iterator_" class="tsd-kind-icon">[iterator]</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#clear" class="tsd-kind-icon">clear</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#delete" class="tsd-kind-icon">delete</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#entries" class="tsd-kind-icon">entries</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#forEach" class="tsd-kind-icon">for<wbr/>Each</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#get" class="tsd-kind-icon">get</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="I2CPortMap.html#getByName" class="tsd-kind-icon">get<wbr/>By<wbr/>Name</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#has" class="tsd-kind-icon">has</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#keys" class="tsd-kind-icon">keys</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#set" class="tsd-kind-icon">set</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#values" class="tsd-kind-icon">values</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group tsd-is-inherited"><h2>Constructors</h2><section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><a id="constructor" class="tsd-anchor"></a><h3>constructor</h3><ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><li class="tsd-signature tsd-kind-icon">new <wbr/>I2CPort<wbr/>Map<span class="tsd-signature-symbol">(</span>entries<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">readonly </span><span class="tsd-signature-symbol">readonly </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="I2CPortMap.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPortMap</a></li><li class="tsd-signature tsd-kind-icon">new <wbr/>I2CPort<wbr/>Map<span class="tsd-signature-symbol">(</span>iterable<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">readonly </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="I2CPortMap.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPortMap</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Map&lt;PortNumber, I2CPort&gt;.constructor</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.collection.d.ts:33</li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5><span class="tsd-flag ts-flagOptional">Optional</span> entries: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">readonly </span><span class="tsd-signature-symbol">readonly </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[]</span></h5></li></ul><h4 class="tsd-returns-title">Returns <a href="I2CPortMap.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPortMap</a></h4></li><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Map&lt;PortNumber, I2CPort&gt;.constructor</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:160</li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>iterable: <span class="tsd-signature-type">Iterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">readonly </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></h5></li></ul><h4 class="tsd-returns-title">Returns <a href="I2CPortMap.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPortMap</a></h4></li></ul></section></section><section class="tsd-panel-group tsd-member-group tsd-is-inherited tsd-is-external"><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="_toStringTag_" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagReadonly">Readonly</span> [to<wbr/>String<wbr/>Tag]</h3><div class="tsd-signature tsd-kind-icon">[to<wbr/>String<wbr/>Tag]<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><p>Inherited from Map.__@toStringTag@26</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts:135</li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="size" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagReadonly">Readonly</span> size</h3><div class="tsd-signature tsd-kind-icon">size<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><p>Inherited from Map.size</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.collection.d.ts:28</li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a id="_species_" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagStatic">Static</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> [species]</h3><div class="tsd-signature tsd-kind-icon">[species]<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">MapConstructor</span></div><aside class="tsd-sources"><p>Inherited from Map.__@species@595</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts:317</li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group "><h2>Methods</h2><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="_iterator_" class="tsd-anchor"></a><h3>[iterator]</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><li class="tsd-signature tsd-kind-icon">[iterator]<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Map.__@iterator@83</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:121</li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>Returns an iterable of entries in the map.</p>
+</div></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="clear" class="tsd-anchor"></a><h3>clear</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><li class="tsd-signature tsd-kind-icon">clear<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Map.clear</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.collection.d.ts:22</li></ul></aside><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="delete" class="tsd-anchor"></a><h3>delete</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><li class="tsd-signature tsd-kind-icon">delete<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Map.delete</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.collection.d.ts:23</li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>key: <span class="tsd-signature-type">number</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="entries" class="tsd-anchor"></a><h3>entries</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><li class="tsd-signature tsd-kind-icon">entries<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Map.entries</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:126</li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>Returns an iterable of key, value pairs for every entry in the map.</p>
+</div></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="forEach" class="tsd-anchor"></a><h3>for<wbr/>Each</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><li class="tsd-signature tsd-kind-icon">for<wbr/>Each<span class="tsd-signature-symbol">(</span>callbackfn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a>, key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, map<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Map</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span>, thisArg<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Map.forEach</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.collection.d.ts:24</li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>callbackfn: <span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a>, key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, map<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Map</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures tsd-kind-type-literal tsd-is-external"><li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a>, key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, map<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Map</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>value: <a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a></h5></li><li><h5>key: <span class="tsd-signature-type">number</span></h5></li><li><h5>map: <span class="tsd-signature-type">Map</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">&gt;</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></li><li><h5><span class="tsd-flag ts-flagOptional">Optional</span> thisArg: <span class="tsd-signature-type">any</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="get" class="tsd-anchor"></a><h3>get</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><li class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Map.get</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.collection.d.ts:25</li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>key: <span class="tsd-signature-type">number</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="getByName" class="tsd-anchor"></a><h3>get<wbr/>By<wbr/>Name</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">get<wbr/>By<wbr/>Name<span class="tsd-signature-symbol">(</span>portName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L58">index.ts:58</a></li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>portName: <span class="tsd-signature-type">string</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="has" class="tsd-anchor"></a><h3>has</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><li class="tsd-signature tsd-kind-icon">has<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Map.has</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.collection.d.ts:26</li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>key: <span class="tsd-signature-type">number</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="keys" class="tsd-anchor"></a><h3>keys</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><li class="tsd-signature tsd-kind-icon">keys<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Map.keys</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:131</li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>Returns an iterable of keys in the map</p>
+</div></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="set" class="tsd-anchor"></a><h3>set</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><li class="tsd-signature tsd-kind-icon">set<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, value<span class="tsd-signature-symbol">: </span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="I2CPortMap.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPortMap</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Map.set</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.collection.d.ts:27</li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>key: <span class="tsd-signature-type">number</span></h5></li><li><h5>value: <a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a></h5></li></ul><h4 class="tsd-returns-title">Returns <a href="I2CPortMap.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPortMap</a></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="values" class="tsd-anchor"></a><h3>values</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><li class="tsd-signature tsd-kind-icon">values<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Map.values</p><ul><li>Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:136</li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>Returns an iterable of values in the map</p>
+</div></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IterableIterator</span><span class="tsd-signature-symbol">&lt;</span><a href="I2CPort.html" class="tsd-signature-type" data-tsd-kind="Class">I2CPort</a><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Exports</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-class"><a href="I2CPortMap.html" class="tsd-kind-icon">I2CPort<wbr/>Map</a><ul><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><a href="I2CPortMap.html#constructor" class="tsd-kind-icon">constructor</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#_toStringTag_" class="tsd-kind-icon">[to<wbr/>String<wbr/>Tag]</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#size" class="tsd-kind-icon">size</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a href="I2CPortMap.html#_species_" class="tsd-kind-icon">[species]</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#_iterator_" class="tsd-kind-icon">[iterator]</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#clear" class="tsd-kind-icon">clear</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#delete" class="tsd-kind-icon">delete</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#entries" class="tsd-kind-icon">entries</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#forEach" class="tsd-kind-icon">for<wbr/>Each</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#get" class="tsd-kind-icon">get</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="I2CPortMap.html#getByName" class="tsd-kind-icon">get<wbr/>By<wbr/>Name</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#has" class="tsd-kind-icon">has</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#keys" class="tsd-kind-icon">keys</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#set" class="tsd-kind-icon">set</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="I2CPortMap.html#values" class="tsd-kind-icon">values</a></li></ul></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
diff --git a/docs/classes/OperationError.html b/docs/classes/OperationError.html
new file mode 100644
index 0000000..e940a43
--- /dev/null
+++ b/docs/classes/OperationError.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>OperationError | node-web-i2c</title><meta name="description" content="Documentation for node-web-i2c"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">node-web-i2c</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">node-web-i2c</a></li><li><a href="OperationError.html">OperationError</a></li></ul><h1>Class OperationError</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><div class="lead">
+<p>操作エラー</p>
+</div></div></section><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="tsd-signature-type">Error</span><ul class="tsd-hierarchy"><li><span class="target">OperationError</span></li></ul></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Constructors</h3><ul class="tsd-index-list"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite"><a href="OperationError.html#constructor" class="tsd-kind-icon">constructor</a></li></ul></section><section class="tsd-index-section tsd-is-inherited tsd-is-external"><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="OperationError.html#message" class="tsd-kind-icon">message</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="OperationError.html#name" class="tsd-kind-icon">name</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="OperationError.html#stack" class="tsd-kind-icon">stack</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a href="OperationError.html#prepareStackTrace" class="tsd-kind-icon">prepare<wbr/>Stack<wbr/>Trace</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a href="OperationError.html#stackTraceLimit" class="tsd-kind-icon">stack<wbr/>Trace<wbr/>Limit</a></li></ul></section><section class="tsd-index-section tsd-is-inherited tsd-is-external"><h3>Methods</h3><ul class="tsd-index-list"><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a href="OperationError.html#captureStackTrace" class="tsd-kind-icon">capture<wbr/>Stack<wbr/>Trace</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Constructors</h2><section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite"><a id="constructor" class="tsd-anchor"></a><h3>constructor</h3><ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite"><li class="tsd-signature tsd-kind-icon">new <wbr/>Operation<wbr/>Error<span class="tsd-signature-symbol">(</span>message<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="OperationError.html" class="tsd-signature-type" data-tsd-kind="Class">OperationError</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Overrides Error.constructor</p><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L290">index.ts:290</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>Creates an instance of OperationError.</p>
+</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>message: <span class="tsd-signature-type">string</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>エラーメッセージ</p>
+</div></div></li></ul><h4 class="tsd-returns-title">Returns <a href="OperationError.html" class="tsd-signature-type" data-tsd-kind="Class">OperationError</a></h4></li></ul></section></section><section class="tsd-panel-group tsd-member-group tsd-is-inherited tsd-is-external"><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="message" class="tsd-anchor"></a><h3>message</h3><div class="tsd-signature tsd-kind-icon">message<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><p>Inherited from Error.message</p><ul><li>Defined in node_modules/typescript/lib/lib.es5.d.ts:1023</li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="name" class="tsd-anchor"></a><h3>name</h3><div class="tsd-signature tsd-kind-icon">name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><p>Inherited from Error.name</p><ul><li>Defined in node_modules/typescript/lib/lib.es5.d.ts:1022</li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a id="stack" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> stack</h3><div class="tsd-signature tsd-kind-icon">stack<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><p>Inherited from Error.stack</p><ul><li>Defined in node_modules/typescript/lib/lib.es5.d.ts:1024</li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a id="prepareStackTrace" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagStatic">Static</span> <span class="tsd-flag ts-flagOptional">Optional</span> prepare<wbr/>Stack<wbr/>Trace</h3><div class="tsd-signature tsd-kind-icon">prepare<wbr/>Stack<wbr/>Trace<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">(</span>err<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Error</span>, stackTraces<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">CallSite</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">any</span></div><aside class="tsd-sources"><p>Inherited from Error.prepareStackTrace</p><ul><li>Defined in node_modules/@types/node/globals.d.ts:11</li></ul></aside><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>err<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Error</span>, stackTraces<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">CallSite</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><div class="tsd-comment tsd-typography"><div class="lead">
+<p>Optional override for formatting stack traces</p>
+</div><dl class="tsd-comment-tags"><dt>see</dt><dd><p><a href="https://v8.dev/docs/stack-trace-api#customizing-stack-traces">https://v8.dev/docs/stack-trace-api#customizing-stack-traces</a></p>
+</dd></dl></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>err: <span class="tsd-signature-type">Error</span></h5></li><li><h5>stackTraces: <span class="tsd-signature-type">CallSite</span><span class="tsd-signature-symbol">[]</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4></li></ul></li></ul></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a id="stackTraceLimit" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagStatic">Static</span> stack<wbr/>Trace<wbr/>Limit</h3><div class="tsd-signature tsd-kind-icon">stack<wbr/>Trace<wbr/>Limit<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><p>Inherited from Error.stackTraceLimit</p><ul><li>Defined in node_modules/@types/node/globals.d.ts:13</li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group tsd-is-inherited tsd-is-external"><h2>Methods</h2><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a id="captureStackTrace" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagStatic">Static</span> capture<wbr/>Stack<wbr/>Trace</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><li class="tsd-signature tsd-kind-icon">capture<wbr/>Stack<wbr/>Trace<span class="tsd-signature-symbol">(</span>targetObject<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span>, constructorOpt<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Inherited from Error.captureStackTrace</p><ul><li>Defined in node_modules/@types/node/globals.d.ts:4</li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>Create .stack property on a target object</p>
+</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>targetObject: <span class="tsd-signature-type">object</span></h5></li><li><h5><span class="tsd-flag ts-flagOptional">Optional</span> constructorOpt: <span class="tsd-signature-type">Function</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Exports</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-class"><a href="OperationError.html" class="tsd-kind-icon">Operation<wbr/>Error</a><ul><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite"><a href="OperationError.html#constructor" class="tsd-kind-icon">constructor</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="OperationError.html#message" class="tsd-kind-icon">message</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="OperationError.html#name" class="tsd-kind-icon">name</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-external"><a href="OperationError.html#stack" class="tsd-kind-icon">stack</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a href="OperationError.html#prepareStackTrace" class="tsd-kind-icon">prepare<wbr/>Stack<wbr/>Trace</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a href="OperationError.html#stackTraceLimit" class="tsd-kind-icon">stack<wbr/>Trace<wbr/>Limit</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static tsd-is-external"><a href="OperationError.html#captureStackTrace" class="tsd-kind-icon">capture<wbr/>Stack<wbr/>Trace</a></li></ul></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 0000000..fb8e2b8
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>node-web-i2c</title><meta name="description" content="Documentation for node-web-i2c"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script async src="assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">node-web-i2c</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><h1>node-web-i2c</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><div class="tsd-panel tsd-typography">
+<a href="#node-web-i2c" id="node-web-i2c" style="color: inherit; text-decoration: none;">
+  <h1>node-web-i2c</h1>
+</a>
+<p>I2C access with Node.js</p>
+
+<a href="#usage" id="usage" style="color: inherit; text-decoration: none;">
+  <h2>Usage</h2>
+</a>
+<pre><code class="language-js"><span class="hl-0">const</span><span class="hl-1"> { </span><span class="hl-2">requestI2CAccess</span><span class="hl-1"> } = </span><span class="hl-3">require</span><span class="hl-1">(</span><span class="hl-4">&quot;node-web-i2c&quot;</span><span class="hl-1">);</span><br/><span class="hl-0">const</span><span class="hl-1"> </span><span class="hl-2">ADT7410</span><span class="hl-1"> = </span><span class="hl-3">require</span><span class="hl-1">(</span><span class="hl-4">&quot;@chirimen/adt7410&quot;</span><span class="hl-1">);</span><br/><br/><span class="hl-0">const</span><span class="hl-1"> </span><span class="hl-2">ADT7410_ADDR</span><span class="hl-1"> = </span><span class="hl-5">0x48</span><span class="hl-1">;</span><br/><br/><span class="hl-0">async</span><span class="hl-1"> </span><span class="hl-0">function</span><span class="hl-1"> </span><span class="hl-3">main</span><span class="hl-1">() {</span><br/><span class="hl-1">  </span><span class="hl-0">const</span><span class="hl-1"> </span><span class="hl-2">i2cAccess</span><span class="hl-1"> = </span><span class="hl-6">await</span><span class="hl-1"> </span><span class="hl-3">requestI2CAccess</span><span class="hl-1">();</span><br/><span class="hl-1">  </span><span class="hl-0">const</span><span class="hl-1"> </span><span class="hl-2">port</span><span class="hl-1"> = </span><span class="hl-7">i2cAccess</span><span class="hl-1">.</span><span class="hl-7">ports</span><span class="hl-1">.</span><span class="hl-3">get</span><span class="hl-1">(</span><span class="hl-5">1</span><span class="hl-1">);</span><br/><span class="hl-1">  </span><span class="hl-0">const</span><span class="hl-1"> </span><span class="hl-2">adt7410</span><span class="hl-1"> = </span><span class="hl-0">new</span><span class="hl-1"> </span><span class="hl-3">ADT7410</span><span class="hl-1">(</span><span class="hl-7">port</span><span class="hl-1">, </span><span class="hl-2">ADT7410_ADDR</span><span class="hl-1">);</span><br/><span class="hl-1">  </span><span class="hl-6">await</span><span class="hl-1"> </span><span class="hl-7">adt7410</span><span class="hl-1">.</span><span class="hl-3">init</span><span class="hl-1">();</span><br/><span class="hl-1">  </span><span class="hl-0">const</span><span class="hl-1"> </span><span class="hl-2">temperature</span><span class="hl-1"> = </span><span class="hl-6">await</span><span class="hl-1"> </span><span class="hl-7">adt7410</span><span class="hl-1">.</span><span class="hl-3">read</span><span class="hl-1">();</span><br/><span class="hl-1">  </span><span class="hl-7">console</span><span class="hl-1">.</span><span class="hl-3">log</span><span class="hl-1">(</span><span class="hl-4">`Temperature: </span><span class="hl-0">${</span><span class="hl-7">temperature</span><span class="hl-0">}</span><span class="hl-4"> ℃`</span><span class="hl-1">);</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-3">main</span><span class="hl-1">();</span>
+</code></pre>
+
+<a href="#document" id="document" style="color: inherit; text-decoration: none;">
+  <h2>Document</h2>
+</a>
+<p><a href="http://browserobo.github.io/WebI2C">Web I2C API</a></p>
+</div></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class="current"><a href="modules.html">Exports</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="tsd-kind-class"><a href="classes/I2CAccess.html" class="tsd-kind-icon">I2CAccess</a></li><li class="tsd-kind-class"><a href="classes/I2CPort.html" class="tsd-kind-icon">I2CPort</a></li><li class="tsd-kind-class"><a href="classes/I2CPortMap.html" class="tsd-kind-icon">I2CPort<wbr/>Map</a></li><li class="tsd-kind-class"><a href="classes/OperationError.html" class="tsd-kind-icon">Operation<wbr/>Error</a></li><li class="tsd-kind-interface"><a href="interfaces/I2CSlaveDevice.html" class="tsd-kind-icon">I2CSlave<wbr/>Device</a></li><li class="tsd-kind-function"><a href="modules.html#requestI2CAccess" class="tsd-kind-icon">request<wbr/>I2CAccess</a></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="assets/main.js"></script></body></html>
\ No newline at end of file
diff --git a/docs/interfaces/I2CSlaveDevice.html b/docs/interfaces/I2CSlaveDevice.html
new file mode 100644
index 0000000..60c4a8e
--- /dev/null
+++ b/docs/interfaces/I2CSlaveDevice.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>I2CSlaveDevice | node-web-i2c</title><meta name="description" content="Documentation for node-web-i2c"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">node-web-i2c</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">node-web-i2c</a></li><li><a href="I2CSlaveDevice.html">I2CSlaveDevice</a></li></ul><h1>Interface I2CSlaveDevice</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><div class="lead">
+<p>I2CSlaveDevice クラス</p>
+</div></div></section><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="target">I2CSlaveDevice</span></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#slaveAddress" class="tsd-kind-icon">slave<wbr/>Address</a></li></ul></section><section class="tsd-index-section "><h3>Methods</h3><ul class="tsd-index-list"><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#read16" class="tsd-kind-icon">read16</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#read8" class="tsd-kind-icon">read8</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#readByte" class="tsd-kind-icon">read<wbr/>Byte</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#readBytes" class="tsd-kind-icon">read<wbr/>Bytes</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#write16" class="tsd-kind-icon">write16</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#write8" class="tsd-kind-icon">write8</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#writeByte" class="tsd-kind-icon">write<wbr/>Byte</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#writeBytes" class="tsd-kind-icon">write<wbr/>Bytes</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="slaveAddress" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagReadonly">Readonly</span> slave<wbr/>Address</h3><div class="tsd-signature tsd-kind-icon">slave<wbr/>Address<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L224">index.ts:224</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
+<p>I2C Slave アドレス</p>
+</div></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Methods</h2><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface"><a id="read16" class="tsd-anchor"></a><h3>read16</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface"><li class="tsd-signature tsd-kind-icon">read16<span class="tsd-signature-symbol">(</span>registerNumber<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L237">index.ts:237</a></li></ul></aside><div class="tsd-comment tsd-typography"><dl class="tsd-comment-tags"><dt>function</dt><dd><p>I2C 読み取り処理</p>
+</dd></dl></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>registerNumber: <span class="tsd-signature-type">number</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>読み取りアドレス</p>
+</div></div></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface"><a id="read8" class="tsd-anchor"></a><h3>read8</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface"><li class="tsd-signature tsd-kind-icon">read8<span class="tsd-signature-symbol">(</span>registerNumber<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L231">index.ts:231</a></li></ul></aside><div class="tsd-comment tsd-typography"><dl class="tsd-comment-tags"><dt>function</dt><dd><p>I2C 読み取り処理</p>
+</dd></dl></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>registerNumber: <span class="tsd-signature-type">number</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>読み取りアドレス</p>
+</div></div></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface"><a id="readByte" class="tsd-anchor"></a><h3>read<wbr/>Byte</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface"><li class="tsd-signature tsd-kind-icon">read<wbr/>Byte<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L258">index.ts:258</a></li></ul></aside><div class="tsd-comment tsd-typography"><dl class="tsd-comment-tags"><dt>function</dt><dd><p>I2c bytes 読み取りバイト処理
+Different from Web I2C API specification.</p>
+</dd></dl></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface"><a id="readBytes" class="tsd-anchor"></a><h3>read<wbr/>Bytes</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface"><li class="tsd-signature tsd-kind-icon">read<wbr/>Bytes<span class="tsd-signature-symbol">(</span>length<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L265">index.ts:265</a></li></ul></aside><div class="tsd-comment tsd-typography"><dl class="tsd-comment-tags"><dt>function</dt><dd><p>I2c bytes 読み取りバイト処理
+Different from Web I2C API specification.</p>
+</dd></dl></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>length: <span class="tsd-signature-type">number</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>読み取る配列の長さ</p>
+</div></div></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface"><a id="write16" class="tsd-anchor"></a><h3>write16</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface"><li class="tsd-signature tsd-kind-icon">write16<span class="tsd-signature-symbol">(</span>registerNumber<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L251">index.ts:251</a></li></ul></aside><div class="tsd-comment tsd-typography"><dl class="tsd-comment-tags"><dt>function</dt><dd><p>I2c bytes 書き込み処理</p>
+</dd></dl></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>registerNumber: <span class="tsd-signature-type">number</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>書き込みアドレス</p>
+</div></div></li><li><h5>value: <span class="tsd-signature-type">number</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>書き込みの値(ワード)</p>
+</div></div></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface"><a id="write8" class="tsd-anchor"></a><h3>write8</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface"><li class="tsd-signature tsd-kind-icon">write8<span class="tsd-signature-symbol">(</span>registerNumber<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L244">index.ts:244</a></li></ul></aside><div class="tsd-comment tsd-typography"><dl class="tsd-comment-tags"><dt>function</dt><dd><p>I2c s/I2c/I2C 書き込み処理</p>
+</dd></dl></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>registerNumber: <span class="tsd-signature-type">number</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>書き込みアドレス</p>
+</div></div></li><li><h5>value: <span class="tsd-signature-type">number</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>書き込みの値(バイト)</p>
+</div></div></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface"><a id="writeByte" class="tsd-anchor"></a><h3>write<wbr/>Byte</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface"><li class="tsd-signature tsd-kind-icon">write<wbr/>Byte<span class="tsd-signature-symbol">(</span>byte<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L272">index.ts:272</a></li></ul></aside><div class="tsd-comment tsd-typography"><dl class="tsd-comment-tags"><dt>function</dt><dd><p>I2c bytes 書き込みバイト処理
+Different from Web I2C API specification.</p>
+</dd></dl></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>byte: <span class="tsd-signature-type">number</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>書き込みの値</p>
+</div></div></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface"><a id="writeBytes" class="tsd-anchor"></a><h3>write<wbr/>Bytes</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface"><li class="tsd-signature tsd-kind-icon">write<wbr/>Bytes<span class="tsd-signature-symbol">(</span>bytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L279">index.ts:279</a></li></ul></aside><div class="tsd-comment tsd-typography"><dl class="tsd-comment-tags"><dt>function</dt><dd><p>I2c bytes 書き込みバイト配列処理
+Different from Web I2C API specification.</p>
+</dd></dl></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>bytes: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
+<p>書き込みの値の配列</p>
+</div></div></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Exports</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-interface"><a href="I2CSlaveDevice.html" class="tsd-kind-icon">I2CSlave<wbr/>Device</a><ul><li class="tsd-kind-property tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#slaveAddress" class="tsd-kind-icon">slave<wbr/>Address</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#read16" class="tsd-kind-icon">read16</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#read8" class="tsd-kind-icon">read8</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#readByte" class="tsd-kind-icon">read<wbr/>Byte</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#readBytes" class="tsd-kind-icon">read<wbr/>Bytes</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#write16" class="tsd-kind-icon">write16</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#write8" class="tsd-kind-icon">write8</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#writeByte" class="tsd-kind-icon">write<wbr/>Byte</a></li><li class="tsd-kind-method tsd-parent-kind-interface"><a href="I2CSlaveDevice.html#writeBytes" class="tsd-kind-icon">write<wbr/>Bytes</a></li></ul></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
diff --git a/docs/modules.html b/docs/modules.html
new file mode 100644
index 0000000..d3bd2a4
--- /dev/null
+++ b/docs/modules.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>node-web-i2c</title><meta name="description" content="Documentation for node-web-i2c"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script async src="assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">node-web-i2c</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><h1>node-web-i2c</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Classes</h3><ul class="tsd-index-list"><li class="tsd-kind-class"><a href="classes/I2CAccess.html" class="tsd-kind-icon">I2CAccess</a></li><li class="tsd-kind-class"><a href="classes/I2CPort.html" class="tsd-kind-icon">I2CPort</a></li><li class="tsd-kind-class"><a href="classes/I2CPortMap.html" class="tsd-kind-icon">I2CPort<wbr/>Map</a></li><li class="tsd-kind-class"><a href="classes/OperationError.html" class="tsd-kind-icon">Operation<wbr/>Error</a></li></ul></section><section class="tsd-index-section "><h3>Interfaces</h3><ul class="tsd-index-list"><li class="tsd-kind-interface"><a href="interfaces/I2CSlaveDevice.html" class="tsd-kind-icon">I2CSlave<wbr/>Device</a></li></ul></section><section class="tsd-index-section "><h3>Functions</h3><ul class="tsd-index-list"><li class="tsd-kind-function"><a href="modules.html#requestI2CAccess" class="tsd-kind-icon">request<wbr/>I2CAccess</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Functions</h2><section class="tsd-panel tsd-member tsd-kind-function"><a id="requestI2CAccess" class="tsd-anchor"></a><h3>request<wbr/>I2CAccess</h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">request<wbr/>I2CAccess<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="classes/I2CAccess.html" class="tsd-signature-type" data-tsd-kind="Class">I2CAccess</a><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/gurezo/node-web-i2c/blob/6e2ac00/index.ts#L298">index.ts:298</a></li></ul></aside><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="classes/I2CAccess.html" class="tsd-signature-type" data-tsd-kind="Class">I2CAccess</a><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class="current"><a href="modules.html">Exports</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="tsd-kind-class"><a href="classes/I2CAccess.html" class="tsd-kind-icon">I2CAccess</a></li><li class="tsd-kind-class"><a href="classes/I2CPort.html" class="tsd-kind-icon">I2CPort</a></li><li class="tsd-kind-class"><a href="classes/I2CPortMap.html" class="tsd-kind-icon">I2CPort<wbr/>Map</a></li><li class="tsd-kind-class"><a href="classes/OperationError.html" class="tsd-kind-icon">Operation<wbr/>Error</a></li><li class="tsd-kind-interface"><a href="interfaces/I2CSlaveDevice.html" class="tsd-kind-icon">I2CSlave<wbr/>Device</a></li><li class="tsd-kind-function"><a href="modules.html#requestI2CAccess" class="tsd-kind-icon">request<wbr/>I2CAccess</a></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="assets/main.js"></script></body></html>
\ No newline at end of file
diff --git a/index.ts b/index.ts
index 8f7524a..52b7611 100644
--- a/index.ts
+++ b/index.ts
@@ -1,27 +1,53 @@
 import { openPromisified } from 'i2c-bus';
 
+/**
+ * I2C Port Map Max サイズ
+ */
 const I2CPortMapSizeMax = 32;
 
+/**
+ * Uint16 Max サイズ
+ */
 const Uint16Max = 65535;
 
+/**
+ *
+ * Uint16型変換処理
+ * @param parseString 変換文字列
+ * @return Uint16型変換値
+ */
 function parseUint16(parseString: string) {
   const n = Number.parseInt(parseString, 10);
   if (0 <= n && n <= Uint16Max) return n;
   else throw new RangeError(`Must be between 0 and ${Uint16Max}.`);
 }
 
+/** ポート番号 */
 type PortNumber = number;
+/** ポート名 */
 type PortName = string;
 
+/** I2C Slave アドレス */
 type I2CSlaveAddress = number;
 
+/**
+ * I2CAccess クラス
+ */
 export class I2CAccess {
   private readonly _ports: I2CPortMap;
 
+  /**
+   * Creates an instance of GPIOAccess.
+   * @param ports ポート番号
+   */
   constructor(ports?: I2CPortMap) {
     this._ports = ports == null ? new I2CPortMap() : ports;
   }
 
+  /**
+   * ポート情報取得処理
+   * @return 現在のポート情報
+   */
   get ports(): I2CPortMap {
     return this._ports;
   }
@@ -35,21 +61,41 @@ export class I2CPortMap extends Map<PortNumber, I2CPort> {
   }
 }
 
+/**
+ * I2CPort クラス
+ */
 export class I2CPort {
   private readonly _portNumber: PortNumber;
 
+  /**
+   * Creates an instance of GPIOPort.
+   * @param portNumber ポート番号
+   */
   constructor(portNumber: PortNumber) {
     this._portNumber = parseUint16(portNumber.toString());
   }
 
+  /**
+   * ポート番号取得処理
+   * @return 現在のポート番号
+   */
   get portNumber(): PortNumber {
     return this._portNumber;
   }
 
+  /**
+   * ポート名取得処理
+   * @return 現在のポート名
+   */
   get portName(): string {
     return `i2c-${this.portNumber}`;
   }
 
+  /**
+   * I2CSlave 接続デバイスオープン処理
+   * @param slaveAddress 接続デバイス情報のアドレス
+   * @return I2CSlaveDevice インスタンスの生成の完了
+   */
   async open(slaveAddress: I2CSlaveAddress): Promise<I2CSlaveDevice> {
     const bus = await openPromisified(this.portNumber).catch((error) => {
       throw new OperationError(error);
@@ -57,32 +103,57 @@ export class I2CPort {
 
     return {
       slaveAddress,
-      read8: (cmd) =>
-        bus.readByte(slaveAddress, cmd).catch((error) => {
+      /**
+       * @function
+       * I2C 読み取り処理
+       * @param registerNumber 読み取りアドレス
+       */
+      read8: (registerNumber) =>
+        bus.readByte(slaveAddress, registerNumber).catch((error) => {
           throw new OperationError(error);
         }),
-      read16: (cmd) =>
-        bus.readWord(slaveAddress, cmd).catch((error) => {
+      /**
+       * @function
+       * I2C 読み取り処理
+       * @param registerNumber 読み取りアドレス
+       */
+      read16: (registerNumber) =>
+        bus.readWord(slaveAddress, registerNumber).catch((error) => {
           throw new OperationError(error);
         }),
-      write8: async (cmd, byte) => {
+      /**
+       * @function
+       * I2c s/I2c/I2C 書き込み処理
+       * @param registerNumber 書き込みアドレス
+       * @param byte 書き込みの値(バイト)
+       */
+      write8: async (registerNumber, byte) => {
         try {
-          await bus.writeByte(slaveAddress, cmd, byte);
+          await bus.writeByte(slaveAddress, registerNumber, byte);
           return byte;
         } catch (error: any) {
           throw new OperationError(error);
         }
       },
-      write16: async (cmd, word) => {
+      /**
+       * @function
+       * I2c bytes 書き込み処理
+       * @param registerNumber 書き込みアドレス
+       * @param word 書き込みの値(ワード)
+       */
+      write16: async (registerNumber, word) => {
         try {
-          await bus.writeWord(slaveAddress, cmd, word);
+          await bus.writeWord(slaveAddress, registerNumber, word);
           return word;
         } catch (error: any) {
           throw new OperationError(error);
         }
       },
-
-      /** Different from Web I2C API specification. */
+      /**
+       * @function
+       * I2c bytes 読み取りバイト処理
+       * Different from Web I2C API specification.
+       */
       readByte: async () => {
         try {
           const byte = await bus.receiveByte(slaveAddress);
@@ -91,7 +162,12 @@ export class I2CPort {
           throw new OperationError(error);
         }
       },
-      /** Different from Web I2C API specification. */
+      /**
+       * @function
+       * I2c bytes 読み取りバイト処理
+       * Different from Web I2C API specification.
+       * @param length 読み取る配列の長さ
+       */
       readBytes: async (length) => {
         try {
           const { bytesRead, buffer } = await bus.i2cRead(
@@ -104,7 +180,12 @@ export class I2CPort {
           throw new OperationError(error);
         }
       },
-      /** Different from Web I2C API specification. */
+      /**
+       * @function
+       * I2c bytes 書き込みバイト処理
+       * Different from Web I2C API specification.
+       *  @param byte 書き込みの値
+       */
       writeByte: async (byte) => {
         try {
           await bus.sendByte(slaveAddress, byte);
@@ -113,7 +194,12 @@ export class I2CPort {
           throw new OperationError(error);
         }
       },
-      /** Different from Web I2C API specification. */
+      /**
+       * @function
+       * I2c bytes 書き込み処理
+       * Different from Web I2C API specification.
+       * @param bytes 書き込みの値の配列
+       */
       writeBytes: async (bytes) => {
         try {
           const { bytesWritten, buffer } = await bus.i2cWrite(
@@ -130,25 +216,77 @@ export class I2CPort {
   }
 }
 
+/**
+ * I2CSlaveDevice クラス
+ */
 export interface I2CSlaveDevice {
+  /** I2C Slave アドレス */
   readonly slaveAddress: I2CSlaveAddress;
 
+  /**
+   * @function
+   * I2C 読み取り処理
+   * @param registerNumber 読み取りアドレス
+   */
   read8(registerNumber: number): Promise<number>;
+  /**
+   * @function
+   * I2C 読み取り処理
+   * @param registerNumber 読み取りアドレス
+   */
   read16(registerNumber: number): Promise<number>;
+  /**
+   * @function
+   * I2c s/I2c/I2C 書き込み処理
+   * @param registerNumber 書き込みアドレス
+   * @param value 書き込みの値(バイト)
+   */
   write8(registerNumber: number, value: number): Promise<number>;
+  /**
+   * @function
+   * I2c bytes 書き込み処理
+   * @param registerNumber 書き込みアドレス
+   * @param value 書き込みの値(ワード)
+   */
   write16(registerNumber: number, value: number): Promise<number>;
 
-  /** Different from Web I2C API specification. */
+  /**
+   * @function
+   * I2c bytes 読み取りバイト処理
+   * Different from Web I2C API specification.
+   */
   readByte(): Promise<number>;
-  /** Different from Web I2C API specification. */
+  /**
+   * @function
+   * I2c bytes 読み取りバイト処理
+   * Different from Web I2C API specification.
+   * @param length 読み取る配列の長さ
+   */
   readBytes(length: number): Promise<Uint8Array>;
-  /** Different from Web I2C API specification. */
+  /**
+   * @function
+   * I2c bytes 書き込みバイト処理
+   * Different from Web I2C API specification.
+   *  @param byte 書き込みの値
+   */
   writeByte(byte: number): Promise<number>;
-  /** Different from Web I2C API specification. */
+  /**
+   * @function
+   * I2c bytes 書き込みバイト配列処理
+   * Different from Web I2C API specification.
+   * @param bytes 書き込みの値の配列
+   */
   writeBytes(bytes: Array<number>): Promise<Uint8Array>;
 }
 
+/**
+ * 操作エラー
+ */
 export class OperationError extends Error {
+  /**
+   * Creates an instance of OperationError.
+   * @param message エラーメッセージ
+   */
   constructor(message: string) {
     super(message);
     this.name = this.constructor.name;
diff --git a/package.json b/package.json
index 8c89e5a..a8d6b23 100644
--- a/package.json
+++ b/package.json
@@ -25,13 +25,17 @@
     "husky": "^7.0.4",
     "lint-staged": "^12.1.2",
     "prettier": "^2.5.1",
+    "typedoc": "^0.22.10",
     "typescript": "^4.2.4"
   },
   "scripts": {
     "build": "tsc",
     "lint": "eslint index.ts",
     "prepare": "husky install && rm -rf dist && npm run build",
-    "precommit": "lint-staged"
+    "precommit": "lint-staged",
+    "docs": "npm run remove:docs && npm run typedoc -- --options typedoc.json --exclude '**/*.spec.ts' ./ README.md",
+    "typedoc": "typedoc",
+    "remove:docs": "rm -rf docs"
   },
   "keywords": [
     "hardware",
diff --git a/typedoc.json b/typedoc.json
new file mode 100644
index 0000000..1c31092
--- /dev/null
+++ b/typedoc.json
@@ -0,0 +1,4 @@
+{
+  "entryPoints": ["index.ts"],
+  "out": "docs"
+}
diff --git a/yarn.lock b/yarn.lock
index 1bd3416..f030140 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4,7 +4,7 @@
 
 "@eslint/eslintrc@^1.0.5":
   version "1.0.5"
-  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318"
+  resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz"
   integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==
   dependencies:
     ajv "^6.12.4"
@@ -19,7 +19,7 @@
 
 "@humanwhocodes/config-array@^0.9.2":
   version "0.9.2"
-  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914"
+  resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz"
   integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==
   dependencies:
     "@humanwhocodes/object-schema" "^1.2.1"
@@ -28,12 +28,12 @@
 
 "@humanwhocodes/object-schema@^1.2.1":
   version "1.2.1"
-  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
+  resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
   integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
 
 "@nodelib/fs.scandir@2.1.4":
   version "2.1.4"
-  resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69"
+  resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz"
   integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==
   dependencies:
     "@nodelib/fs.stat" "2.0.4"
@@ -41,12 +41,12 @@
 
 "@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2":
   version "2.0.4"
-  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655"
+  resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz"
   integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==
 
 "@nodelib/fs.walk@^1.2.3":
   version "1.2.6"
-  resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063"
+  resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz"
   integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==
   dependencies:
     "@nodelib/fs.scandir" "2.1.4"
@@ -54,29 +54,24 @@
 
 "@types/i2c-bus@^5.1.0":
   version "5.1.0"
-  resolved "https://registry.yarnpkg.com/@types/i2c-bus/-/i2c-bus-5.1.0.tgz#241b91d40deb0b2d08ed60862efa655e53e96c30"
+  resolved "https://registry.npmjs.org/@types/i2c-bus/-/i2c-bus-5.1.0.tgz"
   integrity sha512-zBwBpfaFzKtYaS2j/sh+m/zKRcbXuG26/wWlJq3F9+oWXQ9DSxuJXOU+t1PMorj3DBZzpLO8LqbVTGRE1PUb3g==
   dependencies:
     "@types/node" "*"
 
 "@types/json-schema@^7.0.9":
   version "7.0.9"
-  resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
+  resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz"
   integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
 
-"@types/node@*":
-  version "14.14.25"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.25.tgz#15967a7b577ff81383f9b888aa6705d43fbbae93"
-  integrity sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==
-
-"@types/node@^16.11.12":
+"@types/node@*", "@types/node@^16.11.12":
   version "16.11.12"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.12.tgz#ac7fb693ac587ee182c3780c26eb65546a1a3c10"
+  resolved "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz"
   integrity sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==
 
 "@typescript-eslint/eslint-plugin@^5.6.0":
   version "5.6.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.6.0.tgz#efd8668b3d6627c46ce722c2afe813928fe120a0"
+  resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.6.0.tgz"
   integrity sha512-MIbeMy5qfLqtgs1hWd088k1hOuRsN9JrHUPwVVKCD99EOUqScd7SrwoZl4Gso05EAP9w1kvLWUVGJOVpRPkDPA==
   dependencies:
     "@typescript-eslint/experimental-utils" "5.6.0"
@@ -90,7 +85,7 @@
 
 "@typescript-eslint/experimental-utils@5.6.0":
   version "5.6.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.6.0.tgz#f3a5960f2004abdcac7bb81412bafc1560841c23"
+  resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.6.0.tgz"
   integrity sha512-VDoRf3Qj7+W3sS/ZBXZh3LBzp0snDLEgvp6qj0vOAIiAPM07bd5ojQ3CTzF/QFl5AKh7Bh1ycgj6lFBJHUt/DA==
   dependencies:
     "@types/json-schema" "^7.0.9"
@@ -102,7 +97,7 @@
 
 "@typescript-eslint/parser@^5.6.0":
   version "5.6.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.6.0.tgz#11677324659641400d653253c03dcfbed468d199"
+  resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.6.0.tgz"
   integrity sha512-YVK49NgdUPQ8SpCZaOpiq1kLkYRPMv9U5gcMrywzI8brtwZjr/tG3sZpuHyODt76W/A0SufNjYt9ZOgrC4tLIQ==
   dependencies:
     "@typescript-eslint/scope-manager" "5.6.0"
@@ -112,7 +107,7 @@
 
 "@typescript-eslint/scope-manager@5.6.0":
   version "5.6.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.6.0.tgz#9dd7f007dc8f3a34cdff6f79f5eaab27ae05157e"
+  resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.6.0.tgz"
   integrity sha512-1U1G77Hw2jsGWVsO2w6eVCbOg0HZ5WxL/cozVSTfqnL/eB9muhb8THsP0G3w+BB5xAHv9KptwdfYFAUfzcIh4A==
   dependencies:
     "@typescript-eslint/types" "5.6.0"
@@ -120,12 +115,12 @@
 
 "@typescript-eslint/types@5.6.0":
   version "5.6.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.6.0.tgz#745cb1b59daadcc1f32f7be95f0f68accf38afdd"
+  resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.6.0.tgz"
   integrity sha512-OIZffked7mXv4mXzWU5MgAEbCf9ecNJBKi+Si6/I9PpTaj+cf2x58h2oHW5/P/yTnPkKaayfjhLvx+crnl5ubA==
 
 "@typescript-eslint/typescript-estree@5.6.0":
   version "5.6.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.6.0.tgz#dfbb19c9307fdd81bd9c650c67e8397821d7faf0"
+  resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.6.0.tgz"
   integrity sha512-92vK5tQaE81rK7fOmuWMrSQtK1IMonESR+RJR2Tlc7w4o0MeEdjgidY/uO2Gobh7z4Q1hhS94Cr7r021fMVEeA==
   dependencies:
     "@typescript-eslint/types" "5.6.0"
@@ -138,7 +133,7 @@
 
 "@typescript-eslint/visitor-keys@5.6.0":
   version "5.6.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.6.0.tgz#3e36509e103fe9713d8f035ac977235fd63cb6e6"
+  resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.6.0.tgz"
   integrity sha512-1p7hDp5cpRFUyE3+lvA74egs+RWSgumrBpzBCDzfTFv0aQ7lIeay80yU0hIxgAhwQ6PcasW35kaOCyDOv6O/Ng==
   dependencies:
     "@typescript-eslint/types" "5.6.0"
@@ -146,17 +141,17 @@
 
 acorn-jsx@^5.3.1:
   version "5.3.1"
-  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
+  resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz"
   integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
 
 acorn@^8.6.0:
   version "8.6.0"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895"
+  resolved "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz"
   integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==
 
 aggregate-error@^3.0.0:
   version "3.1.0"
-  resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+  resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz"
   integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
   dependencies:
     clean-stack "^2.0.0"
@@ -164,7 +159,7 @@ aggregate-error@^3.0.0:
 
 ajv@^6.10.0, ajv@^6.12.4:
   version "6.12.6"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+  resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
   integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
   dependencies:
     fast-deep-equal "^3.1.1"
@@ -174,73 +169,68 @@ ajv@^6.10.0, ajv@^6.12.4:
 
 ansi-colors@^4.1.1:
   version "4.1.1"
-  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+  resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz"
   integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
 
 ansi-escapes@^4.3.0:
   version "4.3.2"
-  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
+  resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz"
   integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
   dependencies:
     type-fest "^0.21.3"
 
-ansi-regex@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
-  integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
-
 ansi-regex@^5.0.1:
   version "5.0.1"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+  resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
   integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
 
 ansi-regex@^6.0.1:
   version "6.0.1"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
+  resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz"
   integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
 
 ansi-styles@^4.0.0, ansi-styles@^4.1.0:
   version "4.3.0"
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
   integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
   dependencies:
     color-convert "^2.0.1"
 
 ansi-styles@^6.0.0:
   version "6.1.0"
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3"
+  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz"
   integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==
 
 argparse@^2.0.1:
   version "2.0.1"
-  resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+  resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
   integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
 
 array-union@^2.1.0:
   version "2.1.0"
-  resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+  resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
   integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
 
 astral-regex@^2.0.0:
   version "2.0.0"
-  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+  resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz"
   integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
 
 balanced-match@^1.0.0:
   version "1.0.0"
-  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+  resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
   integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
 
 bindings@^1.5.0:
   version "1.5.0"
-  resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
+  resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"
   integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
   dependencies:
     file-uri-to-path "1.0.0"
 
 brace-expansion@^1.1.7:
   version "1.1.11"
-  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+  resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
   integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
   dependencies:
     balanced-match "^1.0.0"
@@ -248,19 +238,19 @@ brace-expansion@^1.1.7:
 
 braces@^3.0.1:
   version "3.0.2"
-  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+  resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
   integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
   dependencies:
     fill-range "^7.0.1"
 
 callsites@^3.0.0:
   version "3.1.0"
-  resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+  resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
   integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
 
 chalk@^4.0.0:
   version "4.1.0"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
+  resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz"
   integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
   dependencies:
     ansi-styles "^4.1.0"
@@ -268,19 +258,19 @@ chalk@^4.0.0:
 
 clean-stack@^2.0.0:
   version "2.2.0"
-  resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+  resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz"
   integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
 
 cli-cursor@^3.1.0:
   version "3.1.0"
-  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
+  resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz"
   integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
   dependencies:
     restore-cursor "^3.1.0"
 
 cli-truncate@^2.1.0:
   version "2.1.0"
-  resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
+  resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz"
   integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
   dependencies:
     slice-ansi "^3.0.0"
@@ -288,7 +278,7 @@ cli-truncate@^2.1.0:
 
 cli-truncate@^3.1.0:
   version "3.1.0"
-  resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389"
+  resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz"
   integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==
   dependencies:
     slice-ansi "^5.0.0"
@@ -296,103 +286,96 @@ cli-truncate@^3.1.0:
 
 clone@^2.1.2:
   version "2.1.2"
-  resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
+  resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz"
   integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
 
 color-convert@^2.0.1:
   version "2.0.1"
-  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+  resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
   integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
   dependencies:
     color-name "~1.1.4"
 
 color-name@~1.1.4:
   version "1.1.4"
-  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+  resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
   integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
 
 colorette@^2.0.16:
   version "2.0.16"
-  resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
+  resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz"
   integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
 
 commander@^8.3.0:
   version "8.3.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
+  resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz"
   integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
 
 concat-map@0.0.1:
   version "0.0.1"
-  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+  resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
   integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
 
 cross-spawn@^7.0.2, cross-spawn@^7.0.3:
   version "7.0.3"
-  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+  resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
   integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
   dependencies:
     path-key "^3.1.0"
     shebang-command "^2.0.0"
     which "^2.0.1"
 
-debug@^4.1.1:
-  version "4.3.1"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
-  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
-  dependencies:
-    ms "2.1.2"
-
-debug@^4.3.2:
+debug@^4.1.1, debug@^4.3.2:
   version "4.3.2"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
+  resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz"
   integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
   dependencies:
     ms "2.1.2"
 
 deep-is@^0.1.3:
   version "0.1.3"
-  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+  resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"
   integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
 
 dir-glob@^3.0.1:
   version "3.0.1"
-  resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+  resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"
   integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
   dependencies:
     path-type "^4.0.0"
 
 doctrine@^3.0.0:
   version "3.0.0"
-  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+  resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
   integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
   dependencies:
     esutils "^2.0.2"
 
 emoji-regex@^8.0.0:
   version "8.0.0"
-  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+  resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
   integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
 
 emoji-regex@^9.2.2:
   version "9.2.2"
-  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
+  resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz"
   integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
 
 enquirer@^2.3.5, enquirer@^2.3.6:
   version "2.3.6"
-  resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
+  resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz"
   integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
   dependencies:
     ansi-colors "^4.1.1"
 
 escape-string-regexp@^4.0.0:
   version "4.0.0"
-  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+  resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
   integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
 
 eslint-scope@^5.1.1:
   version "5.1.1"
-  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+  resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz"
   integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
   dependencies:
     esrecurse "^4.3.0"
@@ -400,7 +383,7 @@ eslint-scope@^5.1.1:
 
 eslint-scope@^7.1.0:
   version "7.1.0"
-  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153"
+  resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz"
   integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==
   dependencies:
     esrecurse "^4.3.0"
@@ -408,29 +391,24 @@ eslint-scope@^7.1.0:
 
 eslint-utils@^3.0.0:
   version "3.0.0"
-  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
+  resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz"
   integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
   dependencies:
     eslint-visitor-keys "^2.0.0"
 
 eslint-visitor-keys@^2.0.0:
   version "2.0.0"
-  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
+  resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz"
   integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
 
-eslint-visitor-keys@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz#e32e99c6cdc2eb063f204eda5db67bfe58bb4186"
-  integrity sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==
-
-eslint-visitor-keys@^3.1.0:
+eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0:
   version "3.1.0"
-  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2"
+  resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz"
   integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==
 
 eslint@^8.4.1:
   version "8.4.1"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.4.1.tgz#d6531bbf3e598dffd7c0c7d35ec52a0b30fdfa2d"
+  resolved "https://registry.npmjs.org/eslint/-/eslint-8.4.1.tgz"
   integrity sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==
   dependencies:
     "@eslint/eslintrc" "^1.0.5"
@@ -474,7 +452,7 @@ eslint@^8.4.1:
 
 espree@^9.2.0:
   version "9.2.0"
-  resolved "https://registry.yarnpkg.com/espree/-/espree-9.2.0.tgz#c50814e01611c2d0f8bd4daa83c369eabba80dbc"
+  resolved "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz"
   integrity sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==
   dependencies:
     acorn "^8.6.0"
@@ -483,36 +461,36 @@ espree@^9.2.0:
 
 esquery@^1.4.0:
   version "1.4.0"
-  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+  resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz"
   integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
   dependencies:
     estraverse "^5.1.0"
 
 esrecurse@^4.3.0:
   version "4.3.0"
-  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+  resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
   integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
   dependencies:
     estraverse "^5.2.0"
 
 estraverse@^4.1.1:
   version "4.3.0"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+  resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"
   integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
 
 estraverse@^5.1.0, estraverse@^5.2.0:
   version "5.2.0"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
+  resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz"
   integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
 
 esutils@^2.0.2:
   version "2.0.3"
-  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+  resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
   integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
 
 execa@^5.1.1:
   version "5.1.1"
-  resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+  resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz"
   integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
   dependencies:
     cross-spawn "^7.0.3"
@@ -527,12 +505,12 @@ execa@^5.1.1:
 
 fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
   version "3.1.3"
-  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+  resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
   integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
 
 fast-glob@^3.1.1:
   version "3.2.5"
-  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661"
+  resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz"
   integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==
   dependencies:
     "@nodelib/fs.stat" "^2.0.2"
@@ -544,43 +522,43 @@ fast-glob@^3.1.1:
 
 fast-json-stable-stringify@^2.0.0:
   version "2.1.0"
-  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+  resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
   integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
 
 fast-levenshtein@^2.0.6:
   version "2.0.6"
-  resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+  resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
   integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
 
 fastq@^1.6.0:
   version "1.10.1"
-  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.1.tgz#8b8f2ac8bf3632d67afcd65dac248d5fdc45385e"
+  resolved "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz"
   integrity sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA==
   dependencies:
     reusify "^1.0.4"
 
 file-entry-cache@^6.0.1:
   version "6.0.1"
-  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+  resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
   integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
   dependencies:
     flat-cache "^3.0.4"
 
 file-uri-to-path@1.0.0:
   version "1.0.0"
-  resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+  resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"
   integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
 
 fill-range@^7.0.1:
   version "7.0.1"
-  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+  resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
   integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
   dependencies:
     to-regex-range "^5.0.1"
 
 flat-cache@^3.0.4:
   version "3.0.4"
-  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
+  resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
   integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
   dependencies:
     flatted "^3.1.0"
@@ -588,42 +566,42 @@ flat-cache@^3.0.4:
 
 flatted@^3.1.0:
   version "3.1.1"
-  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
+  resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz"
   integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
 
 fs.realpath@^1.0.0:
   version "1.0.0"
-  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+  resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
   integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
 
 functional-red-black-tree@^1.0.1:
   version "1.0.1"
-  resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+  resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"
   integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
 
 get-stream@^6.0.0:
   version "6.0.1"
-  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+  resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
   integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
 
 glob-parent@^5.1.0:
   version "5.1.2"
-  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+  resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
   integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
   dependencies:
     is-glob "^4.0.1"
 
 glob-parent@^6.0.1:
   version "6.0.2"
-  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+  resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
   integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
   dependencies:
     is-glob "^4.0.3"
 
-glob@^7.1.3:
-  version "7.1.6"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
-  integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+glob@^7.1.3, glob@^7.2.0:
+  version "7.2.0"
+  resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz"
+  integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
   dependencies:
     fs.realpath "^1.0.0"
     inflight "^1.0.4"
@@ -634,14 +612,14 @@ glob@^7.1.3:
 
 globals@^13.6.0, globals@^13.9.0:
   version "13.11.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7"
+  resolved "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz"
   integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==
   dependencies:
     type-fest "^0.20.2"
 
 globby@^11.0.4:
   version "11.0.4"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5"
+  resolved "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz"
   integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==
   dependencies:
     array-union "^2.1.0"
@@ -653,22 +631,22 @@ globby@^11.0.4:
 
 has-flag@^4.0.0:
   version "4.0.0"
-  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+  resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
   integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
 
 human-signals@^2.1.0:
   version "2.1.0"
-  resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+  resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
   integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
 
 husky@^7.0.4:
   version "7.0.4"
-  resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535"
+  resolved "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz"
   integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==
 
 i2c-bus@^5.2.2:
   version "5.2.2"
-  resolved "https://registry.yarnpkg.com/i2c-bus/-/i2c-bus-5.2.2.tgz#0c727f5e99443c5734b4f0e05b45748ba85008fa"
+  resolved "https://registry.npmjs.org/i2c-bus/-/i2c-bus-5.2.2.tgz"
   integrity sha512-b2y/et08rqggEjqod6QxV0Ng+RlSkZXsdE+E1aZEQBahepZ9uFD9XfA77Y8O9SgyhwfGEn+CNxsw0gvXW1/m4g==
   dependencies:
     bindings "^1.5.0"
@@ -676,22 +654,17 @@ i2c-bus@^5.2.2:
 
 ignore@^4.0.6:
   version "4.0.6"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+  resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz"
   integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
 
-ignore@^5.1.4:
-  version "5.1.8"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
-  integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
-
-ignore@^5.1.8:
+ignore@^5.1.4, ignore@^5.1.8:
   version "5.1.9"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb"
+  resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz"
   integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==
 
 import-fresh@^3.0.0, import-fresh@^3.2.1:
   version "3.3.0"
-  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+  resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
   integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
   dependencies:
     parent-module "^1.0.0"
@@ -699,17 +672,17 @@ import-fresh@^3.0.0, import-fresh@^3.2.1:
 
 imurmurhash@^0.1.4:
   version "0.1.4"
-  resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+  resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
   integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
 
 indent-string@^4.0.0:
   version "4.0.0"
-  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+  resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz"
   integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
 
 inflight@^1.0.4:
   version "1.0.6"
-  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+  resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
   integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
   dependencies:
     once "^1.3.0"
@@ -717,73 +690,71 @@ inflight@^1.0.4:
 
 inherits@2:
   version "2.0.4"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+  resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
 
 is-extglob@^2.1.1:
   version "2.1.1"
-  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+  resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
   integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
 
 is-fullwidth-code-point@^3.0.0:
   version "3.0.0"
-  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+  resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
   integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
 
 is-fullwidth-code-point@^4.0.0:
   version "4.0.0"
-  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88"
+  resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz"
   integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
 
-is-glob@^4.0.0, is-glob@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
-  integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
-  dependencies:
-    is-extglob "^2.1.1"
-
-is-glob@^4.0.3:
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
   version "4.0.3"
-  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+  resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
   integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
   dependencies:
     is-extglob "^2.1.1"
 
 is-number@^7.0.0:
   version "7.0.0"
-  resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+  resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
   integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
 
 is-stream@^2.0.0:
   version "2.0.1"
-  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
+  resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
   integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
 
 isexe@^2.0.0:
   version "2.0.0"
-  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+  resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
   integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
 
 js-yaml@^4.1.0:
   version "4.1.0"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+  resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
   integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
   dependencies:
     argparse "^2.0.1"
 
 json-schema-traverse@^0.4.1:
   version "0.4.1"
-  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+  resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
   integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 
 json-stable-stringify-without-jsonify@^1.0.1:
   version "1.0.1"
-  resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+  resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
   integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
 
+jsonc-parser@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz"
+  integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==
+
 levn@^0.4.1:
   version "0.4.1"
-  resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+  resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
   integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
   dependencies:
     prelude-ls "^1.2.1"
@@ -791,12 +762,12 @@ levn@^0.4.1:
 
 lilconfig@2.0.4:
   version "2.0.4"
-  resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082"
+  resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz"
   integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==
 
 lint-staged@^12.1.2:
   version "12.1.2"
-  resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.1.2.tgz#90c571927e1371fc133e720671dd7989eab53f74"
+  resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.2.tgz"
   integrity sha512-bSMcQVqMW98HLLLR2c2tZ+vnDCnx4fd+0QJBQgN/4XkdspGRPc8DGp7UuOEBe1ApCfJ+wXXumYnJmU+wDo7j9A==
   dependencies:
     cli-truncate "^3.1.0"
@@ -816,7 +787,7 @@ lint-staged@^12.1.2:
 
 listr2@^3.13.3:
   version "3.13.4"
-  resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.4.tgz#34101fc0184545597e00d1e7915ccfbfb17332e6"
+  resolved "https://registry.npmjs.org/listr2/-/listr2-3.13.4.tgz"
   integrity sha512-lZ1Rut1DSIRwbxQbI8qaUBfOWJ1jEYRgltIM97j6kKOCI2pHVWMyxZvkU/JKmRBWcIYgDS2PK+yDgVqm7u3crw==
   dependencies:
     cli-truncate "^2.1.0"
@@ -830,12 +801,12 @@ listr2@^3.13.3:
 
 lodash.merge@^4.6.2:
   version "4.6.2"
-  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+  resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
   integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
 
 log-update@^4.0.0:
   version "4.0.0"
-  resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
+  resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz"
   integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
   dependencies:
     ansi-escapes "^4.3.0"
@@ -845,32 +816,34 @@ log-update@^4.0.0:
 
 lru-cache@^6.0.0:
   version "6.0.0"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+  resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
   integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
   dependencies:
     yallist "^4.0.0"
 
+lunr@^2.3.9:
+  version "2.3.9"
+  resolved "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz"
+  integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==
+
+marked@^3.0.8:
+  version "3.0.8"
+  resolved "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz"
+  integrity sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==
+
 merge-stream@^2.0.0:
   version "2.0.0"
-  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+  resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
   integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
 
 merge2@^1.3.0:
   version "1.4.1"
-  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+  resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
   integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
 
-micromatch@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
-  integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
-  dependencies:
-    braces "^3.0.1"
-    picomatch "^2.0.5"
-
-micromatch@^4.0.4:
+micromatch@^4.0.2, micromatch@^4.0.4:
   version "4.0.4"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
+  resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz"
   integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
   dependencies:
     braces "^3.0.1"
@@ -878,65 +851,65 @@ micromatch@^4.0.4:
 
 mimic-fn@^2.1.0:
   version "2.1.0"
-  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+  resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
   integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
 
 minimatch@^3.0.4:
   version "3.0.4"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+  resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
   integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
   dependencies:
     brace-expansion "^1.1.7"
 
 ms@2.1.2:
   version "2.1.2"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+  resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
   integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
 
 nan@^2.14.2:
   version "2.15.0"
-  resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
+  resolved "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz"
   integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
 
 natural-compare@^1.4.0:
   version "1.4.0"
-  resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+  resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
   integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
 
 normalize-path@^3.0.0:
   version "3.0.0"
-  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+  resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
   integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
 
 npm-run-path@^4.0.1:
   version "4.0.1"
-  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+  resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"
   integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
   dependencies:
     path-key "^3.0.0"
 
 object-inspect@^1.11.0:
   version "1.11.0"
-  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"
+  resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz"
   integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==
 
 once@^1.3.0:
   version "1.4.0"
-  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+  resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
   integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
   dependencies:
     wrappy "1"
 
 onetime@^5.1.0, onetime@^5.1.2:
   version "5.1.2"
-  resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+  resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"
   integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
   dependencies:
     mimic-fn "^2.1.0"
 
 optionator@^0.9.1:
   version "0.9.1"
-  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
+  resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz"
   integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
   dependencies:
     deep-is "^0.1.3"
@@ -948,81 +921,76 @@ optionator@^0.9.1:
 
 p-map@^4.0.0:
   version "4.0.0"
-  resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+  resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz"
   integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
   dependencies:
     aggregate-error "^3.0.0"
 
 parent-module@^1.0.0:
   version "1.0.1"
-  resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+  resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
   integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
   dependencies:
     callsites "^3.0.0"
 
 path-is-absolute@^1.0.0:
   version "1.0.1"
-  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+  resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
   integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
 
 path-key@^3.0.0, path-key@^3.1.0:
   version "3.1.1"
-  resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+  resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
   integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
 
 path-type@^4.0.0:
   version "4.0.0"
-  resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+  resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
   integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
 
-picomatch@^2.0.5, picomatch@^2.2.1:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
-  integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
-
-picomatch@^2.2.3:
+picomatch@^2.2.1, picomatch@^2.2.3:
   version "2.3.0"
-  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
+  resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz"
   integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
 
 prelude-ls@^1.2.1:
   version "1.2.1"
-  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+  resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
   integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
 
 prettier@^2.5.1:
   version "2.5.1"
-  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a"
+  resolved "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz"
   integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
 
 progress@^2.0.0:
   version "2.0.3"
-  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+  resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz"
   integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
 
 punycode@^2.1.0:
   version "2.1.1"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+  resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
   integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
 
 queue-microtask@^1.2.2:
   version "1.2.2"
-  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.2.tgz#abf64491e6ecf0f38a6502403d4cda04f372dfd3"
+  resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz"
   integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==
 
 regexpp@^3.2.0:
   version "3.2.0"
-  resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
+  resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz"
   integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
 
 resolve-from@^4.0.0:
   version "4.0.0"
-  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+  resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
   integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
 
 restore-cursor@^3.1.0:
   version "3.1.0"
-  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
+  resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz"
   integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
   dependencies:
     onetime "^5.1.0"
@@ -1030,69 +998,71 @@ restore-cursor@^3.1.0:
 
 reusify@^1.0.4:
   version "1.0.4"
-  resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+  resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
   integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
 
 rimraf@^3.0.2:
   version "3.0.2"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+  resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
   integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
   dependencies:
     glob "^7.1.3"
 
 run-parallel@^1.1.9:
   version "1.2.0"
-  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+  resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
   integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
   dependencies:
     queue-microtask "^1.2.2"
 
 rxjs@^7.4.0:
   version "7.4.0"
-  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68"
+  resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz"
   integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==
   dependencies:
     tslib "~2.1.0"
 
-semver@^7.2.1:
-  version "7.3.4"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
-  integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
-  dependencies:
-    lru-cache "^6.0.0"
-
-semver@^7.3.5:
+semver@^7.2.1, semver@^7.3.5:
   version "7.3.5"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+  resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz"
   integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
   dependencies:
     lru-cache "^6.0.0"
 
 shebang-command@^2.0.0:
   version "2.0.0"
-  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+  resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
   integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
   dependencies:
     shebang-regex "^3.0.0"
 
 shebang-regex@^3.0.0:
   version "3.0.0"
-  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+  resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
   integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
 
+shiki@^0.9.12:
+  version "0.9.15"
+  resolved "https://registry.npmjs.org/shiki/-/shiki-0.9.15.tgz"
+  integrity sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==
+  dependencies:
+    jsonc-parser "^3.0.0"
+    vscode-oniguruma "^1.6.1"
+    vscode-textmate "5.2.0"
+
 signal-exit@^3.0.2, signal-exit@^3.0.3:
   version "3.0.6"
-  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af"
+  resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz"
   integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
 
 slash@^3.0.0:
   version "3.0.0"
-  resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+  resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
   integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
 
 slice-ansi@^3.0.0:
   version "3.0.0"
-  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
+  resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz"
   integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
   dependencies:
     ansi-styles "^4.0.0"
@@ -1101,7 +1071,7 @@ slice-ansi@^3.0.0:
 
 slice-ansi@^4.0.0:
   version "4.0.0"
-  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+  resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz"
   integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
   dependencies:
     ansi-styles "^4.0.0"
@@ -1110,7 +1080,7 @@ slice-ansi@^4.0.0:
 
 slice-ansi@^5.0.0:
   version "5.0.0"
-  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a"
+  resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz"
   integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==
   dependencies:
     ansi-styles "^6.0.0"
@@ -1118,12 +1088,12 @@ slice-ansi@^5.0.0:
 
 string-argv@^0.3.1:
   version "0.3.1"
-  resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
+  resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz"
   integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
 
 string-width@^4.1.0, string-width@^4.2.0:
   version "4.2.3"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+  resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
   integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
   dependencies:
     emoji-regex "^8.0.0"
@@ -1132,139 +1102,153 @@ string-width@^4.1.0, string-width@^4.2.0:
 
 string-width@^5.0.0:
   version "5.0.1"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.0.1.tgz#0d8158335a6cfd8eb95da9b6b262ce314a036ffd"
+  resolved "https://registry.npmjs.org/string-width/-/string-width-5.0.1.tgz"
   integrity sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==
   dependencies:
     emoji-regex "^9.2.2"
     is-fullwidth-code-point "^4.0.0"
     strip-ansi "^7.0.1"
 
-strip-ansi@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
-  integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
-  dependencies:
-    ansi-regex "^5.0.0"
-
-strip-ansi@^6.0.1:
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
   version "6.0.1"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+  resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
   integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
   dependencies:
     ansi-regex "^5.0.1"
 
 strip-ansi@^7.0.1:
   version "7.0.1"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2"
+  resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz"
   integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==
   dependencies:
     ansi-regex "^6.0.1"
 
 strip-final-newline@^2.0.0:
   version "2.0.0"
-  resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+  resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"
   integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
 
 strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
   version "3.1.1"
-  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+  resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
   integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
 
 supports-color@^7.1.0:
   version "7.2.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+  resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
   integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
   dependencies:
     has-flag "^4.0.0"
 
 supports-color@^9.0.2:
   version "9.1.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.1.0.tgz#558963681dafeff41ed68220488cbf438d29f351"
+  resolved "https://registry.npmjs.org/supports-color/-/supports-color-9.1.0.tgz"
   integrity sha512-lOCGOTmBSN54zKAoPWhHkjoqVQ0MqgzPE5iirtoSixhr0ZieR/6l7WZ32V53cvy9+1qghFnIk7k52p991lKd6g==
 
 text-table@^0.2.0:
   version "0.2.0"
-  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+  resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
   integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
 
 through@^2.3.8:
   version "2.3.8"
-  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+  resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
   integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
 
 to-regex-range@^5.0.1:
   version "5.0.1"
-  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+  resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
   integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
   dependencies:
     is-number "^7.0.0"
 
 tslib@^1.8.1:
   version "1.14.1"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+  resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
   integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
 
 tslib@~2.1.0:
   version "2.1.0"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
+  resolved "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz"
   integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
 
 tsutils@^3.21.0:
   version "3.21.0"
-  resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
+  resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz"
   integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
   dependencies:
     tslib "^1.8.1"
 
 type-check@^0.4.0, type-check@~0.4.0:
   version "0.4.0"
-  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+  resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
   integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
   dependencies:
     prelude-ls "^1.2.1"
 
 type-fest@^0.20.2:
   version "0.20.2"
-  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+  resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
   integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
 
 type-fest@^0.21.3:
   version "0.21.3"
-  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
+  resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz"
   integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
 
+typedoc@^0.22.10:
+  version "0.22.10"
+  resolved "https://registry.npmjs.org/typedoc/-/typedoc-0.22.10.tgz"
+  integrity sha512-hQYZ4WtoMZ61wDC6w10kxA42+jclWngdmztNZsDvIz7BMJg7F2xnT+uYsUa7OluyKossdFj9E9Ye4QOZKTy8SA==
+  dependencies:
+    glob "^7.2.0"
+    lunr "^2.3.9"
+    marked "^3.0.8"
+    minimatch "^3.0.4"
+    shiki "^0.9.12"
+
 typescript@^4.2.4:
   version "4.5.2"
-  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.2.tgz#8ac1fba9f52256fdb06fb89e4122fa6a346c2998"
+  resolved "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz"
   integrity sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==
 
 uri-js@^4.2.2:
   version "4.4.1"
-  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+  resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
   integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
   dependencies:
     punycode "^2.1.0"
 
 v8-compile-cache@^2.0.3:
   version "2.2.0"
-  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
+  resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz"
   integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==
 
+vscode-oniguruma@^1.6.1:
+  version "1.6.1"
+  resolved "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz"
+  integrity sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==
+
+vscode-textmate@5.2.0:
+  version "5.2.0"
+  resolved "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz"
+  integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==
+
 which@^2.0.1:
   version "2.0.2"
-  resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+  resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
   integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
   dependencies:
     isexe "^2.0.0"
 
 word-wrap@^1.2.3:
   version "1.2.3"
-  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+  resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
 
 wrap-ansi@^6.2.0:
   version "6.2.0"
-  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+  resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz"
   integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
   dependencies:
     ansi-styles "^4.0.0"
@@ -1273,7 +1257,7 @@ wrap-ansi@^6.2.0:
 
 wrap-ansi@^7.0.0:
   version "7.0.0"
-  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+  resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
   integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
   dependencies:
     ansi-styles "^4.0.0"
@@ -1282,15 +1266,15 @@ wrap-ansi@^7.0.0:
 
 wrappy@1:
   version "1.0.2"
-  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+  resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
   integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
 
 yallist@^4.0.0:
   version "4.0.0"
-  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+  resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
   integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
 
 yaml@^1.10.2:
   version "1.10.2"
-  resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+  resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
   integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==