diff --git a/docs/api/.nojekyll b/docs/api/.nojekyll new file mode 100644 index 0000000..e2ac661 --- /dev/null +++ b/docs/api/.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/api/assets/highlight.css b/docs/api/assets/highlight.css new file mode 100644 index 0000000..879b95c --- /dev/null +++ b/docs/api/assets/highlight.css @@ -0,0 +1,78 @@ +:root { + --light-hl-0: #000000; + --dark-hl-0: #D4D4D4; + --light-hl-1: #AF00DB; + --dark-hl-1: #C586C0; + --light-hl-2: #001080; + --dark-hl-2: #9CDCFE; + --light-hl-3: #A31515; + --dark-hl-3: #CE9178; + --light-hl-4: #0000FF; + --dark-hl-4: #569CD6; + --light-hl-5: #795E26; + --dark-hl-5: #DCDCAA; + --light-hl-6: #008000; + --dark-hl-6: #6A9955; + --light-hl-7: #0070C1; + --dark-hl-7: #4FC1FF; + --light-code-background: #F5F5F5; + --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/api/assets/icons.css b/docs/api/assets/icons.css new file mode 100644 index 0000000..776a356 --- /dev/null +++ b/docs/api/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/api/assets/icons.png b/docs/api/assets/icons.png new file mode 100644 index 0000000..3836d5f Binary files /dev/null and b/docs/api/assets/icons.png differ diff --git a/docs/api/assets/icons@2x.png b/docs/api/assets/icons@2x.png new file mode 100644 index 0000000..5a209e2 Binary files /dev/null and b/docs/api/assets/icons@2x.png differ diff --git a/docs/api/assets/main.js b/docs/api/assets/main.js new file mode 100644 index 0000000..bd45452 --- /dev/null +++ b/docs/api/assets/main.js @@ -0,0 +1,52 @@ +(()=>{var Ce=Object.create;var ue=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,_e=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!_e.call(t,i)&&i!==r&&ue(t,i,{get:()=>e[i],enumerable:!(n=Pe(e,i))||n.enumerable});return t};var Fe=(t,e,r)=>(r=t!=null?Ce(Re(t)):{},De(e||!t||!t.__esModule?ue(r,"default",{value:t,enumerable:!0}):r,t));var pe=Me((de,fe)=>{(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;i0){var h=t.utils.clone(r)||{};h.position=[a,u],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;n1&&(oe&&(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(ol?h+=2:a==l&&(r+=n[u+1]*i[h+1],u+=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;r0){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 l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,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 u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,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),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,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=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),l=0;l1?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=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.pos1&&(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 de=="object"?fe.exports=r():e.lunr=r()}(this,function(){return t})})()});var ce=[];function N(t,e){ce.push({selector:e,constructor:t})}var Y=class{constructor(){this.createComponents(document.body)}createComponents(e){ce.forEach(r=>{e.querySelectorAll(r.selector).forEach(n=>{n.dataset.hasInstance||(new r.constructor({el:n}),n.dataset.hasInstance=String(!0))})})}};var k=class{constructor(e){this.el=e.el}};var J=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{let r=Date.now();return(...n)=>{r+e-Date.now()<0&&(t(...n),r=Date.now())}};var ie=class extends J{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",ne(()=>this.onScroll(),10)),window.addEventListener("resize",ne(()=>this.onResize(),10)),this.onResize(),this.onScroll()}triggerResize(){let r=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(r)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let r=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(r)}onScroll(){this.scrollTop=window.scrollY||0;let r=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(r),this.hideShowToolbar()}hideShowToolbar(){var n;let r=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0,r!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),(n=this.secondaryNav)==null||n.classList.toggle("tsd-navigation--toolbar-hide")),this.lastY=this.scrollTop}},Q=ie;Q.instance=new ie;var X=class extends k{constructor(r){super(r);this.anchors=[];this.index=-1;Q.instance.addEventListener("resize",()=>this.onResize()),Q.instance.addEventListener("scroll",n=>this.onScroll(n)),this.createAnchors()}createAnchors(){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substr(0,r.indexOf("#"))),this.el.querySelectorAll("a").forEach(n=>{let i=n.href;if(i.indexOf("#")==-1||i.substr(0,r.length)!=r)return;let s=i.substr(i.indexOf("#")+1),o=document.querySelector("a.tsd-anchor[name="+s+"]"),a=n.parentNode;!o||!a||this.anchors.push({link:a,anchor:o,position:0})}),this.onResize()}onResize(){let r;for(let i=0,s=this.anchors.length;ii.position-s.position);let n=new CustomEvent("scroll",{detail:{scrollTop:Q.instance.scrollTop}});this.onScroll(n)}onScroll(r){let n=r.detail.scrollTop+5,i=this.anchors,s=i.length-1,o=this.index;for(;o>-1&&i[o].position>n;)o-=1;for(;o-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=o,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var he=(t,e=100)=>{let r;return(...n)=>{clearTimeout(r),r=setTimeout(()=>t(n),e)}};var ge=Fe(pe());function ye(){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+"/"};Ae(t,n,r,s)}function Ae(t,e,r,n){r.addEventListener("input",he(()=>{He(t,e,r,n)},200));let i=!1;r.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?ze(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 Ve(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=ge.Index.load(window.searchData.index))}function He(t,e,r,n){var o,a;if(Ve(n,t),!n.index||!n.data)return;e.textContent="";let i=r.value.trim(),s=i?n.index.search(`*${i}*`):[];for(let l=0;lu.score-l.score);for(let l=0,u=Math.min(10,s.length);l${ve(h.parent,i)}.${f}`);let p=document.createElement("li");p.classList.value=(a=h.classes)!=null?a:"";let E=document.createElement("a");E.href=n.base+h.url,E.classList.add("tsd-kind-icon"),E.innerHTML=f,p.append(E),e.appendChild(p)}}function me(t,e){var n,i;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 s=r;if(e===1)do s=(n=s.nextElementSibling)!=null?n:void 0;while(s instanceof HTMLElement&&s.offsetParent==null);else do s=(i=s.previousElementSibling)!=null?i:void 0;while(s instanceof HTMLElement&&s.offsetParent==null);s&&(r.classList.remove("current"),s.classList.add("current"))}}function ze(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(se(t.substring(s,o)),`${se(t.substring(o,o+n.length))}`),s=o+n.length,o=r.indexOf(n,s);return i.push(se(t.substring(s))),i.join("")}var Ne={"&":"&","<":"<",">":">","'":"'",'"':"""};function se(t){return t.replace(/[&<>"'"]/g,e=>Ne[e])}var oe=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}},Z=class extends k{constructor(r){super(r);this.groups=[];this.index=-1;this.createGroups(),this.container&&(this.el.classList.add("active"),Array.from(this.el.children).forEach(n=>{n.addEventListener("touchstart",i=>this.onClick(i)),n.addEventListener("click",i=>this.onClick(i))}),this.container.classList.add("active"),this.setIndex(0))}setIndex(r){if(r<0&&(r=0),r>this.groups.length-1&&(r=this.groups.length-1),this.index==r)return;let n=this.groups[r];if(this.index>-1){let i=this.groups[this.index];i.removeClass("current").addClass("fade-out"),n.addClass("current"),n.addClass("fade-in"),Q.instance.triggerResize(),setTimeout(()=>{i.removeClass("fade-out"),n.removeClass("fade-in")},300)}else n.addClass("current"),Q.instance.triggerResize();this.index=r}createGroups(){let r=this.el.children;if(r.length<2)return;this.container=this.el.nextElementSibling;let n=this.container.children;this.groups=[];for(let i=0;i{n.signature===r.currentTarget&&this.setIndex(i)})}};var C="mousedown",Le="mousemove",_="mouseup",K={x:0,y:0},xe=!1,ae=!1,je=!1,A=!1,Ee=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Ee?"is-mobile":"not-mobile");Ee&&"ontouchstart"in document.documentElement&&(je=!0,C="touchstart",Le="touchmove",_="touchend");document.addEventListener(C,t=>{ae=!0,A=!1;let e=C=="touchstart"?t.targetTouches[0]:t;K.y=e.pageY||0,K.x=e.pageX||0});document.addEventListener(Le,t=>{if(!!ae&&!A){let e=C=="touchstart"?t.targetTouches[0]:t,r=K.x-(e.pageX||0),n=K.y-(e.pageY||0);A=Math.sqrt(r*r+n*n)>10}});document.addEventListener(_,()=>{ae=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var ee=class extends k{constructor(r){super(r);this.className=this.el.dataset.toggle||"",this.el.addEventListener(_,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(C,n=>this.onDocumentPointerDown(n)),document.addEventListener(_,n=>this.onDocumentPointerUp(n))}setActive(r){if(this.active==r)return;this.active=r,document.documentElement.classList.toggle("has-"+this.className,r),this.el.classList.toggle("active",r);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(r){A||(this.setActive(!0),r.preventDefault())}onDocumentPointerDown(r){if(this.active){if(r.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(r){if(!A&&this.active&&r.target.closest(".col-menu")){let n=r.target.closest("a");if(n){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substr(0,i.indexOf("#"))),n.href.substr(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var te=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)}},re=class extends te{initialize(){let r=document.querySelector("#tsd-filter-"+this.key);!r||(this.checkbox=r,this.checkbox.addEventListener("change",()=>{this.setValue(this.checkbox.checked)}))}handleValueChange(r,n){!this.checkbox||(this.checkbox.checked=this.value,document.documentElement.classList.toggle("toggle-"+this.key,this.value!=this.defaultValue))}fromLocalStorage(r){return r=="true"}toLocalStorage(r){return r?"true":"false"}},le=class extends te{initialize(){document.documentElement.classList.add("toggle-"+this.key+this.value);let r=document.querySelector("#tsd-filter-"+this.key);if(!r)return;this.select=r;let n=()=>{this.select.classList.add("active")},i=()=>{this.select.classList.remove("active")};this.select.addEventListener(C,n),this.select.addEventListener("mouseover",n),this.select.addEventListener("mouseleave",i),this.select.querySelectorAll("li").forEach(s=>{s.addEventListener(_,o=>{r.classList.remove("active"),this.setValue(o.target.dataset.value||"")})}),document.addEventListener(C,s=>{this.select.contains(s.target)||this.select.classList.remove("active")})}handleValueChange(r,n){this.select.querySelectorAll("li.selected").forEach(o=>{o.classList.remove("selected")});let i=this.select.querySelector('li[data-value="'+n+'"]'),s=this.select.querySelector(".tsd-select-label");i&&s&&(i.classList.add("selected"),s.textContent=i.textContent),document.documentElement.classList.remove("toggle-"+r),document.documentElement.classList.add("toggle-"+n)}fromLocalStorage(r){return r}toLocalStorage(r){return r}},j=class extends k{constructor(r){super(r);this.optionVisibility=new le("visibility","private"),this.optionInherited=new re("inherited",!0),this.optionExternals=new re("externals",!0)}static isSupported(){try{return typeof window.localStorage!="undefined"}catch{return!1}}};function we(t){let e=localStorage.getItem("tsd-theme")||"os";t.value=e,be(e),t.addEventListener("change",()=>{localStorage.setItem("tsd-theme",t.value),be(t.value)})}function be(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}}ye();N(X,".menu-highlight");N(Z,".tsd-signatures");N(ee,"a[data-toggle]");j.isSupported()?N(j,"#tsd-filter"):document.documentElement.classList.add("no-filter");var Te=document.getElementById("theme");Te&&we(Te);var Be=new Y;Object.defineProperty(window,"app",{value:Be});})(); +/*! + * 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/api/assets/search.js b/docs/api/assets/search.js new file mode 100644 index 0000000..269a6fb --- /dev/null +++ b/docs/api/assets/search.js @@ -0,0 +1 @@ +window.searchData = JSON.parse("{\"kinds\":{\"32\":\"Variable\",\"64\":\"Function\",\"128\":\"Class\",\"512\":\"Constructor\",\"1024\":\"Property\",\"2048\":\"Method\",\"65536\":\"Type literal\",\"4194304\":\"Type alias\"},\"rows\":[{\"id\":0,\"kind\":128,\"name\":\"OCRClient\",\"url\":\"classes/OCRClient.html\",\"classes\":\"tsd-kind-class\"},{\"id\":1,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/OCRClient.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"OCRClient\"},{\"id\":2,\"kind\":2048,\"name\":\"destroy\",\"url\":\"classes/OCRClient.html#destroy\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCRClient\"},{\"id\":3,\"kind\":2048,\"name\":\"loadModel\",\"url\":\"classes/OCRClient.html#loadModel\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCRClient\"},{\"id\":4,\"kind\":2048,\"name\":\"loadImage\",\"url\":\"classes/OCRClient.html#loadImage\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCRClient\"},{\"id\":5,\"kind\":2048,\"name\":\"clearImage\",\"url\":\"classes/OCRClient.html#clearImage\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCRClient\"},{\"id\":6,\"kind\":2048,\"name\":\"getBoundingBoxes\",\"url\":\"classes/OCRClient.html#getBoundingBoxes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCRClient\"},{\"id\":7,\"kind\":2048,\"name\":\"getTextBoxes\",\"url\":\"classes/OCRClient.html#getTextBoxes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCRClient\"},{\"id\":8,\"kind\":2048,\"name\":\"getText\",\"url\":\"classes/OCRClient.html#getText\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCRClient\"},{\"id\":9,\"kind\":2048,\"name\":\"getHOCR\",\"url\":\"classes/OCRClient.html#getHOCR\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCRClient\"},{\"id\":10,\"kind\":2048,\"name\":\"getOrientation\",\"url\":\"classes/OCRClient.html#getOrientation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCRClient\"},{\"id\":11,\"kind\":4194304,\"name\":\"OCRClientInit\",\"url\":\"modules.html#OCRClientInit\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":12,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#OCRClientInit.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"OCRClientInit\"},{\"id\":13,\"kind\":2048,\"name\":\"createWorker\",\"url\":\"modules.html#OCRClientInit.__type.createWorker\",\"classes\":\"tsd-kind-method tsd-parent-kind-type-literal\",\"parent\":\"OCRClientInit.__type\"},{\"id\":14,\"kind\":1024,\"name\":\"wasmBinary\",\"url\":\"modules.html#OCRClientInit.__type.wasmBinary\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"OCRClientInit.__type\"},{\"id\":15,\"kind\":1024,\"name\":\"workerURL\",\"url\":\"modules.html#OCRClientInit.__type.workerURL\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"OCRClientInit.__type\"},{\"id\":16,\"kind\":64,\"name\":\"createOCREngine\",\"url\":\"modules.html#createOCREngine\",\"classes\":\"tsd-kind-function\"},{\"id\":17,\"kind\":32,\"name\":\"layoutFlags\",\"url\":\"modules.html#layoutFlags\",\"classes\":\"tsd-kind-variable\"},{\"id\":18,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#layoutFlags.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"layoutFlags\"},{\"id\":19,\"kind\":1024,\"name\":\"StartOfLine\",\"url\":\"modules.html#layoutFlags.__type.StartOfLine\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"layoutFlags.__type\"},{\"id\":20,\"kind\":1024,\"name\":\"EndOfLine\",\"url\":\"modules.html#layoutFlags.__type.EndOfLine\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"layoutFlags.__type\"},{\"id\":21,\"kind\":64,\"name\":\"supportsFastBuild\",\"url\":\"modules.html#supportsFastBuild\",\"classes\":\"tsd-kind-function\"},{\"id\":22,\"kind\":4194304,\"name\":\"CreateOCREngineOptions\",\"url\":\"modules.html#CreateOCREngineOptions\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":23,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#CreateOCREngineOptions.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"CreateOCREngineOptions\"},{\"id\":24,\"kind\":1024,\"name\":\"wasmBinary\",\"url\":\"modules.html#CreateOCREngineOptions.__type.wasmBinary\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"CreateOCREngineOptions.__type\"},{\"id\":25,\"kind\":1024,\"name\":\"progressChannel\",\"url\":\"modules.html#CreateOCREngineOptions.__type.progressChannel\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"CreateOCREngineOptions.__type\"},{\"id\":26,\"kind\":4194304,\"name\":\"BoxItem\",\"url\":\"modules.html#BoxItem\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":27,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#BoxItem.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"BoxItem\"},{\"id\":28,\"kind\":1024,\"name\":\"rect\",\"url\":\"modules.html#BoxItem.__type.rect\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"BoxItem.__type\"},{\"id\":29,\"kind\":1024,\"name\":\"flags\",\"url\":\"modules.html#BoxItem.__type.flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"BoxItem.__type\"},{\"id\":30,\"kind\":4194304,\"name\":\"IntRect\",\"url\":\"modules.html#IntRect\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":31,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#IntRect.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"IntRect\"},{\"id\":32,\"kind\":1024,\"name\":\"left\",\"url\":\"modules.html#IntRect.__type.left\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"IntRect.__type\"},{\"id\":33,\"kind\":1024,\"name\":\"top\",\"url\":\"modules.html#IntRect.__type.top\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"IntRect.__type\"},{\"id\":34,\"kind\":1024,\"name\":\"right\",\"url\":\"modules.html#IntRect.__type.right\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"IntRect.__type\"},{\"id\":35,\"kind\":1024,\"name\":\"bottom\",\"url\":\"modules.html#IntRect.__type.bottom\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"IntRect.__type\"},{\"id\":36,\"kind\":128,\"name\":\"OCREngine\",\"url\":\"classes/OCREngine.html\",\"classes\":\"tsd-kind-class\"},{\"id\":37,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/OCREngine.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"OCREngine\"},{\"id\":38,\"kind\":2048,\"name\":\"destroy\",\"url\":\"classes/OCREngine.html#destroy\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCREngine\"},{\"id\":39,\"kind\":2048,\"name\":\"getVariable\",\"url\":\"classes/OCREngine.html#getVariable\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCREngine\"},{\"id\":40,\"kind\":2048,\"name\":\"setVariable\",\"url\":\"classes/OCREngine.html#setVariable\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCREngine\"},{\"id\":41,\"kind\":2048,\"name\":\"loadModel\",\"url\":\"classes/OCREngine.html#loadModel\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCREngine\"},{\"id\":42,\"kind\":2048,\"name\":\"loadImage\",\"url\":\"classes/OCREngine.html#loadImage\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCREngine\"},{\"id\":43,\"kind\":2048,\"name\":\"clearImage\",\"url\":\"classes/OCREngine.html#clearImage\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCREngine\"},{\"id\":44,\"kind\":2048,\"name\":\"getBoundingBoxes\",\"url\":\"classes/OCREngine.html#getBoundingBoxes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCREngine\"},{\"id\":45,\"kind\":2048,\"name\":\"getTextBoxes\",\"url\":\"classes/OCREngine.html#getTextBoxes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCREngine\"},{\"id\":46,\"kind\":2048,\"name\":\"getText\",\"url\":\"classes/OCREngine.html#getText\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCREngine\"},{\"id\":47,\"kind\":2048,\"name\":\"getHOCR\",\"url\":\"classes/OCREngine.html#getHOCR\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCREngine\"},{\"id\":48,\"kind\":2048,\"name\":\"getOrientation\",\"url\":\"classes/OCREngine.html#getOrientation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OCREngine\"},{\"id\":49,\"kind\":4194304,\"name\":\"Orientation\",\"url\":\"modules.html#Orientation\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":50,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#Orientation.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"Orientation\"},{\"id\":51,\"kind\":1024,\"name\":\"rotation\",\"url\":\"modules.html#Orientation.__type.rotation\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"Orientation.__type\"},{\"id\":52,\"kind\":1024,\"name\":\"confidence\",\"url\":\"modules.html#Orientation.__type.confidence\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"Orientation.__type\"},{\"id\":53,\"kind\":4194304,\"name\":\"ProgressListener\",\"url\":\"modules.html#ProgressListener\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":54,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#ProgressListener.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"ProgressListener\"},{\"id\":55,\"kind\":4194304,\"name\":\"TextItem\",\"url\":\"modules.html#TextItem\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":56,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#TextItem.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"TextItem\"},{\"id\":57,\"kind\":1024,\"name\":\"rect\",\"url\":\"modules.html#TextItem.__type.rect\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"TextItem.__type\"},{\"id\":58,\"kind\":1024,\"name\":\"flags\",\"url\":\"modules.html#TextItem.__type.flags\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"TextItem.__type\"},{\"id\":59,\"kind\":1024,\"name\":\"confidence\",\"url\":\"modules.html#TextItem.__type.confidence\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"TextItem.__type\"},{\"id\":60,\"kind\":1024,\"name\":\"text\",\"url\":\"modules.html#TextItem.__type.text\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"TextItem.__type\"},{\"id\":61,\"kind\":4194304,\"name\":\"TextUnit\",\"url\":\"modules.html#TextUnit\",\"classes\":\"tsd-kind-type-alias\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"parent\"],\"fieldVectors\":[[\"name/0\",[0,17.008]],[\"parent/0\",[]],[\"name/1\",[1,32.268]],[\"parent/1\",[0,1.534]],[\"name/2\",[2,32.268]],[\"parent/2\",[0,1.534]],[\"name/3\",[3,32.268]],[\"parent/3\",[0,1.534]],[\"name/4\",[4,32.268]],[\"parent/4\",[0,1.534]],[\"name/5\",[5,32.268]],[\"parent/5\",[0,1.534]],[\"name/6\",[6,32.268]],[\"parent/6\",[0,1.534]],[\"name/7\",[7,32.268]],[\"parent/7\",[0,1.534]],[\"name/8\",[8,32.268]],[\"parent/8\",[0,1.534]],[\"name/9\",[9,32.268]],[\"parent/9\",[0,1.534]],[\"name/10\",[10,32.268]],[\"parent/10\",[0,1.534]],[\"name/11\",[11,32.268]],[\"parent/11\",[]],[\"name/12\",[12,20.031]],[\"parent/12\",[11,2.911]],[\"name/13\",[13,37.377]],[\"parent/13\",[14,2.607]],[\"name/14\",[15,32.268]],[\"parent/14\",[14,2.607]],[\"name/15\",[16,37.377]],[\"parent/15\",[14,2.607]],[\"name/16\",[17,37.377]],[\"parent/16\",[]],[\"name/17\",[18,32.268]],[\"parent/17\",[]],[\"name/18\",[12,20.031]],[\"parent/18\",[18,2.911]],[\"name/19\",[19,37.377]],[\"parent/19\",[20,2.911]],[\"name/20\",[21,37.377]],[\"parent/20\",[20,2.911]],[\"name/21\",[22,37.377]],[\"parent/21\",[]],[\"name/22\",[23,32.268]],[\"parent/22\",[]],[\"name/23\",[12,20.031]],[\"parent/23\",[23,2.911]],[\"name/24\",[15,32.268]],[\"parent/24\",[24,2.911]],[\"name/25\",[25,37.377]],[\"parent/25\",[24,2.911]],[\"name/26\",[26,32.268]],[\"parent/26\",[]],[\"name/27\",[12,20.031]],[\"parent/27\",[26,2.911]],[\"name/28\",[27,32.268]],[\"parent/28\",[28,2.911]],[\"name/29\",[29,32.268]],[\"parent/29\",[28,2.911]],[\"name/30\",[30,32.268]],[\"parent/30\",[]],[\"name/31\",[12,20.031]],[\"parent/31\",[30,2.911]],[\"name/32\",[31,37.377]],[\"parent/32\",[32,2.381]],[\"name/33\",[33,37.377]],[\"parent/33\",[32,2.381]],[\"name/34\",[34,37.377]],[\"parent/34\",[32,2.381]],[\"name/35\",[35,37.377]],[\"parent/35\",[32,2.381]],[\"name/36\",[36,15.404]],[\"parent/36\",[]],[\"name/37\",[1,32.268]],[\"parent/37\",[36,1.39]],[\"name/38\",[2,32.268]],[\"parent/38\",[36,1.39]],[\"name/39\",[37,37.377]],[\"parent/39\",[36,1.39]],[\"name/40\",[38,37.377]],[\"parent/40\",[36,1.39]],[\"name/41\",[3,32.268]],[\"parent/41\",[36,1.39]],[\"name/42\",[4,32.268]],[\"parent/42\",[36,1.39]],[\"name/43\",[5,32.268]],[\"parent/43\",[36,1.39]],[\"name/44\",[6,32.268]],[\"parent/44\",[36,1.39]],[\"name/45\",[7,32.268]],[\"parent/45\",[36,1.39]],[\"name/46\",[8,32.268]],[\"parent/46\",[36,1.39]],[\"name/47\",[9,32.268]],[\"parent/47\",[36,1.39]],[\"name/48\",[10,32.268]],[\"parent/48\",[36,1.39]],[\"name/49\",[39,32.268]],[\"parent/49\",[]],[\"name/50\",[12,20.031]],[\"parent/50\",[39,2.911]],[\"name/51\",[40,37.377]],[\"parent/51\",[41,2.911]],[\"name/52\",[42,32.268]],[\"parent/52\",[41,2.911]],[\"name/53\",[43,32.268]],[\"parent/53\",[]],[\"name/54\",[12,20.031]],[\"parent/54\",[43,2.911]],[\"name/55\",[44,32.268]],[\"parent/55\",[]],[\"name/56\",[12,20.031]],[\"parent/56\",[44,2.911]],[\"name/57\",[27,32.268]],[\"parent/57\",[45,2.381]],[\"name/58\",[29,32.268]],[\"parent/58\",[45,2.381]],[\"name/59\",[42,32.268]],[\"parent/59\",[45,2.381]],[\"name/60\",[46,37.377]],[\"parent/60\",[45,2.381]],[\"name/61\",[47,37.377]],[\"parent/61\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":12,\"name\":{\"12\":{},\"18\":{},\"23\":{},\"27\":{},\"31\":{},\"50\":{},\"54\":{},\"56\":{}},\"parent\":{}}],[\"bottom\",{\"_index\":35,\"name\":{\"35\":{}},\"parent\":{}}],[\"boxitem\",{\"_index\":26,\"name\":{\"26\":{}},\"parent\":{\"27\":{}}}],[\"boxitem.__type\",{\"_index\":28,\"name\":{},\"parent\":{\"28\":{},\"29\":{}}}],[\"clearimage\",{\"_index\":5,\"name\":{\"5\":{},\"43\":{}},\"parent\":{}}],[\"confidence\",{\"_index\":42,\"name\":{\"52\":{},\"59\":{}},\"parent\":{}}],[\"constructor\",{\"_index\":1,\"name\":{\"1\":{},\"37\":{}},\"parent\":{}}],[\"createocrengine\",{\"_index\":17,\"name\":{\"16\":{}},\"parent\":{}}],[\"createocrengineoptions\",{\"_index\":23,\"name\":{\"22\":{}},\"parent\":{\"23\":{}}}],[\"createocrengineoptions.__type\",{\"_index\":24,\"name\":{},\"parent\":{\"24\":{},\"25\":{}}}],[\"createworker\",{\"_index\":13,\"name\":{\"13\":{}},\"parent\":{}}],[\"destroy\",{\"_index\":2,\"name\":{\"2\":{},\"38\":{}},\"parent\":{}}],[\"endofline\",{\"_index\":21,\"name\":{\"20\":{}},\"parent\":{}}],[\"flags\",{\"_index\":29,\"name\":{\"29\":{},\"58\":{}},\"parent\":{}}],[\"getboundingboxes\",{\"_index\":6,\"name\":{\"6\":{},\"44\":{}},\"parent\":{}}],[\"gethocr\",{\"_index\":9,\"name\":{\"9\":{},\"47\":{}},\"parent\":{}}],[\"getorientation\",{\"_index\":10,\"name\":{\"10\":{},\"48\":{}},\"parent\":{}}],[\"gettext\",{\"_index\":8,\"name\":{\"8\":{},\"46\":{}},\"parent\":{}}],[\"gettextboxes\",{\"_index\":7,\"name\":{\"7\":{},\"45\":{}},\"parent\":{}}],[\"getvariable\",{\"_index\":37,\"name\":{\"39\":{}},\"parent\":{}}],[\"intrect\",{\"_index\":30,\"name\":{\"30\":{}},\"parent\":{\"31\":{}}}],[\"intrect.__type\",{\"_index\":32,\"name\":{},\"parent\":{\"32\":{},\"33\":{},\"34\":{},\"35\":{}}}],[\"layoutflags\",{\"_index\":18,\"name\":{\"17\":{}},\"parent\":{\"18\":{}}}],[\"layoutflags.__type\",{\"_index\":20,\"name\":{},\"parent\":{\"19\":{},\"20\":{}}}],[\"left\",{\"_index\":31,\"name\":{\"32\":{}},\"parent\":{}}],[\"loadimage\",{\"_index\":4,\"name\":{\"4\":{},\"42\":{}},\"parent\":{}}],[\"loadmodel\",{\"_index\":3,\"name\":{\"3\":{},\"41\":{}},\"parent\":{}}],[\"ocrclient\",{\"_index\":0,\"name\":{\"0\":{}},\"parent\":{\"1\":{},\"2\":{},\"3\":{},\"4\":{},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{}}}],[\"ocrclientinit\",{\"_index\":11,\"name\":{\"11\":{}},\"parent\":{\"12\":{}}}],[\"ocrclientinit.__type\",{\"_index\":14,\"name\":{},\"parent\":{\"13\":{},\"14\":{},\"15\":{}}}],[\"ocrengine\",{\"_index\":36,\"name\":{\"36\":{}},\"parent\":{\"37\":{},\"38\":{},\"39\":{},\"40\":{},\"41\":{},\"42\":{},\"43\":{},\"44\":{},\"45\":{},\"46\":{},\"47\":{},\"48\":{}}}],[\"orientation\",{\"_index\":39,\"name\":{\"49\":{}},\"parent\":{\"50\":{}}}],[\"orientation.__type\",{\"_index\":41,\"name\":{},\"parent\":{\"51\":{},\"52\":{}}}],[\"progresschannel\",{\"_index\":25,\"name\":{\"25\":{}},\"parent\":{}}],[\"progresslistener\",{\"_index\":43,\"name\":{\"53\":{}},\"parent\":{\"54\":{}}}],[\"rect\",{\"_index\":27,\"name\":{\"28\":{},\"57\":{}},\"parent\":{}}],[\"right\",{\"_index\":34,\"name\":{\"34\":{}},\"parent\":{}}],[\"rotation\",{\"_index\":40,\"name\":{\"51\":{}},\"parent\":{}}],[\"setvariable\",{\"_index\":38,\"name\":{\"40\":{}},\"parent\":{}}],[\"startofline\",{\"_index\":19,\"name\":{\"19\":{}},\"parent\":{}}],[\"supportsfastbuild\",{\"_index\":22,\"name\":{\"21\":{}},\"parent\":{}}],[\"text\",{\"_index\":46,\"name\":{\"60\":{}},\"parent\":{}}],[\"textitem\",{\"_index\":44,\"name\":{\"55\":{}},\"parent\":{\"56\":{}}}],[\"textitem.__type\",{\"_index\":45,\"name\":{},\"parent\":{\"57\":{},\"58\":{},\"59\":{},\"60\":{}}}],[\"textunit\",{\"_index\":47,\"name\":{\"61\":{}},\"parent\":{}}],[\"top\",{\"_index\":33,\"name\":{\"33\":{}},\"parent\":{}}],[\"wasmbinary\",{\"_index\":15,\"name\":{\"14\":{},\"24\":{}},\"parent\":{}}],[\"workerurl\",{\"_index\":16,\"name\":{\"15\":{}},\"parent\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file diff --git a/docs/api/assets/style.css b/docs/api/assets/style.css new file mode 100644 index 0000000..6127b27 --- /dev/null +++ b/docs/api/assets/style.css @@ -0,0 +1,1414 @@ +@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,"); + + /* 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,"); +} + +@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, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +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: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + 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%; +} + +.tsd-anchor-icon { + margin-left: 10px; + vertical-align: middle; + color: var(--color-text); +} + +.tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; +} + +.tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; +} diff --git a/docs/api/assets/widgets.png b/docs/api/assets/widgets.png new file mode 100644 index 0000000..c738053 Binary files /dev/null and b/docs/api/assets/widgets.png differ diff --git a/docs/api/assets/widgets@2x.png b/docs/api/assets/widgets@2x.png new file mode 100644 index 0000000..4bbbd57 Binary files /dev/null and b/docs/api/assets/widgets@2x.png differ diff --git a/docs/api/classes/OCRClient.html b/docs/api/classes/OCRClient.html new file mode 100644 index 0000000..612df47 --- /dev/null +++ b/docs/api/classes/OCRClient.html @@ -0,0 +1,45 @@ +OCRClient | tesseract-wasm
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class OCRClient

+

High-level async API for performing document image layout analysis and +OCR.

+

In the browser, this class can be constructed directly. In Node, use the +createOCRClient helper from node-worker.js.

+

Hierarchy

  • OCRClient

Index

Constructors

  • +

    Initialize an OCR engine.

    +

    This will start a Worker in which the OCR operations will actually be +performed.

    +

    Parameters

    Returns OCRClient

Methods

  • clearImage(): Promise<void>
  • +

    Clear the current image and text recognition results.

    +

    This will clear the loaded image data internally, but keep the text +recognition model loaded.

    +

    At present there is no way to shrink WebAssembly memory, so this will not +return the memory used by the image to the OS/browser. To release memory, +the web worker needs to be shut down via destroy.

    +

    Returns Promise<void>

  • destroy(): Promise<void>
  • +

    Perform layout analysis on the current image, if not already done, and +return bounding boxes for a given unit of text.

    +

    This operation is relatively cheap compared to text recognition, so can +provide much faster results if only the location of lines/words etc. on +the page is required, not the text content.

    +

    Parameters

    Returns Promise<BoxItem[]>

  • +

    Perform layout analysis and text recognition on the current image, if +not already done, and return the image's text as a string.

    +

    Parameters

    Returns Promise<string>

  • +

    Perform layout analysis and text recognition on the current image, if +not already done, and return bounding boxes and text content for a given +unit of text.

    +

    Parameters

    Returns Promise<TextItem[]>

  • loadImage(image: ImageBitmap | ImageData): Promise<void>
  • +

    Load an image into the OCR engine for processing.

    +

    Parameters

    • image: ImageBitmap | ImageData

    Returns Promise<void>

  • loadModel(model: string | ArrayBuffer): Promise<void>
  • +

    Load a trained model for a specific language. This can be specified either +as a URL to fetch or a buffer containing an already-loaded model.

    +

    Parameters

    • model: string | ArrayBuffer

    Returns Promise<void>

Legend

  • Constructor
  • Method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/api/classes/OCREngine.html b/docs/api/classes/OCREngine.html new file mode 100644 index 0000000..04b1127 --- /dev/null +++ b/docs/api/classes/OCREngine.html @@ -0,0 +1,69 @@ +OCREngine | tesseract-wasm
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class OCREngine

+

Low-level synchronous API for performing OCR.

+

Instances are constructed using createOCREngine.

+

Hierarchy

  • OCREngine

Index

Constructors

  • new OCREngine(tessLib: any, progressChannel?: MessagePort): OCREngine
  • +

    Initialize the OCREngine.

    +

    Use createOCREngine rather than calling this directly.

    +

    Parameters

    • tessLib: any
      +

      Emscripten entry point for the compiled WebAssembly module.

      +
    • Optional progressChannel: MessagePort
      +

      Channel used to report progress + updates when OCREngine is run on a background thread

      +

    Returns OCREngine

Methods

  • clearImage(): void
  • +

    Clear the current image and text recognition results.

    +

    This will clear the loaded image data internally, but keep the text +recognition model loaded.

    +

    At present there is no way to shrink WebAssembly memory, so this will not +return the memory used by the image to the OS/browser. To release memory, +the OCREngine instance needs to be destroyed via destroy.

    +

    Returns void

  • destroy(): void
  • +

    Shut down the OCR engine and free up resources.

    +

    Returns void

  • +

    Perform layout analysis on the current image, if not already done, and +return bounding boxes for a given unit of text.

    +

    This operation is relatively cheap compared to text recognition, so can +provide much faster results if only the location of lines/words etc. on +the page is required, not the text content. This operation can also be +performed before a text recognition model is loaded.

    +

    This method may return a different number/positions of words on a line +compared to getTextBoxes due to the simpler analysis. After full +OCR has been performed by getTextBoxes or getText, this +method should return the same results.

    +

    Parameters

    Returns BoxItem[]

  • +

    Perform layout analysis and text recognition on the current image, if +not already done, and return the page text in hOCR format.

    +

    A text recognition model must be loaded with loadModel before this +is called.

    +

    Parameters

    Returns string

  • +

    Perform layout analysis and text recognition on the current image, if +not already done, and return the page text as a string.

    +

    A text recognition model must be loaded with loadModel before this +is called.

    +

    Parameters

    Returns string

  • +

    Perform layout analysis and text recognition on the current image, if +not already done, and return bounding boxes and text content for a given +unit of text.

    +

    A text recognition model must be loaded with loadModel before this +is called.

    +

    Parameters

    Returns TextItem[]

  • getVariable(name: string): string
  • +

    Get the value, represented as a string, of a Tesseract configuration variable.

    +

    See setVariable for available variables.

    +

    Parameters

    • name: string

    Returns string

  • loadImage(image: ImageBitmap | ImageData): void
  • +

    Load a document image for processing by subsequent operations.

    +

    This is a cheap operation as expensive processing is deferred until +bounding boxes or text content is requested.

    +

    Parameters

    • image: ImageBitmap | ImageData

    Returns void

  • loadModel(model: Uint8Array | ArrayBuffer): void
  • +

    Load a trained text recognition model.

    +

    Parameters

    • model: Uint8Array | ArrayBuffer

    Returns void

  • setVariable(name: string, value: string): void

Legend

  • Constructor
  • Method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/api/index.html b/docs/api/index.html new file mode 100644 index 0000000..f82ecb8 --- /dev/null +++ b/docs/api/index.html @@ -0,0 +1,115 @@ +tesseract-wasm
Options
All
  • Public
  • Public/Protected
  • All
Menu

tesseract-wasm

+ +

tesseract-wasm

+
+

npm package

+

A WebAssembly build of the Tesseract +OCR engine for use in the browser and Node.

+

tesseract-wasm can detect and recognize text in document images. It supports multiple languages via different trained models.

+

👉 Try the demo (Currently supports English)

+ + +

Features

+
+

This Tesseract build has been optimized for use in the browser by:

+
    +
  • Stripping functionality which is not needed in a browser environment (eg. +code to parse various image formats) to reduce download size and improve +startup performance. The library and English training data require a ~2.1MB +download (with Brotli compression).

    +
  • +
  • Using WebAssembly SIMD when available +(Chrome >= 91, Firefox >= 90, Safari >= 16.3) to improve text +recognition performance.

    +
  • +
  • Providing a high-level API that can be used to run web pages without blocking +interaction and a low-level API that provides more control over execution.

    +
  • +
+ + +

Setup

+
+
    +
  1. Add the tesseract-wasm library to your project:

    +
    npm install tesseract-wasm
    +
    +
  2. +
  3. Serve the tesseract-core.wasm, tesseract-core-fallback.wasm and +tesseract-worker.js files from node_modules/tesseract-wasm/dist alongside +your JavaScript bundle.

    +
  4. +
  5. Get the training data file(s) for the languages you want to support from the +tessdata_fast repo and +serve it from a URL that your JavaScript can load. The eng.traineddata +file supports English for example, and also works with many documents in +other languages that use the same script.

    +
  6. +
+ + +

Usage

+
+

tesseract-wasm provides two APIs: a high-level asynchronous API (OCRClient) +and a lower-level synchronous API (OCREngine). The high-level API is the most +convenient way to run OCR on an image in a web page. It handles running the OCR +engine inside a Web Worker to avoid blocking page interaction. The low-level API +is useful if more control is needed over where/how the code runs and has lower +latency per API call.

+ + +

Using OCRClient in a web page

+
+
import { OCRClient } from 'tesseract-wasm';

async function runOCR() {
// Fetch document image and decode it into an ImageBitmap.
const imageResponse = await fetch('./test-image.jpg');
const imageBlob = await imageResponse.blob();
const image = await createImageBitmap(image);

// Initialize the OCR engine. This will start a Web Worker to do the
// work in the background.
const ocr = new OCRClient();

try {
// Load the appropriate OCR training data for the image(s) we want to
// process.
await ocr.loadModel('eng.traineddata');

await ocr.loadImage(someImage);

// Perform text recognition and return text in reading order.
const text = await ocr.getText();

console.log('OCR text: ', text);
} finally {
// Once all OCR-ing has been done, shut down the Web Worker and free up
// resources.
ocr.destroy();
}
}

runOCR(); +
+ + +

Examples and documentation

+
+

See the examples/ directory for projects that show usage of the library in +the browser and Node.

+

See the API documentation +for detailed usage information.

+

See the Tesseract User Manual for +information on how Tesseract works, as well as advice on improving +recognition.

+ + +

Development

+
+ + +

Prerequisites

+
+

To build this library locally, you will need:

+
    +
  • A C++ build toolchain (eg. via the build-essential package on Ubuntu or Xcode on macOS)
  • +
  • CMake
  • +
  • Ninja
  • +
+

The Emscripten toolchain used to compile C++ to +WebAssembly is downloaded as part of the build process.

+

To install CMake and Ninja:

+ + +

On macOS:

+
+
brew install cmake ninja
+
+ + +

On Ubuntu

+
+
sudo apt-get install cmake ninja-build
+
+ + +

Building the library

+
+
git clone https://github.com/robertknight/tesseract-wasm
cd tesseract-wasm

# Build WebAssembly binaries and JS library in dist/ folder
make lib

# Run tests
make test +
+

To test your local build of the library with the example projects, or your own +projects, you can use yalc.

+
# In this project
yalc publish

# In the project where you want to use your local build of tesseract-wasm
yalc link tesseract-wasm +
+

Legend

  • Constructor
  • Method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/api/modules.html b/docs/api/modules.html new file mode 100644 index 0000000..ffd808c --- /dev/null +++ b/docs/api/modules.html @@ -0,0 +1,38 @@ +tesseract-wasm
Options
All
  • Public
  • Public/Protected
  • All
Menu

tesseract-wasm

Index

Type Aliases

BoxItem: { flags: number; rect: IntRect }
+

Item of text found in a document image by layout analysis.

+

Type declaration

CreateOCREngineOptions: { progressChannel?: MessagePort; wasmBinary?: Uint8Array | ArrayBuffer }

Type declaration

  • Optional progressChannel?: MessagePort
  • Optional wasmBinary?: Uint8Array | ArrayBuffer
    +

    WebAssembly binary to load. This can be used to customize how the binary URL +is determined and fetched. supportsFastBuild can be used to +determine which build to load.

    +
IntRect: { bottom: number; left: number; right: number; top: number }

Type declaration

  • bottom: number
  • left: number
  • right: number
  • top: number
OCRClientInit: { wasmBinary?: Uint8Array | ArrayBuffer; workerURL?: string; createWorker?: any }

Type declaration

  • Optional wasmBinary?: Uint8Array | ArrayBuffer
    +

    WebAssembly binary to load in worker. If not set, it is loaded from the +default location relative to the current script.

    +
  • Optional workerURL?: string
    +

    Location of worker script/module. If not set, it is loaded from the default location relative to the +current script.

    +
  • createWorker?:function
    • createWorker(url: string): Worker
    • +

      Callback that creates the worker. The default implementation creates a Web Worker.

      +

      Parameters

      • url: string

      Returns Worker

Orientation: { confidence: number; rotation: number }
+

Result of orientation detection.

+

Type declaration

  • confidence: number
    +

    Confidence value in [0, 1]

    +
  • rotation: number
ProgressListener: ((progress: number) => void)

Type declaration

    • (progress: number): void
    • +

      Handler that receives OCR operation progress updates.

      +

      Parameters

      • progress: number

      Returns void

TextItem: { confidence: number; flags: number; rect: IntRect; text: string }
+

Item of text found in a document image by layout analysis and OCR.

+

Type declaration

  • confidence: number
    +

    Confidence score for this word in [0, 1]

    +
  • flags: number
    +

    Combination of flags from layoutFlags

    +
  • rect: IntRect
  • text: string
TextUnit: "line" | "word"

Variables

layoutFlags: { EndOfLine: number; StartOfLine: number } = ...
+

Flags indicating position of a text item.

+

Keep this in sync with LayoutFlags in lib.cpp.

+

Type declaration

  • EndOfLine: number
  • StartOfLine: number

Functions

  • supportsFastBuild(): boolean
  • +

    Return true if the current JS runtime supports all the WebAssembly features +needed for the "fast" WebAssembly build. If not, the "fallback" version must +be used.

    +

    Returns boolean

Legend

  • Constructor
  • Method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/build/ocr-app.bundle.js b/docs/build/ocr-app.bundle.js new file mode 100644 index 0000000..31aa674 --- /dev/null +++ b/docs/build/ocr-app.bundle.js @@ -0,0 +1,58 @@ +var Jm=Object.create;var Gs=Object.defineProperty;var qm=Object.getOwnPropertyDescriptor;var bm=Object.getOwnPropertyNames;var eh=Object.getPrototypeOf,th=Object.prototype.hasOwnProperty;var Dt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var nh=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of bm(t))!th.call(e,i)&&i!==n&&Gs(e,i,{get:()=>t[i],enumerable:!(r=qm(t,i))||r.enumerable});return e};var ai=(e,t,n)=>(n=e!=null?Jm(eh(e)):{},nh(t||!e||!e.__esModule?Gs(n,"default",{value:e,enumerable:!0}):n,e));var Xs=Dt(($g,ci)=>{(function(){"use strict";var e={}.hasOwnProperty;function t(){for(var n=[],r=0;r{"use strict";var or=Symbol.for("react.element"),rh=Symbol.for("react.portal"),ih=Symbol.for("react.fragment"),lh=Symbol.for("react.strict_mode"),oh=Symbol.for("react.profiler"),uh=Symbol.for("react.provider"),sh=Symbol.for("react.context"),ah=Symbol.for("react.forward_ref"),ch=Symbol.for("react.suspense"),fh=Symbol.for("react.memo"),dh=Symbol.for("react.lazy"),Zs=Symbol.iterator;function ph(e){return e===null||typeof e!="object"?null:(e=Zs&&e[Zs]||e["@@iterator"],typeof e=="function"?e:null)}var bs={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ea=Object.assign,ta={};function Sn(e,t,n){this.props=e,this.context=t,this.refs=ta,this.updater=n||bs}Sn.prototype.isReactComponent={};Sn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Sn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function na(){}na.prototype=Sn.prototype;function Zl(e,t,n){this.props=e,this.context=t,this.refs=ta,this.updater=n||bs}var Jl=Zl.prototype=new na;Jl.constructor=Zl;ea(Jl,Sn.prototype);Jl.isPureReactComponent=!0;var Js=Array.isArray,ra=Object.prototype.hasOwnProperty,ql={current:null},ia={key:!0,ref:!0,__self:!0,__source:!0};function la(e,t,n){var r,i={},l=null,s=null;if(t!=null)for(r in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(l=""+t.key),t)ra.call(t,r)&&!ia.hasOwnProperty(r)&&(i[r]=t[r]);var c=arguments.length-2;if(c===1)i.children=n;else if(1{"use strict";ua.exports=oa()});var ga=Dt(J=>{"use strict";function ro(e,t){var n=e.length;e.push(t);e:for(;0>>1,i=e[r];if(0>>1;rhi(c,n))fhi(m,c)?(e[r]=m,e[f]=n,r=f):(e[r]=c,e[s]=n,r=s);else if(fhi(m,n))e[r]=m,e[f]=n,r=f;else break e}}return t}function hi(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}typeof performance=="object"&&typeof performance.now=="function"?(sa=performance,J.unstable_now=function(){return sa.now()}):(eo=Date,aa=eo.now(),J.unstable_now=function(){return eo.now()-aa});var sa,eo,aa,ft=[],Lt=[],yh=1,Ye=null,ke=3,yi=!1,tn=!1,sr=!1,da=typeof setTimeout=="function"?setTimeout:null,pa=typeof clearTimeout=="function"?clearTimeout:null,ca=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function io(e){for(var t=tt(Lt);t!==null;){if(t.callback===null)gi(Lt);else if(t.startTime<=e)gi(Lt),t.sortIndex=t.expirationTime,ro(ft,t);else break;t=tt(Lt)}}function lo(e){if(sr=!1,io(e),!tn)if(tt(ft)!==null)tn=!0,uo(oo);else{var t=tt(Lt);t!==null&&so(lo,t.startTime-e)}}function oo(e,t){tn=!1,sr&&(sr=!1,pa(ar),ar=-1),yi=!0;var n=ke;try{for(io(t),Ye=tt(ft);Ye!==null&&(!(Ye.expirationTime>t)||e&&!va());){var r=Ye.callback;if(typeof r=="function"){Ye.callback=null,ke=Ye.priorityLevel;var i=r(Ye.expirationTime<=t);t=J.unstable_now(),typeof i=="function"?Ye.callback=i:Ye===tt(ft)&&gi(ft),io(t)}else gi(ft);Ye=tt(ft)}if(Ye!==null)var l=!0;else{var s=tt(Lt);s!==null&&so(lo,s.startTime-t),l=!1}return l}finally{Ye=null,ke=n,yi=!1}}var wi=!1,vi=null,ar=-1,ma=5,ha=-1;function va(){return!(J.unstable_now()-hae||125r?(e.sortIndex=n,ro(Lt,e),tt(ft)===null&&e===tt(Lt)&&(sr?(pa(ar),ar=-1):sr=!0,so(lo,n-r))):(e.sortIndex=i,ro(ft,e),tn||yi||(tn=!0,uo(oo))),e};J.unstable_shouldYield=va;J.unstable_wrapCallback=function(e){var t=ke;return function(){var n=ke;ke=t;try{return e.apply(this,arguments)}finally{ke=n}}}});var wa=Dt((Bg,ya)=>{"use strict";ya.exports=ga()});var Rd=Dt(Be=>{"use strict";var Nc=mi(),He=wa();function P(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Do=Object.prototype.hasOwnProperty,wh=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,_a={},Sa={};function _h(e){return Do.call(Sa,e)?!0:Do.call(_a,e)?!1:wh.test(e)?Sa[e]=!0:(_a[e]=!0,!1)}function Sh(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function kh(e,t,n,r){if(t===null||typeof t>"u"||Sh(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function De(e,t,n,r,i,l,s){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=s}var we={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){we[e]=new De(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];we[t]=new De(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){we[e]=new De(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){we[e]=new De(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){we[e]=new De(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){we[e]=new De(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){we[e]=new De(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){we[e]=new De(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){we[e]=new De(e,5,!1,e.toLowerCase(),null,!1,!1)});var ku=/[\-:]([a-z])/g;function Cu(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(ku,Cu);we[t]=new De(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(ku,Cu);we[t]=new De(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(ku,Cu);we[t]=new De(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){we[e]=new De(e,1,!1,e.toLowerCase(),null,!1,!1)});we.xlinkHref=new De("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){we[e]=new De(e,1,!1,e.toLowerCase(),null,!0,!0)});function Eu(e,t,n,r){var i=we.hasOwnProperty(t)?we[t]:null;(i!==null?i.type!==0:r||!(2c||i[s]!==l[c]){var f=` +`+i[s].replace(" at new "," at ");return e.displayName&&f.includes("")&&(f=f.replace("",e.displayName)),f}while(1<=s&&0<=c);break}}}finally{co=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?wr(e):""}function Ch(e){switch(e.tag){case 5:return wr(e.type);case 16:return wr("Lazy");case 13:return wr("Suspense");case 19:return wr("SuspenseList");case 0:case 2:case 15:return e=fo(e.type,!1),e;case 11:return e=fo(e.type.render,!1),e;case 1:return e=fo(e.type,!0),e;default:return""}}function Mo(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Tn:return"Fragment";case En:return"Portal";case Lo:return"Profiler";case Tu:return"StrictMode";case zo:return"Suspense";case Fo:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Lc:return(e.displayName||"Context")+".Consumer";case Dc:return(e._context.displayName||"Context")+".Provider";case Pu:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case xu:return t=e.displayName||null,t!==null?t:Mo(e.type)||"Memo";case Ft:t=e._payload,e=e._init;try{return Mo(e(t))}catch{}}return null}function Eh(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Mo(t);case 8:return t===Tu?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Yt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Fc(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Th(e){var t=Fc(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(s){r=""+s,l.call(this,s)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(s){r=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Si(e){e._valueTracker||(e._valueTracker=Th(e))}function Mc(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Fc(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Xi(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Io(e,t){var n=t.checked;return le({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ca(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Yt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Ic(e,t){t=t.checked,t!=null&&Eu(e,"checked",t,!1)}function Ao(e,t){Ic(e,t);var n=Yt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?jo(e,t.type,n):t.hasOwnProperty("defaultValue")&&jo(e,t.type,Yt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Ea(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function jo(e,t,n){(t!=="number"||Xi(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var _r=Array.isArray;function In(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=ki.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function zr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Cr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ph=["Webkit","ms","Moz","O"];Object.keys(Cr).forEach(function(e){Ph.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Cr[t]=Cr[e]})});function $c(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Cr.hasOwnProperty(e)&&Cr[e]?(""+t).trim():t+"px"}function Wc(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=$c(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var xh=le({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Wo(e,t){if(t){if(xh[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(P(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(P(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(P(61))}if(t.style!=null&&typeof t.style!="object")throw Error(P(62))}}function Ho(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Vo=null;function Ru(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Bo=null,An=null,jn=null;function xa(e){if(e=Jr(e)){if(typeof Bo!="function")throw Error(P(280));var t=e.stateNode;t&&(t=El(t),Bo(e.stateNode,e.type,t))}}function Hc(e){An?jn?jn.push(e):jn=[e]:An=e}function Vc(){if(An){var e=An,t=jn;if(jn=An=null,xa(e),t)for(e=0;e>>=0,e===0?32:31-(jh(e)/Uh|0)|0}var Ci=64,Ei=4194304;function Sr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function bi(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,l=e.pingedLanes,s=n&268435455;if(s!==0){var c=s&~i;c!==0?r=Sr(c):(l&=s,l!==0&&(r=Sr(l)))}else s=n&~i,s!==0?r=Sr(s):l!==0&&(r=Sr(l));if(r===0)return 0;if(t!==0&&t!==r&&(t&i)===0&&(i=r&-r,l=t&-t,i>=l||i===16&&(l&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Xr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-ut(t),e[t]=n}function Vh(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Tr),Ia=String.fromCharCode(32),Aa=!1;function cf(e,t){switch(e){case"keyup":return gv.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ff(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Pn=!1;function wv(e,t){switch(e){case"compositionend":return ff(t);case"keypress":return t.which!==32?null:(Aa=!0,Ia);case"textInput":return e=t.data,e===Ia&&Aa?null:e;default:return null}}function _v(e,t){if(Pn)return e==="compositionend"||!Iu&&cf(e,t)?(e=sf(),Wi=zu=jt=null,Pn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=$a(n)}}function hf(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?hf(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function vf(){for(var e=window,t=Xi();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Xi(e.document)}return t}function Au(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Nv(e){var t=vf(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&hf(n.ownerDocument.documentElement,n)){if(r!==null&&Au(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,l=Math.min(r.start,i);r=r.end===void 0?l:Math.min(r.end,i),!e.extend&&l>r&&(i=r,r=l,l=i),i=Wa(n,l);var s=Wa(n,r);i&&s&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==s.node||e.focusOffset!==s.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),l>r?(e.addRange(t),e.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,xn=null,Zo=null,xr=null,Jo=!1;function Ha(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Jo||xn==null||xn!==Xi(r)||(r=xn,"selectionStart"in r&&Au(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),xr&&Ur(xr,r)||(xr=r,r=nl(Zo,"onSelect"),0On||(e.current=ru[On],ru[On]=null,On--)}function q(e,t){On++,ru[On]=e.current,e.current=t}var Kt={},Pe=Zt(Kt),Ae=Zt(!1),an=Kt;function Vn(e,t){var n=e.type.contextTypes;if(!n)return Kt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},l;for(l in n)i[l]=t[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function je(e){return e=e.childContextTypes,e!=null}function il(){ee(Ae),ee(Pe)}function Ja(e,t,n){if(Pe.current!==Kt)throw Error(P(168));q(Pe,t),q(Ae,n)}function Tf(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(P(108,Eh(e)||"Unknown",i));return le({},n,r)}function ll(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Kt,an=Pe.current,q(Pe,e),q(Ae,Ae.current),!0}function qa(e,t,n){var r=e.stateNode;if(!r)throw Error(P(169));n?(e=Tf(e,t,an),r.__reactInternalMemoizedMergedChildContext=e,ee(Ae),ee(Pe),q(Pe,e)):ee(Ae),q(Ae,n)}var St=null,Tl=!1,Co=!1;function Pf(e){St===null?St=[e]:St.push(e)}function Uv(e){Tl=!0,Pf(e)}function Jt(){if(!Co&&St!==null){Co=!0;var e=0,t=X;try{var n=St;for(X=1;e>=s,i-=s,Ct=1<<32-ut(t)+i|n<I?(Q=M,M=null):Q=M.sibling;var $=w(h,M,g[I],T);if($===null){M===null&&(M=Q);break}e&&M&&$.alternate===null&&t(h,M),p=l($,p,I),F===null?D=$:F.sibling=$,F=$,M=Q}if(I===g.length)return n(h,M),ne&&nn(h,I),D;if(M===null){for(;II?(Q=M,M=null):Q=M.sibling;var ce=w(h,M,$.value,T);if(ce===null){M===null&&(M=Q);break}e&&M&&ce.alternate===null&&t(h,M),p=l(ce,p,I),F===null?D=ce:F.sibling=ce,F=ce,M=Q}if($.done)return n(h,M),ne&&nn(h,I),D;if(M===null){for(;!$.done;I++,$=g.next())$=E(h,$.value,T),$!==null&&(p=l($,p,I),F===null?D=$:F.sibling=$,F=$);return ne&&nn(h,I),D}for(M=r(h,M);!$.done;I++,$=g.next())$=O(M,h,I,$.value,T),$!==null&&(e&&$.alternate!==null&&M.delete($.key===null?I:$.key),p=l($,p,I),F===null?D=$:F.sibling=$,F=$);return e&&M.forEach(function(gt){return t(h,gt)}),ne&&nn(h,I),D}function Z(h,p,g,T){if(typeof g=="object"&&g!==null&&g.type===Tn&&g.key===null&&(g=g.props.children),typeof g=="object"&&g!==null){switch(g.$$typeof){case _i:e:{for(var D=g.key,F=p;F!==null;){if(F.key===D){if(D=g.type,D===Tn){if(F.tag===7){n(h,F.sibling),p=i(F,g.props.children),p.return=h,h=p;break e}}else if(F.elementType===D||typeof D=="object"&&D!==null&&D.$$typeof===Ft&&lc(D)===F.type){n(h,F.sibling),p=i(F,g.props),p.ref=hr(h,F,g),p.return=h,h=p;break e}n(h,F);break}else t(h,F);F=F.sibling}g.type===Tn?(p=sn(g.props.children,h.mode,T,g.key),p.return=h,h=p):(T=Gi(g.type,g.key,g.props,null,h.mode,T),T.ref=hr(h,p,g),T.return=h,h=T)}return s(h);case En:e:{for(F=g.key;p!==null;){if(p.key===F)if(p.tag===4&&p.stateNode.containerInfo===g.containerInfo&&p.stateNode.implementation===g.implementation){n(h,p.sibling),p=i(p,g.children||[]),p.return=h,h=p;break e}else{n(h,p);break}else t(h,p);p=p.sibling}p=Oo(g,h.mode,T),p.return=h,h=p}return s(h);case Ft:return F=g._init,Z(h,p,F(g._payload),T)}if(_r(g))return R(h,p,g,T);if(cr(g))return U(h,p,g,T);Fi(h,g)}return typeof g=="string"&&g!==""||typeof g=="number"?(g=""+g,p!==null&&p.tag===6?(n(h,p.sibling),p=i(p,g),p.return=h,h=p):(n(h,p),p=No(g,h.mode,T),p.return=h,h=p),s(h)):n(h,p)}return Z}var Qn=Lf(!0),zf=Lf(!1),qr={},vt=Zt(qr),Vr=Zt(qr),Br=Zt(qr);function on(e){if(e===qr)throw Error(P(174));return e}function Qu(e,t){switch(q(Br,t),q(Vr,e),q(vt,qr),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:$o(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=$o(t,e)}ee(vt),q(vt,t)}function Yn(){ee(vt),ee(Vr),ee(Br)}function Ff(e){on(Br.current);var t=on(vt.current),n=$o(t,e.type);t!==n&&(q(Vr,e),q(vt,n))}function Yu(e){Vr.current===e&&(ee(vt),ee(Vr))}var re=Zt(0);function fl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Eo=[];function Ku(){for(var e=0;en?n:4,e(!0);var r=To.transition;To.transition={};try{e(!1),t()}finally{X=n,To.transition=r}}function Xf(){return be().memoizedState}function Vv(e,t,n){var r=Qt(e);n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Zf(e)?Jf(t,n):(qf(e,t,n),n=Oe(),e=Je(e,r,n),e!==null&&bf(e,t,r))}function Bv(e,t,n){var r=Qt(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Zf(e))Jf(t,i);else{qf(e,t,i);var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var s=t.lastRenderedState,c=l(s,n);if(i.hasEagerState=!0,i.eagerState=c,st(c,s))return}catch{}finally{}n=Oe(),e=Je(e,r,n),e!==null&&bf(e,t,r)}}function Zf(e){var t=e.alternate;return e===ie||t!==null&&t===ie}function Jf(e,t){Rr=dl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function qf(e,t,n){vd(e)?(e=t.interleaved,e===null?(n.next=n,ot===null?ot=[t]:ot.push(t)):(n.next=e.next,e.next=n),t.interleaved=n):(e=t.pending,e===null?n.next=n:(n.next=e.next,e.next=n),t.pending=n)}function bf(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ou(e,n)}}var pl={readContext:qe,useCallback:Ce,useContext:Ce,useEffect:Ce,useImperativeHandle:Ce,useInsertionEffect:Ce,useLayoutEffect:Ce,useMemo:Ce,useReducer:Ce,useRef:Ce,useState:Ce,useDebugValue:Ce,useDeferredValue:Ce,useTransition:Ce,useMutableSource:Ce,useSyncExternalStore:Ce,useId:Ce,unstable_isNewReconciler:!1},Qv={readContext:qe,useCallback:function(e,t){return pt().memoizedState=[e,t===void 0?null:t],e},useContext:qe,useEffect:uc,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Qi(4194308,4,Bf.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Qi(4194308,4,e,t)},useInsertionEffect:function(e,t){return Qi(4,2,e,t)},useMemo:function(e,t){var n=pt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=pt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Vv.bind(null,ie,e),[r.memoizedState,e]},useRef:function(e){var t=pt();return e={current:e},t.memoizedState=e},useState:oc,useDebugValue:qu,useDeferredValue:function(e){return pt().memoizedState=e},useTransition:function(){var e=oc(!1),t=e[0];return e=Hv.bind(null,e[1]),pt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ie,i=pt();if(ne){if(n===void 0)throw Error(P(407));n=n()}else{if(n=t(),me===null)throw Error(P(349));(fn&30)!==0||Af(r,t,n)}i.memoizedState=n;var l={value:n,getSnapshot:t};return i.queue=l,uc(Uf.bind(null,r,l,e),[e]),r.flags|=2048,Kr(9,jf.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=pt(),t=me.identifierPrefix;if(ne){var n=Et,r=Ct;n=(r&~(1<<32-ut(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Qr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),n==="select"&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[mt]=t,e[Hr]=r,nd(e,t,!1,!1),t.stateNode=e;e:{switch(s=Ho(n,r),n){case"dialog":b("cancel",e),b("close",e),i=r;break;case"iframe":case"object":case"embed":b("load",e),i=r;break;case"video":case"audio":for(i=0;iKn&&(t.flags|=128,r=!0,vr(l,!1),t.lanes=4194304)}else{if(!r)if(e=fl(s),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),vr(l,!0),l.tail===null&&l.tailMode==="hidden"&&!s.alternate&&!ne)return Ee(t),null}else 2*ae()-l.renderingStartTime>Kn&&n!==1073741824&&(t.flags|=128,r=!0,vr(l,!1),t.lanes=4194304);l.isBackwards?(s.sibling=t.child,t.child=s):(n=l.last,n!==null?n.sibling=s:t.child=s,l.last=s)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=ae(),t.sibling=null,n=re.current,q(re,r?n&1|2:n&1),t):(Ee(t),null);case 22:case 23:return is(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?($e&1073741824)!==0&&(Ee(t),t.subtreeFlags&6&&(t.flags|=8192)):Ee(t),null;case 24:return null;case 25:return null}throw Error(P(156,t.tag))}var Zv=Nt.ReactCurrentOwner,Ie=!1;function Ne(e,t,n,r){t.child=e===null?zf(t,null,n,r):Qn(t,e.child,n,r)}function fc(e,t,n,r,i){n=n.render;var l=t.ref;return $n(t,i),r=Xu(e,t,n,r,l,i),n=Zu(),e!==null&&!Ie?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Rt(e,t,i)):(ne&&n&&Hu(t),t.flags|=1,Ne(e,t,r,i),t.child)}function dc(e,t,n,r,i){if(e===null){var l=n.type;return typeof l=="function"&&!os(l)&&l.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=l,ld(e,t,l,r,i)):(e=Gi(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(l=e.child,(e.lanes&i)===0){var s=l.memoizedProps;if(n=n.compare,n=n!==null?n:Ur,n(s,r)&&e.ref===t.ref)return Rt(e,t,i)}return t.flags|=1,e=Gt(l,r),e.ref=t.ref,e.return=t,t.child=e}function ld(e,t,n,r,i){if(e!==null){var l=e.memoizedProps;if(Ur(l,r)&&e.ref===t.ref)if(Ie=!1,t.pendingProps=r=l,(e.lanes&i)!==0)(e.flags&131072)!==0&&(Ie=!0);else return t.lanes=e.lanes,Rt(e,t,i)}return fu(e,t,n,r,i)}function od(e,t,n){var r=t.pendingProps,i=r.children,l=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},q(Mn,$e),$e|=n;else if((n&1073741824)!==0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=l!==null?l.baseLanes:n,q(Mn,$e),$e|=r;else return e=l!==null?l.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,q(Mn,$e),$e|=e,null;else l!==null?(r=l.baseLanes|n,t.memoizedState=null):r=n,q(Mn,$e),$e|=r;return Ne(e,t,i,n),t.child}function ud(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function fu(e,t,n,r,i){var l=je(n)?an:Pe.current;return l=Vn(t,l),$n(t,i),n=Xu(e,t,n,r,l,i),r=Zu(),e!==null&&!Ie?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Rt(e,t,i)):(ne&&r&&Hu(t),t.flags|=1,Ne(e,t,n,i),t.child)}function pc(e,t,n,r,i){if(je(n)){var l=!0;ll(t)}else l=!1;if($n(t,i),t.stateNode===null)e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),Nf(t,n,r),ou(t,n,r,i),r=!0;else if(e===null){var s=t.stateNode,c=t.memoizedProps;s.props=c;var f=s.context,m=n.contextType;typeof m=="object"&&m!==null?m=qe(m):(m=je(n)?an:Pe.current,m=Vn(t,m));var k=n.getDerivedStateFromProps,E=typeof k=="function"||typeof s.getSnapshotBeforeUpdate=="function";E||typeof s.UNSAFE_componentWillReceiveProps!="function"&&typeof s.componentWillReceiveProps!="function"||(c!==r||f!==m)&&nc(t,s,r,m),Mt=!1;var w=t.memoizedState;s.state=w,sl(t,r,s,i),f=t.memoizedState,c!==r||w!==f||Ae.current||Mt?(typeof k=="function"&&(lu(t,n,k,r),f=t.memoizedState),(c=Mt||tc(t,n,c,r,w,f,m))?(E||typeof s.UNSAFE_componentWillMount!="function"&&typeof s.componentWillMount!="function"||(typeof s.componentWillMount=="function"&&s.componentWillMount(),typeof s.UNSAFE_componentWillMount=="function"&&s.UNSAFE_componentWillMount()),typeof s.componentDidMount=="function"&&(t.flags|=4194308)):(typeof s.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=f),s.props=r,s.state=f,s.context=m,r=c):(typeof s.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{s=t.stateNode,xf(e,t),c=t.memoizedProps,m=t.type===t.elementType?c:rt(t.type,c),s.props=m,E=t.pendingProps,w=s.context,f=n.contextType,typeof f=="object"&&f!==null?f=qe(f):(f=je(n)?an:Pe.current,f=Vn(t,f));var O=n.getDerivedStateFromProps;(k=typeof O=="function"||typeof s.getSnapshotBeforeUpdate=="function")||typeof s.UNSAFE_componentWillReceiveProps!="function"&&typeof s.componentWillReceiveProps!="function"||(c!==E||w!==f)&&nc(t,s,r,f),Mt=!1,w=t.memoizedState,s.state=w,sl(t,r,s,i);var R=t.memoizedState;c!==E||w!==R||Ae.current||Mt?(typeof O=="function"&&(lu(t,n,O,r),R=t.memoizedState),(m=Mt||tc(t,n,m,r,w,R,f)||!1)?(k||typeof s.UNSAFE_componentWillUpdate!="function"&&typeof s.componentWillUpdate!="function"||(typeof s.componentWillUpdate=="function"&&s.componentWillUpdate(r,R,f),typeof s.UNSAFE_componentWillUpdate=="function"&&s.UNSAFE_componentWillUpdate(r,R,f)),typeof s.componentDidUpdate=="function"&&(t.flags|=4),typeof s.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof s.componentDidUpdate!="function"||c===e.memoizedProps&&w===e.memoizedState||(t.flags|=4),typeof s.getSnapshotBeforeUpdate!="function"||c===e.memoizedProps&&w===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=R),s.props=r,s.state=R,s.context=f,r=m):(typeof s.componentDidUpdate!="function"||c===e.memoizedProps&&w===e.memoizedState||(t.flags|=4),typeof s.getSnapshotBeforeUpdate!="function"||c===e.memoizedProps&&w===e.memoizedState||(t.flags|=1024),r=!1)}return du(e,t,n,r,l,i)}function du(e,t,n,r,i,l){ud(e,t);var s=(t.flags&128)!==0;if(!r&&!s)return i&&qa(t,n,!1),Rt(e,t,l);r=t.stateNode,Zv.current=t;var c=s&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&s?(t.child=Qn(t,e.child,null,l),t.child=Qn(t,null,c,l)):Ne(e,t,c,l),t.memoizedState=r.state,i&&qa(t,n,!0),t.child}function sd(e){var t=e.stateNode;t.pendingContext?Ja(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Ja(e,t.context,!1),Qu(e,t.containerInfo)}function mc(e,t,n,r,i){return Bn(),Bu(i),t.flags|=256,Ne(e,t,n,r),t.child}var Mi={dehydrated:null,treeContext:null,retryLane:0};function Ii(e){return{baseLanes:e,cachePool:null,transitions:null}}function hc(e,t){return{baseLanes:e.baseLanes|t,cachePool:null,transitions:e.transitions}}function ad(e,t,n){var r=t.pendingProps,i=re.current,l=!1,s=(t.flags&128)!==0,c;if((c=s)||(c=e!==null&&e.memoizedState===null?!1:(i&2)!==0),c?(l=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(i|=1),q(re,i&1),e===null)return su(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(i=r.children,e=r.fallback,l?(r=t.mode,l=t.child,i={mode:"hidden",children:i},(r&1)===0&&l!==null?(l.childLanes=0,l.pendingProps=i):l=yl(i,r,0,null),e=sn(e,r,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Ii(n),t.memoizedState=Mi,e):pu(t,i));if(i=e.memoizedState,i!==null){if(c=i.dehydrated,c!==null){if(s)return t.flags&256?(t.flags&=-257,Ai(e,t,n,Error(P(422)))):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(l=r.fallback,i=t.mode,r=yl({mode:"visible",children:r.children},i,0,null),l=sn(l,i,n,null),l.flags|=2,r.return=t,l.return=t,r.sibling=l,t.child=r,(t.mode&1)!==0&&Qn(t,e.child,null,n),t.child.memoizedState=Ii(n),t.memoizedState=Mi,l);if((t.mode&1)===0)t=Ai(e,t,n,null);else if(c.data==="$!")t=Ai(e,t,n,Error(P(419)));else if(r=(n&e.childLanes)!==0,Ie||r){if(r=me,r!==null){switch(n&-n){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}r=(l&(r.suspendedLanes|n))!==0?0:l,r!==0&&r!==i.retryLane&&(i.retryLane=r,Je(e,r,-1))}ls(),t=Ai(e,t,n,Error(P(421)))}else c.data==="$?"?(t.flags|=128,t.child=e.child,t=sg.bind(null,e),c._reactRetry=t,t=null):(n=i.treeContext,Me=kt(c.nextSibling),We=t,ne=!0,lt=null,n!==null&&(Ke[Ge++]=Ct,Ke[Ge++]=Et,Ke[Ge++]=cn,Ct=n.id,Et=n.overflow,cn=t),t=pu(t,t.pendingProps.children),t.flags|=4096);return t}return l?(r=gc(e,t,r.children,r.fallback,n),l=t.child,i=e.child.memoizedState,l.memoizedState=i===null?Ii(n):hc(i,n),l.childLanes=e.childLanes&~n,t.memoizedState=Mi,r):(n=vc(e,t,r.children,n),t.memoizedState=null,n)}return l?(r=gc(e,t,r.children,r.fallback,n),l=t.child,i=e.child.memoizedState,l.memoizedState=i===null?Ii(n):hc(i,n),l.childLanes=e.childLanes&~n,t.memoizedState=Mi,r):(n=vc(e,t,r.children,n),t.memoizedState=null,n)}function pu(e,t){return t=yl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function vc(e,t,n,r){var i=e.child;return e=i.sibling,n=Gt(i,{mode:"visible",children:n}),(t.mode&1)===0&&(n.lanes=r),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n}function gc(e,t,n,r,i){var l=t.mode;e=e.child;var s=e.sibling,c={mode:"hidden",children:n};return(l&1)===0&&t.child!==e?(n=t.child,n.childLanes=0,n.pendingProps=c,t.deletions=null):(n=Gt(e,c),n.subtreeFlags=e.subtreeFlags&14680064),s!==null?r=Gt(s,r):(r=sn(r,l,i,null),r.flags|=2),r.return=t,n.return=t,n.sibling=r,t.child=n,r}function Ai(e,t,n,r){return r!==null&&Bu(r),Qn(t,e.child,null,n),e=pu(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function yc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),iu(e.return,t,n)}function Ro(e,t,n,r,i){var l=e.memoizedState;l===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i}:(l.isBackwards=t,l.rendering=null,l.renderingStartTime=0,l.last=r,l.tail=n,l.tailMode=i)}function cd(e,t,n){var r=t.pendingProps,i=r.revealOrder,l=r.tail;if(Ne(e,t,r.children,n),r=re.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&yc(e,n,t);else if(e.tag===19)yc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(q(re,r),(t.mode&1)===0)t.memoizedState=null;else switch(i){case"forwards":for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&fl(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Ro(t,!1,i,n,l);break;case"backwards":for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&fl(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Ro(t,!0,n,null,l);break;case"together":Ro(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Rt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),dn|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(P(153));if(t.child!==null){for(e=t.child,n=Gt(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Gt(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Jv(e,t,n){switch(t.tag){case 3:sd(t),Bn();break;case 5:Ff(t);break;case 1:je(t.type)&&ll(t);break;case 4:Qu(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,i=t.memoizedProps.value;q(ol,r._currentValue),r._currentValue=i;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(q(re,re.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?ad(e,t,n):(q(re,re.current&1),e=Rt(e,t,n),e!==null?e.sibling:null);q(re,re.current&1);break;case 19:if(r=(n&t.childLanes)!==0,(e.flags&128)!==0){if(r)return cd(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),q(re,re.current),r)break;return null;case 22:case 23:return t.lanes=0,od(e,t,n)}return Rt(e,t,n)}function qv(e,t){switch(Vu(t),t.tag){case 1:return je(t.type)&&il(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Yn(),ee(Ae),ee(Pe),Ku(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Yu(t),null;case 13:if(ee(re),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(P(340));Bn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ee(re),null;case 4:return Yn(),null;case 10:return $u(t.type._context),null;case 22:case 23:return is(),null;case 24:return null;default:return null}}var ji=!1,Te=!1,bv=typeof WeakSet=="function"?WeakSet:Set,L=null;function Fn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){oe(e,t,r)}else n.current=null}function mu(e,t,n){try{n()}catch(r){oe(e,t,r)}}var wc=!1;function eg(e,t){if(qo=el,e=vf(),Au(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,l=r.focusNode;r=r.focusOffset;try{n.nodeType,l.nodeType}catch{n=null;break e}var s=0,c=-1,f=-1,m=0,k=0,E=e,w=null;t:for(;;){for(var O;E!==n||i!==0&&E.nodeType!==3||(c=s+i),E!==l||r!==0&&E.nodeType!==3||(f=s+r),E.nodeType===3&&(s+=E.nodeValue.length),(O=E.firstChild)!==null;)w=E,E=O;for(;;){if(E===e)break t;if(w===n&&++m===i&&(c=s),w===l&&++k===r&&(f=s),(O=E.nextSibling)!==null)break;E=w,w=E.parentNode}E=O}n=c===-1||f===-1?null:{start:c,end:f}}else n=null}n=n||{start:0,end:0}}else n=null;for(bo={focusedElem:e,selectionRange:n},el=!1,L=t;L!==null;)if(t=L,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,L=e;else for(;L!==null;){t=L;try{var R=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(R!==null){var U=R.memoizedProps,Z=R.memoizedState,h=t.stateNode,p=h.getSnapshotBeforeUpdate(t.elementType===t.type?U:rt(t.type,U),Z);h.__reactInternalSnapshotBeforeUpdate=p}break;case 3:var g=t.stateNode.containerInfo;if(g.nodeType===1)g.textContent="";else if(g.nodeType===9){var T=g.body;T!=null&&(T.textContent="")}break;case 5:case 6:case 4:case 17:break;default:throw Error(P(163))}}catch(D){oe(t,t.return,D)}if(e=t.sibling,e!==null){e.return=t.return,L=e;break}L=t.return}return R=wc,wc=!1,R}function Nr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var l=i.destroy;i.destroy=void 0,l!==void 0&&mu(t,n,l)}i=i.next}while(i!==r)}}function Rl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function hu(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function fd(e){var t=e.alternate;t!==null&&(e.alternate=null,fd(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[mt],delete t[Hr],delete t[nu],delete t[Av],delete t[jv])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function dd(e){return e.tag===5||e.tag===3||e.tag===4}function _c(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||dd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function vu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=rl));else if(r!==4&&(e=e.child,e!==null))for(vu(e,t,n),e=e.sibling;e!==null;)vu(e,t,n),e=e.sibling}function gu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(gu(e,t,n),e=e.sibling;e!==null;)gu(e,t,n),e=e.sibling}var ge=null,it=!1;function zt(e,t,n){for(n=n.child;n!==null;)pd(e,t,n),n=n.sibling}function pd(e,t,n){if(ht&&typeof ht.onCommitFiberUnmount=="function")try{ht.onCommitFiberUnmount(_l,n)}catch{}switch(n.tag){case 5:Te||Fn(n,t);case 6:var r=ge,i=it;ge=null,zt(e,t,n),ge=r,it=i,ge!==null&&(it?(e=ge,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):ge.removeChild(n.stateNode));break;case 18:ge!==null&&(it?(e=ge,n=n.stateNode,e.nodeType===8?ko(e.parentNode,n):e.nodeType===1&&ko(e,n),Ar(e)):ko(ge,n.stateNode));break;case 4:r=ge,i=it,ge=n.stateNode.containerInfo,it=!0,zt(e,t,n),ge=r,it=i;break;case 0:case 11:case 14:case 15:if(!Te&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var l=i,s=l.destroy;l=l.tag,s!==void 0&&((l&2)!==0||(l&4)!==0)&&mu(n,t,s),i=i.next}while(i!==r)}zt(e,t,n);break;case 1:if(!Te&&(Fn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(c){oe(n,t,c)}zt(e,t,n);break;case 21:zt(e,t,n);break;case 22:n.mode&1?(Te=(r=Te)||n.memoizedState!==null,zt(e,t,n),Te=r):zt(e,t,n);break;default:zt(e,t,n)}}function Sc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new bv),t.forEach(function(r){var i=ag.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function nt(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=s),r&=~l}if(r=i,r=ae()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ng(r/1960))-r,10e?16:e,Ut===null)var r=!1;else{if(e=Ut,Ut=null,vl=0,(Y&6)!==0)throw Error(P(331));var i=Y;for(Y|=4,L=e.current;L!==null;){var l=L,s=l.child;if((L.flags&16)!==0){var c=l.deletions;if(c!==null){for(var f=0;fae()-ns?un(e,0):ts|=n),Ue(e,t)}function kd(e,t){t===0&&((e.mode&1)===0?t=1:(t=Ei,Ei<<=1,(Ei&130023424)===0&&(Ei=4194304)));var n=Oe();e=Ol(e,t),e!==null&&(Xr(e,t,n),Ue(e,n))}function sg(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),kd(e,n)}function ag(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(P(314))}r!==null&&r.delete(t),kd(e,n)}var Cd;Cd=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ae.current)Ie=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Ie=!1,Jv(e,t,n);Ie=(e.flags&131072)!==0}else Ie=!1,ne&&(t.flags&1048576)!==0&&Of(t,cl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps;var i=Vn(t,Pe.current);$n(t,n),i=Xu(null,t,r,e,i,n);var l=Zu();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,je(r)?(l=!0,ll(t)):l=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Wu(t),i.updater=Pl,t.stateNode=i,i._reactInternals=t,ou(t,r,e,n),t=du(null,t,r,!0,l,n)):(t.tag=0,ne&&l&&Hu(t),Ne(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=fg(r),e=rt(r,e),i){case 0:t=fu(null,t,r,e,n);break e;case 1:t=pc(null,t,r,e,n);break e;case 11:t=fc(null,t,r,e,n);break e;case 14:t=dc(null,t,r,rt(r.type,e),n);break e}throw Error(P(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:rt(r,i),fu(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:rt(r,i),pc(e,t,r,i,n);case 3:e:{if(sd(t),e===null)throw Error(P(387));r=t.pendingProps,l=t.memoizedState,i=l.element,xf(e,t),sl(t,r,null,n);var s=t.memoizedState;if(r=s.element,l.isDehydrated)if(l={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){i=Error(P(423)),t=mc(e,t,r,n,i);break e}else if(r!==i){i=Error(P(424)),t=mc(e,t,r,n,i);break e}else for(Me=kt(t.stateNode.containerInfo.firstChild),We=t,ne=!0,lt=null,n=zf(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Bn(),r===i){t=Rt(e,t,n);break e}Ne(e,t,r,n)}t=t.child}return t;case 5:return Ff(t),e===null&&su(t),r=t.type,i=t.pendingProps,l=e!==null?e.memoizedProps:null,s=i.children,eu(r,i)?s=null:l!==null&&eu(r,l)&&(t.flags|=32),ud(e,t),Ne(e,t,s,n),t.child;case 6:return e===null&&su(t),null;case 13:return ad(e,t,n);case 4:return Qu(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Qn(t,null,r,n):Ne(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:rt(r,i),fc(e,t,r,i,n);case 7:return Ne(e,t,t.pendingProps,n),t.child;case 8:return Ne(e,t,t.pendingProps.children,n),t.child;case 12:return Ne(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,l=t.memoizedProps,s=i.value,q(ol,r._currentValue),r._currentValue=s,l!==null)if(st(l.value,s)){if(l.children===i.children&&!Ae.current){t=Rt(e,t,n);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var c=l.dependencies;if(c!==null){s=l.child;for(var f=c.firstContext;f!==null;){if(f.context===r){if(l.tag===1){f=Tt(-1,n&-n),f.tag=2;var m=l.updateQueue;if(m!==null){m=m.shared;var k=m.pending;k===null?f.next=f:(f.next=k.next,k.next=f),m.pending=f}}l.lanes|=n,f=l.alternate,f!==null&&(f.lanes|=n),iu(l.return,n,t),c.lanes|=n;break}f=f.next}}else if(l.tag===10)s=l.type===t.type?null:l.child;else if(l.tag===18){if(s=l.return,s===null)throw Error(P(341));s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),iu(s,n,t),s=l.sibling}else s=l.child;if(s!==null)s.return=l;else for(s=l;s!==null;){if(s===t){s=null;break}if(l=s.sibling,l!==null){l.return=s.return,s=l;break}s=s.return}l=s}Ne(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,$n(t,n),i=qe(i),r=r(i),t.flags|=1,Ne(e,t,r,n),t.child;case 14:return r=t.type,i=rt(r,t.pendingProps),i=rt(r.type,i),dc(e,t,r,i,n);case 15:return ld(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:rt(r,i),e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,je(r)?(e=!0,ll(t)):e=!1,$n(t,n),Nf(t,r,i),ou(t,r,i,n),du(null,t,r,!0,e,n);case 19:return cd(e,t,n);case 22:return od(e,t,n)}throw Error(P(156,t.tag))};function Ed(e,t){return Zc(e,t)}function cg(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Xe(e,t,n,r){return new cg(e,t,n,r)}function os(e){return e=e.prototype,!(!e||!e.isReactComponent)}function fg(e){if(typeof e=="function")return os(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Pu)return 11;if(e===xu)return 14}return 2}function Gt(e,t){var n=e.alternate;return n===null?(n=Xe(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Gi(e,t,n,r,i,l){var s=2;if(r=e,typeof e=="function")os(e)&&(s=1);else if(typeof e=="string")s=5;else e:switch(e){case Tn:return sn(n.children,i,l,t);case Tu:s=8,i|=8;break;case Lo:return e=Xe(12,n,t,i|2),e.elementType=Lo,e.lanes=l,e;case zo:return e=Xe(13,n,t,i),e.elementType=zo,e.lanes=l,e;case Fo:return e=Xe(19,n,t,i),e.elementType=Fo,e.lanes=l,e;case zc:return yl(n,i,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Dc:s=10;break e;case Lc:s=9;break e;case Pu:s=11;break e;case xu:s=14;break e;case Ft:s=16,r=null;break e}throw Error(P(130,e==null?e:typeof e,""))}return t=Xe(s,n,t,i),t.elementType=e,t.type=r,t.lanes=l,t}function sn(e,t,n,r){return e=Xe(7,e,r,t),e.lanes=n,e}function yl(e,t,n,r){return e=Xe(22,e,r,t),e.elementType=zc,e.lanes=n,e.stateNode={},e}function No(e,t,n){return e=Xe(6,e,null,t),e.lanes=n,e}function Oo(e,t,n){return t=Xe(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function dg(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=mo(0),this.expirationTimes=mo(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=mo(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function us(e,t,n,r,i,l,s,c,f){return e=new dg(e,t,n,c,f),t===1?(t=1,l===!0&&(t|=8)):t=0,l=Xe(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Wu(l),e}function pg(e,t,n){var r=3{"use strict";function Nd(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Nd)}catch(e){console.error(e)}}Nd(),Od.exports=Rd()});var zd=Dt(fs=>{"use strict";var Ld=Dd();fs.createRoot=Ld.createRoot,fs.hydrateRoot=Ld.hydrateRoot;var Kg});var Vd=ai(Xs(),1),V=ai(mi(),1),_e=ai(mi(),1),Bd=ai(zd(),1);var Md=Symbol("Comlink.proxy"),yg=Symbol("Comlink.endpoint"),wg=Symbol("Comlink.releaseProxy"),ds=Symbol("Comlink.thrown"),Id=e=>typeof e=="object"&&e!==null||typeof e=="function",_g={canHandle:e=>Id(e)&&e[Md],serialize(e){let{port1:t,port2:n}=new MessageChannel;return jd(e,t),[n,[n]]},deserialize(e){return e.start(),$d(e)}},Sg={canHandle:e=>Id(e)&&ds in e,serialize({value:e}){let t;return e instanceof Error?t={isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:t={isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(new Error(e.value.message),e.value):e.value}},Ad=new Map([["proxy",_g],["throw",Sg]]);function jd(e,t=self){t.addEventListener("message",function n(r){if(!r||!r.data)return;let{id:i,type:l,path:s}=Object.assign({path:[]},r.data),c=(r.data.argumentList||[]).map(vn),f;try{let m=s.slice(0,-1).reduce((E,w)=>E[w],e),k=s.reduce((E,w)=>E[w],e);switch(l){case"GET":f=k;break;case"SET":m[s.slice(-1)[0]]=vn(r.data.value),f=!0;break;case"APPLY":f=k.apply(m,c);break;case"CONSTRUCT":{let E=new k(...c);f=Eg(E)}break;case"ENDPOINT":{let{port1:E,port2:w}=new MessageChannel;jd(e,w),f=Hd(E,[E])}break;case"RELEASE":f=void 0;break;default:return}}catch(m){f={value:m,[ds]:0}}Promise.resolve(f).catch(m=>({value:m,[ds]:0})).then(m=>{let[k,E]=ms(m);t.postMessage(Object.assign(Object.assign({},k),{id:i}),E),l==="RELEASE"&&(t.removeEventListener("message",n),Ud(t))})}),t.start&&t.start()}function kg(e){return e.constructor.name==="MessagePort"}function Ud(e){kg(e)&&e.close()}function $d(e,t){return ps(e,[],t)}function Ml(e){if(e)throw new Error("Proxy has been released and is not useable")}function ps(e,t=[],n=function(){}){let r=!1,i=new Proxy(n,{get(l,s){if(Ml(r),s===wg)return()=>Zn(e,{type:"RELEASE",path:t.map(c=>c.toString())}).then(()=>{Ud(e),r=!0});if(s==="then"){if(t.length===0)return{then:()=>i};let c=Zn(e,{type:"GET",path:t.map(f=>f.toString())}).then(vn);return c.then.bind(c)}return ps(e,[...t,s])},set(l,s,c){Ml(r);let[f,m]=ms(c);return Zn(e,{type:"SET",path:[...t,s].map(k=>k.toString()),value:f},m).then(vn)},apply(l,s,c){Ml(r);let f=t[t.length-1];if(f===yg)return Zn(e,{type:"ENDPOINT"}).then(vn);if(f==="bind")return ps(e,t.slice(0,-1));let[m,k]=Fd(c);return Zn(e,{type:"APPLY",path:t.map(E=>E.toString()),argumentList:m},k).then(vn)},construct(l,s){Ml(r);let[c,f]=Fd(s);return Zn(e,{type:"CONSTRUCT",path:t.map(m=>m.toString()),argumentList:c},f).then(vn)}});return i}function Cg(e){return Array.prototype.concat.apply([],e)}function Fd(e){let t=e.map(ms);return[t.map(n=>n[0]),Cg(t.map(n=>n[1]))]}var Wd=new WeakMap;function Hd(e,t){return Wd.set(e,t),e}function Eg(e){return Object.assign(e,{[Md]:!0})}function ms(e){for(let[t,n]of Ad)if(n.canHandle(e)){let[r,i]=n.serialize(e);return[{type:"HANDLER",name:t,value:r},i]}return[{type:"RAW",value:e},Wd.get(e)||[]]}function vn(e){switch(e.type){case"HANDLER":return Ad.get(e.name).deserialize(e.value);case"RAW":return e.value}}function Zn(e,t,n){return new Promise(r=>{let i=Tg();e.addEventListener("message",function l(s){!s.data||!s.data.id||s.data.id!==i||(e.removeEventListener("message",l),r(s.data))}),e.start&&e.start(),e.postMessage(Object.assign({id:i},t),n)})}function Tg(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}function Pg(e){let t=new WeakMap;return{postMessage:e.postMessage.bind(e),addEventListener:(n,r)=>{let i=l=>{"handleEvent"in r?r.handleEvent({data:l}):r({data:l})};e.on("message",i),t.set(r,i)},removeEventListener:(n,r)=>{let i=t.get(r);!i||(e.off("message",i),t.delete(r))},start:e.start&&e.start.bind(e)}}function xg(e){let t;if(typeof OffscreenCanvas<"u")t=new OffscreenCanvas(e.width,e.height);else if(typeof HTMLCanvasElement<"u"){let r=document.createElement("canvas");r.width=e.width,r.height=e.height,t=r}else throw new Error("No canvas implementation available");let n=t.getContext("2d");return n.drawImage(e,0,0,e.width,e.height),n.getImageData(0,0,e.width,e.height)}function Rg(){return new URL("./tesseract-worker.js",import.meta.url).href}function Ng(e){return new Worker(e)}var Il=class{constructor({createWorker:t=Ng,wasmBinary:n,workerURL:r=Rg()}={}){let i=t(r);this._worker=i,this._progressListeners=[];let l="addEventListener"in i?i:Pg(i),s=$d(l),{port1:c,port2:f}=new MessageChannel;this._progressChannel=c,this._progressChannel.onmessage=m=>{let{progress:k}=m.data;for(let E of this._progressListeners)E(k)},this._ocrEngine=s.createOCREngine({wasmBinary:n},Hd(f,[f]))}async destroy(){this._worker.terminate(),this._progressChannel.close()}async loadModel(t){let n=await this._ocrEngine;return typeof t=="string"&&(t=await(await fetch(t)).arrayBuffer()),n.loadModel(t)}async loadImage(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap&&(t=xg(t)),(await this._ocrEngine).loadImage(t)}async clearImage(){return(await this._ocrEngine).clearImage()}async getBoundingBoxes(t){return(await this._ocrEngine).getBoundingBoxes(t)}async getTextBoxes(t,n){let r=await this._ocrEngine;n&&this._addProgressListener(n);try{return await r.getTextBoxes(t)}finally{n&&this._removeProgressListener(n)}}async getText(t){let n=await this._ocrEngine;t&&this._addProgressListener(t);try{return await n.getText()}finally{t&&this._removeProgressListener(t)}}async getHOCR(t){let n=await this._ocrEngine;t&&this._addProgressListener(t);try{return await n.getHOCR()}finally{t&&this._removeProgressListener(t)}}async getOrientation(){return(await this._ocrEngine).getOrientation()}_addProgressListener(t){this._progressListeners.push(t)}_removeProgressListener(t){this._progressListeners=this._progressListeners.filter(n=>n!==t)}},Xg=(()=>{var e=import.meta.url;return function(n){n=n||{};var n=typeof n<"u"?n:{},r,i;n.ready=new Promise(function(u,o){r=u,i=o});var l=Object.assign({},n),s="./this.program",c=!0,f="";function m(u){return n.locateFile?n.locateFile(u,f):f+u}var k;typeof document<"u"&&document.currentScript&&(f=document.currentScript.src),e&&(f=e),f.indexOf("blob:")!==0?f=f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):f="";var E=n.print||console.log.bind(console),w=n.printErr||console.warn.bind(console);Object.assign(n,l),l=null,n.arguments,n.thisProgram&&(s=n.thisProgram),n.quit;var O=4,R;n.wasmBinary&&(R=n.wasmBinary),n.noExitRuntime,typeof WebAssembly!="object"&&qn("no native wasm support detected");var U,Z=!1;function h(u,o){u||qn(o)}var p=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function g(u,o,a){for(var d=o+a,v=o;u[v]&&!(v>=d);)++v;if(v-o>16&&u.buffer&&p)return p.decode(u.subarray(o,v));for(var S="";o>10,56320|N&1023)}}return S}function T(u,o){return u?g($,u,o):""}function D(u,o,a,d){if(!(d>0))return 0;for(var v=a,S=a+d-1,_=0;_=55296&&y<=57343){var C=u.charCodeAt(++_);y=65536+((y&1023)<<10)|C&1023}if(y<=127){if(a>=S)break;o[a++]=y}else if(y<=2047){if(a+1>=S)break;o[a++]=192|y>>6,o[a++]=128|y&63}else if(y<=65535){if(a+2>=S)break;o[a++]=224|y>>12,o[a++]=128|y>>6&63,o[a++]=128|y&63}else{if(a+3>=S)break;o[a++]=240|y>>18,o[a++]=128|y>>12&63,o[a++]=128|y>>6&63,o[a++]=128|y&63}}return o[a]=0,a-v}function F(u,o,a){return D(u,$,o,a)}function M(u){for(var o=0,a=0;a=55296&&d<=57343&&(d=65536+((d&1023)<<10)|u.charCodeAt(++a)&1023),d<=127?++o:d<=2047?o+=2:d<=65535?o+=3:o+=4}return o}var I,Q,$,ce,gt,z,G,hs,vs;function gs(u){I=u,n.HEAP8=Q=new Int8Array(u),n.HEAP16=ce=new Int16Array(u),n.HEAP32=z=new Int32Array(u),n.HEAPU8=$=new Uint8Array(u),n.HEAPU16=gt=new Uint16Array(u),n.HEAPU32=G=new Uint32Array(u),n.HEAPF32=hs=new Float32Array(u),n.HEAPF64=vs=new Float64Array(u)}n.INITIAL_MEMORY;var ys,ws=[],_s=[],Ss=[];function Qd(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Gd(n.preRun.shift());Al(ws)}function Yd(){Al(_s)}function Kd(){if(n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)Zd(n.postRun.shift());Al(Ss)}function Gd(u){ws.unshift(u)}function Xd(u){_s.unshift(u)}function Zd(u){Ss.unshift(u)}var qt=0,Jn=null;function Jd(u){qt++,n.monitorRunDependencies&&n.monitorRunDependencies(qt)}function qd(u){if(qt--,n.monitorRunDependencies&&n.monitorRunDependencies(qt),qt==0&&Jn){var o=Jn;Jn=null,o()}}function qn(u){n.onAbort&&n.onAbort(u),u="Aborted("+u+")",w(u),Z=!0,u+=". Build with -sASSERTIONS for more info.";var o=new WebAssembly.RuntimeError(u);throw i(o),o}var bd="data:application/octet-stream;base64,";function ks(u){return u.startsWith(bd)}var Qe;n.locateFile?(Qe="tesseract-core.wasm",ks(Qe)||(Qe=m(Qe))):Qe=new URL("tesseract-core.wasm",import.meta.url).toString();function Cs(u){try{if(u==Qe&&R)return new Uint8Array(R);if(!k)throw"both async and sync fetching of the wasm failed"}catch(o){qn(o)}}function ep(){return!R&&c&&typeof fetch=="function"?fetch(Qe,{credentials:"same-origin"}).then(function(u){if(!u.ok)throw"failed to load wasm binary file at '"+Qe+"'";return u.arrayBuffer()}).catch(function(){return Cs(Qe)}):Promise.resolve().then(function(){return Cs(Qe)})}function tp(){var u={a:Xm};function o(_,y){var C=_.exports;n.asm=C,U=n.asm.W,gs(U.buffer),ys=n.asm.Z,Xd(n.asm.X),qd()}Jd();function a(_){o(_.instance)}function d(_){return ep().then(function(y){return WebAssembly.instantiate(y,u)}).then(function(y){return y}).then(_,function(y){w("failed to asynchronously prepare wasm: "+y),qn(y)})}function v(){return!R&&typeof WebAssembly.instantiateStreaming=="function"&&!ks(Qe)&&typeof fetch=="function"?fetch(Qe,{credentials:"same-origin"}).then(function(_){var y=WebAssembly.instantiateStreaming(_,u);return y.then(a,function(C){return w("wasm streaming compile failed: "+C),w("falling back to ArrayBuffer instantiation"),d(a)})}):d(a)}if(n.instantiateWasm)try{var S=n.instantiateWasm(u,o);return S}catch(_){return w("Module.instantiateWasm callback failed with error: "+_),!1}return v().catch(i),{}}function Al(u){for(;u.length>0;)u.shift()(n)}function np(u,o){Q.set(u,o)}function rp(u){return lr(u+24)+24}function ip(u){this.excPtr=u,this.ptr=u-24,this.set_type=function(o){G[this.ptr+4>>2]=o},this.get_type=function(){return G[this.ptr+4>>2]},this.set_destructor=function(o){G[this.ptr+8>>2]=o},this.get_destructor=function(){return G[this.ptr+8>>2]},this.set_refcount=function(o){z[this.ptr>>2]=o},this.set_caught=function(o){o=o?1:0,Q[this.ptr+12>>0]=o},this.get_caught=function(){return Q[this.ptr+12>>0]!=0},this.set_rethrown=function(o){o=o?1:0,Q[this.ptr+13>>0]=o},this.get_rethrown=function(){return Q[this.ptr+13>>0]!=0},this.init=function(o,a){this.set_adjusted_ptr(0),this.set_type(o),this.set_destructor(a),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var o=z[this.ptr>>2];z[this.ptr>>2]=o+1},this.release_ref=function(){var o=z[this.ptr>>2];return z[this.ptr>>2]=o-1,o===1},this.set_adjusted_ptr=function(o){G[this.ptr+16>>2]=o},this.get_adjusted_ptr=function(){return G[this.ptr+16>>2]},this.get_exception_ptr=function(){var o=Ys(this.get_type());if(o)return G[this.excPtr>>2];var a=this.get_adjusted_ptr();return a!==0?a:this.excPtr}}function lp(u,o,a){var d=new ip(u);throw d.init(o,a),u}function op(u,o,a){return 0}function up(u,o){}function sp(u,o,a){return 0}function ap(u,o,a,d){}function cp(u){}function fp(u,o,a){}var br={};function Es(u){for(;u.length;){var o=u.pop(),a=u.pop();a(o)}}function bn(u){return this.fromWireType(z[u>>2])}var gn={},bt={},ei={},dp=48,pp=57;function jl(u){if(u===void 0)return"_unknown";u=u.replace(/[^a-zA-Z0-9_]/g,"$");var o=u.charCodeAt(0);return o>=dp&&o<=pp?"_"+u:u}function ti(u,o){return u=jl(u),new Function("body","return function "+u+`() { + "use strict"; return body.apply(this, arguments); +}; +`)(o)}function Ul(u,o){var a=ti(o,function(d){this.name=o,this.message=d;var v=new Error(d).stack;v!==void 0&&(this.stack=this.toString()+` +`+v.replace(/^Error(:[^\n]*)?\n/,""))});return a.prototype=Object.create(u.prototype),a.prototype.constructor=a,a.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},a}var Ts=void 0;function ni(u){throw new Ts(u)}function yn(u,o,a){u.forEach(function(y){ei[y]=o});function d(y){var C=a(y);C.length!==u.length&&ni("Mismatched type converter count");for(var N=0;N{bt.hasOwnProperty(y)?v[C]=bt[y]:(S.push(y),gn.hasOwnProperty(y)||(gn[y]=[]),gn[y].push(()=>{v[C]=bt[y],++_,_===S.length&&d(v)}))}),S.length===0&&d(v)}function mp(u){var o=br[u];delete br[u];var a=o.rawConstructor,d=o.rawDestructor,v=o.fields,S=v.map(_=>_.getterReturnType).concat(v.map(_=>_.setterArgumentType));yn([u],S,_=>{var y={};return v.forEach((C,N)=>{var A=C.fieldName,H=_[N],W=C.getter,te=C.getterContext,ue=_[N+v.length],se=C.setter,xe=C.setterContext;y[A]={read:Le=>H.fromWireType(W(te,Le)),write:(Le,x)=>{var j=[];se(xe,Le,ue.toWireType(j,x)),Es(j)}}}),[{name:o.name,fromWireType:function(C){var N={};for(var A in y)N[A]=y[A].read(C);return d(C),N},toWireType:function(C,N){for(var A in y)if(!(A in N))throw new TypeError('Missing field: "'+A+'"');var H=a();for(A in y)y[A].write(H,N[A]);return C!==null&&C.push(d,H),H},argPackAdvance:8,readValueFromPointer:bn,destructorFunction:d}]})}function hp(u,o,a,d,v){}function ri(u){switch(u){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+u)}}function vp(){for(var u=new Array(256),o=0;o<256;++o)u[o]=String.fromCharCode(o);Ps=u}var Ps=void 0;function Se(u){for(var o="",a=u;$[a];)o+=Ps[$[a++]];return o}var wn=void 0;function K(u){throw new wn(u)}function at(u,o,a={}){if(!("argPackAdvance"in o))throw new TypeError("registerType registeredInstance requires argPackAdvance");var d=o.name;if(u||K('type "'+d+'" must have a positive integer typeid pointer'),bt.hasOwnProperty(u)){if(a.ignoreDuplicateRegistrations)return;K("Cannot register type '"+d+"' twice")}if(bt[u]=o,delete ei[u],gn.hasOwnProperty(u)){var v=gn[u];delete gn[u],v.forEach(S=>S())}}function gp(u,o,a,d,v){var S=ri(a);o=Se(o),at(u,{name:o,fromWireType:function(_){return!!_},toWireType:function(_,y){return y?d:v},argPackAdvance:8,readValueFromPointer:function(_){var y;if(a===1)y=Q;else if(a===2)y=ce;else if(a===4)y=z;else throw new TypeError("Unknown boolean type size: "+o);return this.fromWireType(y[_>>S])},destructorFunction:null})}function yp(u){if(!(this instanceof Ot)||!(u instanceof Ot))return!1;for(var o=this.$$.ptrType.registeredClass,a=this.$$.ptr,d=u.$$.ptrType.registeredClass,v=u.$$.ptr;o.baseClass;)a=o.upcast(a),o=o.baseClass;for(;d.baseClass;)v=d.upcast(v),d=d.baseClass;return o===d&&a===v}function wp(u){return{count:u.count,deleteScheduled:u.deleteScheduled,preservePointerOnDelete:u.preservePointerOnDelete,ptr:u.ptr,ptrType:u.ptrType,smartPtr:u.smartPtr,smartPtrType:u.smartPtrType}}function $l(u){function o(a){return a.$$.ptrType.registeredClass.name}K(o(u)+" instance already deleted")}var Wl=!1;function xs(u){}function _p(u){u.smartPtr?u.smartPtrType.rawDestructor(u.smartPtr):u.ptrType.registeredClass.rawDestructor(u.ptr)}function Rs(u){u.count.value-=1;var o=u.count.value===0;o&&_p(u)}function Ns(u,o,a){if(o===a)return u;if(a.baseClass===void 0)return null;var d=Ns(u,o,a.baseClass);return d===null?null:a.downcast(d)}var Os={};function Sp(){return Object.keys(nr).length}function kp(){var u=[];for(var o in nr)nr.hasOwnProperty(o)&&u.push(nr[o]);return u}var er=[];function Hl(){for(;er.length;){var u=er.pop();u.$$.deleteScheduled=!1,u.delete()}}var tr=void 0;function Cp(u){tr=u,er.length&&tr&&tr(Hl)}function Ep(){n.getInheritedInstanceCount=Sp,n.getLiveInheritedInstances=kp,n.flushPendingDeletes=Hl,n.setDelayFunction=Cp}var nr={};function Tp(u,o){for(o===void 0&&K("ptr should not be undefined");u.baseClass;)o=u.upcast(o),u=u.baseClass;return o}function Pp(u,o){return o=Tp(u,o),nr[o]}function ii(u,o){(!o.ptrType||!o.ptr)&&ni("makeClassHandle requires ptr and ptrType");var a=!!o.smartPtrType,d=!!o.smartPtr;return a!==d&&ni("Both smartPtrType and smartPtr must be specified"),o.count={value:1},rr(Object.create(u,{$$:{value:o}}))}function xp(u){var o=this.getPointee(u);if(!o)return this.destructor(u),null;var a=Pp(this.registeredClass,o);if(a!==void 0){if(a.$$.count.value===0)return a.$$.ptr=o,a.$$.smartPtr=u,a.clone();var d=a.clone();return this.destructor(u),d}function v(){return this.isSmartPointer?ii(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:o,smartPtrType:this,smartPtr:u}):ii(this.registeredClass.instancePrototype,{ptrType:this,ptr:u})}var S=this.registeredClass.getActualType(o),_=Os[S];if(!_)return v.call(this);var y;this.isConst?y=_.constPointerType:y=_.pointerType;var C=Ns(o,this.registeredClass,y.registeredClass);return C===null?v.call(this):this.isSmartPointer?ii(y.registeredClass.instancePrototype,{ptrType:y,ptr:C,smartPtrType:this,smartPtr:u}):ii(y.registeredClass.instancePrototype,{ptrType:y,ptr:C})}function rr(u){return typeof FinalizationRegistry>"u"?(rr=o=>o,u):(Wl=new FinalizationRegistry(o=>{Rs(o.$$)}),rr=o=>{var a=o.$$,d=!!a.smartPtr;if(d){var v={$$:a};Wl.register(o,v,o)}return o},xs=o=>Wl.unregister(o),rr(u))}function Rp(){if(this.$$.ptr||$l(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var u=rr(Object.create(Object.getPrototypeOf(this),{$$:{value:wp(this.$$)}}));return u.$$.count.value+=1,u.$$.deleteScheduled=!1,u}function Np(){this.$$.ptr||$l(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&K("Object already scheduled for deletion"),xs(this),Rs(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Op(){return!this.$$.ptr}function Dp(){return this.$$.ptr||$l(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&K("Object already scheduled for deletion"),er.push(this),er.length===1&&tr&&tr(Hl),this.$$.deleteScheduled=!0,this}function Lp(){Ot.prototype.isAliasOf=yp,Ot.prototype.clone=Rp,Ot.prototype.delete=Np,Ot.prototype.isDeleted=Op,Ot.prototype.deleteLater=Dp}function Ot(){}function Ds(u,o,a){if(u[o].overloadTable===void 0){var d=u[o];u[o]=function(){return u[o].overloadTable.hasOwnProperty(arguments.length)||K("Function '"+a+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+u[o].overloadTable+")!"),u[o].overloadTable[arguments.length].apply(this,arguments)},u[o].overloadTable=[],u[o].overloadTable[d.argCount]=d}}function Ls(u,o,a){n.hasOwnProperty(u)?((a===void 0||n[u].overloadTable!==void 0&&n[u].overloadTable[a]!==void 0)&&K("Cannot register public name '"+u+"' twice"),Ds(n,u,u),n.hasOwnProperty(a)&&K("Cannot register multiple overloads of a function with the same number of arguments ("+a+")!"),n[u].overloadTable[a]=o):(n[u]=o,a!==void 0&&(n[u].numArguments=a))}function zp(u,o,a,d,v,S,_,y){this.name=u,this.constructor=o,this.instancePrototype=a,this.rawDestructor=d,this.baseClass=v,this.getActualType=S,this.upcast=_,this.downcast=y,this.pureVirtualFunctions=[]}function Vl(u,o,a){for(;o!==a;)o.upcast||K("Expected null or instance of "+a.name+", got an instance of "+o.name),u=o.upcast(u),o=o.baseClass;return u}function Fp(u,o){if(o===null)return this.isReference&&K("null is not a valid "+this.name),0;o.$$||K('Cannot pass "'+Kl(o)+'" as a '+this.name),o.$$.ptr||K("Cannot pass deleted object as a pointer of type "+this.name);var a=o.$$.ptrType.registeredClass,d=Vl(o.$$.ptr,a,this.registeredClass);return d}function Mp(u,o){var a;if(o===null)return this.isReference&&K("null is not a valid "+this.name),this.isSmartPointer?(a=this.rawConstructor(),u!==null&&u.push(this.rawDestructor,a),a):0;o.$$||K('Cannot pass "'+Kl(o)+'" as a '+this.name),o.$$.ptr||K("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&o.$$.ptrType.isConst&&K("Cannot convert argument of type "+(o.$$.smartPtrType?o.$$.smartPtrType.name:o.$$.ptrType.name)+" to parameter type "+this.name);var d=o.$$.ptrType.registeredClass;if(a=Vl(o.$$.ptr,d,this.registeredClass),this.isSmartPointer)switch(o.$$.smartPtr===void 0&&K("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:o.$$.smartPtrType===this?a=o.$$.smartPtr:K("Cannot convert argument of type "+(o.$$.smartPtrType?o.$$.smartPtrType.name:o.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:a=o.$$.smartPtr;break;case 2:if(o.$$.smartPtrType===this)a=o.$$.smartPtr;else{var v=o.clone();a=this.rawShare(a,_n.toHandle(function(){v.delete()})),u!==null&&u.push(this.rawDestructor,a)}break;default:K("Unsupporting sharing policy")}return a}function Ip(u,o){if(o===null)return this.isReference&&K("null is not a valid "+this.name),0;o.$$||K('Cannot pass "'+Kl(o)+'" as a '+this.name),o.$$.ptr||K("Cannot pass deleted object as a pointer of type "+this.name),o.$$.ptrType.isConst&&K("Cannot convert argument of type "+o.$$.ptrType.name+" to parameter type "+this.name);var a=o.$$.ptrType.registeredClass,d=Vl(o.$$.ptr,a,this.registeredClass);return d}function Ap(u){return this.rawGetPointee&&(u=this.rawGetPointee(u)),u}function jp(u){this.rawDestructor&&this.rawDestructor(u)}function Up(u){u!==null&&u.delete()}function $p(){yt.prototype.getPointee=Ap,yt.prototype.destructor=jp,yt.prototype.argPackAdvance=8,yt.prototype.readValueFromPointer=bn,yt.prototype.deleteObject=Up,yt.prototype.fromWireType=xp}function yt(u,o,a,d,v,S,_,y,C,N,A){this.name=u,this.registeredClass=o,this.isReference=a,this.isConst=d,this.isSmartPointer=v,this.pointeeType=S,this.sharingPolicy=_,this.rawGetPointee=y,this.rawConstructor=C,this.rawShare=N,this.rawDestructor=A,!v&&o.baseClass===void 0?d?(this.toWireType=Fp,this.destructorFunction=null):(this.toWireType=Ip,this.destructorFunction=null):this.toWireType=Mp}function Wp(u,o,a){n.hasOwnProperty(u)||ni("Replacing nonexistant public symbol"),n[u].overloadTable!==void 0&&a!==void 0?n[u].overloadTable[a]=o:(n[u]=o,n[u].argCount=a)}function Hp(u,o,a){var d=n["dynCall_"+u];return a&&a.length?d.apply(null,[o].concat(a)):d.call(null,o)}function zs(u){return ys.get(u)}function Vp(u,o,a){if(u.includes("j"))return Hp(u,o,a);var d=zs(o).apply(null,a);return d}function Bp(u,o){var a=[];return function(){return a.length=0,Object.assign(a,arguments),Vp(u,o,a)}}function ct(u,o){u=Se(u);function a(){return u.includes("j")?Bp(u,o):zs(o)}var d=a();return typeof d!="function"&&K("unknown function pointer with signature "+u+": "+o),d}var Fs=void 0;function Ms(u){var o=Qs(u),a=Se(o);return wt(o),a}function Bl(u,o){var a=[],d={};function v(S){if(!d[S]&&!bt[S]){if(ei[S]){ei[S].forEach(v);return}a.push(S),d[S]=!0}}throw o.forEach(v),new Fs(u+": "+a.map(Ms).join([", "]))}function Qp(u,o,a,d,v,S,_,y,C,N,A,H,W){A=Se(A),S=ct(v,S),y&&(y=ct(_,y)),N&&(N=ct(C,N)),W=ct(H,W);var te=jl(A);Ls(te,function(){Bl("Cannot construct "+A+" due to unbound types",[d])}),yn([u,o,a],d?[d]:[],function(ue){ue=ue[0];var se,xe;d?(se=ue.registeredClass,xe=se.instancePrototype):xe=Ot.prototype;var Le=ti(te,function(){if(Object.getPrototypeOf(this)!==x)throw new wn("Use 'new' to construct "+A);if(j.constructor_body===void 0)throw new wn(A+" has no accessible constructor");var si=j.constructor_body[arguments.length];if(si===void 0)throw new wn("Tried to invoke ctor of "+A+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(j.constructor_body).toString()+") parameters instead!");return si.apply(this,arguments)}),x=Object.create(xe,{constructor:{value:Le}});Le.prototype=x;var j=new zp(A,Le,x,W,se,S,y,N),ze=new yt(A,j,!0,!1,!1),ve=new yt(A+"*",j,!1,!1,!1),en=new yt(A+" const*",j,!1,!0,!1);return Os[u]={pointerType:ve,constPointerType:en},Wp(te,Le),[ze,ve,en]})}function Is(u,o){for(var a=[],d=0;d>2]);return a}function Yp(u,o){if(!(u instanceof Function))throw new TypeError("new_ called with constructor type "+typeof u+" which is not a function");var a=ti(u.name||"unknownFunctionName",function(){});a.prototype=u.prototype;var d=new a,v=u.apply(d,o);return v instanceof Object?v:d}function As(u,o,a,d,v){var S=o.length;S<2&&K("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var _=o[1]!==null&&a!==null,y=!1,C=1;C0?", ":"")+H),W+=(N?"var rv = ":"")+"invoker(fn"+(H.length>0?", ":"")+H+`); +`,y)W+=`runDestructors(destructors); +`;else for(var C=_?1:2;C0);var _=Is(o,a);v=ct(d,v),yn([],[u],function(y){y=y[0];var C="constructor "+y.name;if(y.registeredClass.constructor_body===void 0&&(y.registeredClass.constructor_body=[]),y.registeredClass.constructor_body[o-1]!==void 0)throw new wn("Cannot register multiple constructors with identical number of parameters ("+(o-1)+") for class '"+y.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return y.registeredClass.constructor_body[o-1]=()=>{Bl("Cannot construct "+y.name+" due to unbound types",_)},yn([],_,function(N){return N.splice(1,0,null),y.registeredClass.constructor_body[o-1]=As(C,N,null,v,S),[]}),[]})}function Gp(u,o,a,d,v,S,_,y){var C=Is(a,d);o=Se(o),S=ct(v,S),yn([],[u],function(N){N=N[0];var A=N.name+"."+o;o.startsWith("@@")&&(o=Symbol[o.substring(2)]),y&&N.registeredClass.pureVirtualFunctions.push(o);function H(){Bl("Cannot call "+A+" due to unbound types",C)}var W=N.registeredClass.instancePrototype,te=W[o];return te===void 0||te.overloadTable===void 0&&te.className!==N.name&&te.argCount===a-2?(H.argCount=a-2,H.className=N.name,W[o]=H):(Ds(W,o,A),W[o].overloadTable[a-2]=H),yn([],C,function(ue){var se=As(A,ue,N,S,_);return W[o].overloadTable===void 0?(se.argCount=a-2,W[o]=se):W[o].overloadTable[a-2]=se,[]}),[]})}var Ql=[],et=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function js(u){u>4&&--et[u].refcount===0&&(et[u]=void 0,Ql.push(u))}function Xp(){for(var u=0,o=5;o(u||K("Cannot use deleted val. handle = "+u),et[u].value),toHandle:u=>{switch(u){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{var o=Ql.length?Ql.pop():et.length;return et[o]={refcount:1,value:u},o}}}};function qp(u,o){o=Se(o),at(u,{name:o,fromWireType:function(a){var d=_n.toValue(a);return js(a),d},toWireType:function(a,d){return _n.toHandle(d)},argPackAdvance:8,readValueFromPointer:bn,destructorFunction:null})}function bp(u,o,a){switch(o){case 0:return function(d){var v=a?Q:$;return this.fromWireType(v[d])};case 1:return function(d){var v=a?ce:gt;return this.fromWireType(v[d>>1])};case 2:return function(d){var v=a?z:G;return this.fromWireType(v[d>>2])};default:throw new TypeError("Unknown integer type: "+u)}}function em(u,o,a,d){var v=ri(a);o=Se(o);function S(){}S.values={},at(u,{name:o,constructor:S,fromWireType:function(_){return this.constructor.values[_]},toWireType:function(_,y){return y.value},argPackAdvance:8,readValueFromPointer:bp(o,v,d),destructorFunction:null}),Ls(o,S)}function Yl(u,o){var a=bt[u];return a===void 0&&K(o+" has unknown type "+Ms(u)),a}function tm(u,o,a){var d=Yl(u,"enum");o=Se(o);var v=d.constructor,S=Object.create(d.constructor.prototype,{value:{value:a},constructor:{value:ti(d.name+"_"+o,function(){})}});v.values[a]=S,v[o]=S}function Kl(u){if(u===null)return"null";var o=typeof u;return o==="object"||o==="array"||o==="function"?u.toString():""+u}function nm(u,o){switch(o){case 2:return function(a){return this.fromWireType(hs[a>>2])};case 3:return function(a){return this.fromWireType(vs[a>>3])};default:throw new TypeError("Unknown float type: "+u)}}function rm(u,o,a){var d=ri(a);o=Se(o),at(u,{name:o,fromWireType:function(v){return v},toWireType:function(v,S){return S},argPackAdvance:8,readValueFromPointer:nm(o,d),destructorFunction:null})}function im(u,o,a){switch(o){case 0:return a?function(v){return Q[v]}:function(v){return $[v]};case 1:return a?function(v){return ce[v>>1]}:function(v){return gt[v>>1]};case 2:return a?function(v){return z[v>>2]}:function(v){return G[v>>2]};default:throw new TypeError("Unknown integer type: "+u)}}function lm(u,o,a,d,v){o=Se(o);var S=ri(a),_=H=>H;if(d===0){var y=32-8*a;_=H=>H<>>y}var C=o.includes("unsigned"),N=(H,W)=>{},A;C?A=function(H,W){return N(W,this.name),W>>>0}:A=function(H,W){return N(W,this.name),W},at(u,{name:o,fromWireType:_,toWireType:A,argPackAdvance:8,readValueFromPointer:im(o,S,d!==0),destructorFunction:null})}function om(u,o,a){var d=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],v=d[o];function S(_){_=_>>2;var y=G,C=y[_],N=y[_+1];return new v(I,N,C)}a=Se(a),at(u,{name:a,fromWireType:S,argPackAdvance:8,readValueFromPointer:S},{ignoreDuplicateRegistrations:!0})}function um(u,o){o=Se(o);var a=o==="std::string";at(u,{name:o,fromWireType:function(d){var v=G[d>>2],S=d+4,_;if(a)for(var y=S,C=0;C<=v;++C){var N=S+C;if(C==v||$[N]==0){var A=N-y,H=T(y,A);_===void 0?_=H:(_+=String.fromCharCode(0),_+=H),y=N+1}}else{for(var W=new Array(v),C=0;C>2]=S,a&&_)F(v,C,S+1);else if(_)for(var N=0;N255&&(wt(C),K("String has UTF-16 code units that do not fit in 8 bits")),$[C+N]=A}else for(var N=0;N>1,v=d+o/2;!(d>=v)&>[d];)++d;if(a=d<<1,a-u>32&&Us)return Us.decode($.subarray(u,a));for(var S="",_=0;!(_>=o/2);++_){var y=ce[u+_*2>>1];if(y==0)break;S+=String.fromCharCode(y)}return S}function am(u,o,a){if(a===void 0&&(a=2147483647),a<2)return 0;a-=2;for(var d=o,v=a>1]=_,o+=2}return ce[o>>1]=0,o-d}function cm(u){return u.length*2}function fm(u,o){for(var a=0,d="";!(a>=o/4);){var v=z[u+a*4>>2];if(v==0)break;if(++a,v>=65536){var S=v-65536;d+=String.fromCharCode(55296|S>>10,56320|S&1023)}else d+=String.fromCharCode(v)}return d}function dm(u,o,a){if(a===void 0&&(a=2147483647),a<4)return 0;for(var d=o,v=d+a-4,S=0;S=55296&&_<=57343){var y=u.charCodeAt(++S);_=65536+((_&1023)<<10)|y&1023}if(z[o>>2]=_,o+=4,o+4>v)break}return z[o>>2]=0,o-d}function pm(u){for(var o=0,a=0;a=55296&&d<=57343&&++a,o+=4}return o}function mm(u,o,a){a=Se(a);var d,v,S,_,y;o===2?(d=sm,v=am,_=cm,S=()=>gt,y=1):o===4&&(d=fm,v=dm,_=pm,S=()=>G,y=2),at(u,{name:a,fromWireType:function(C){for(var N=G[C>>2],A=S(),H,W=C+4,te=0;te<=N;++te){var ue=C+4+te*o;if(te==N||A[ue>>y]==0){var se=ue-W,xe=d(W,se);H===void 0?H=xe:(H+=String.fromCharCode(0),H+=xe),W=ue+o}}return wt(C),H},toWireType:function(C,N){typeof N!="string"&&K("Cannot pass non-string to C++ string type "+a);var A=_(N),H=lr(4+A+o);return G[H>>2]=A>>y,v(N,H+4,A+o),C!==null&&C.push(wt,H),H},argPackAdvance:8,readValueFromPointer:bn,destructorFunction:function(C){wt(C)}})}function hm(u,o,a,d,v,S){br[u]={name:Se(o),rawConstructor:ct(a,d),rawDestructor:ct(v,S),fields:[]}}function vm(u,o,a,d,v,S,_,y,C,N){br[u].fields.push({fieldName:Se(o),getterReturnType:a,getter:ct(d,v),getterContext:S,setterArgumentType:_,setter:ct(y,C),setterContext:N})}function gm(u,o){o=Se(o),at(u,{isVoid:!0,name:o,argPackAdvance:0,fromWireType:function(){},toWireType:function(a,d){}})}function ym(){return Date.now()}var wm=!0;function _m(){return wm}function Sm(u,o){for(var a=new Array(u),d=0;d>2],"parameter "+d);return a}function km(u,o,a,d){u=_n.toValue(u);for(var v=Sm(o,a),S=new Array(o),_=0;_4&&(et[u].refcount+=1)}function Em(u,o){u=Yl(u,"_emval_take_value");var a=u.readValueFromPointer(o);return _n.toHandle(a)}function Tm(u,o){var a=new Date(z[u>>2]*1e3);z[o>>2]=a.getUTCSeconds(),z[o+4>>2]=a.getUTCMinutes(),z[o+8>>2]=a.getUTCHours(),z[o+12>>2]=a.getUTCDate(),z[o+16>>2]=a.getUTCMonth(),z[o+20>>2]=a.getUTCFullYear()-1900,z[o+24>>2]=a.getUTCDay();var d=Date.UTC(a.getUTCFullYear(),0,1,0,0,0,0),v=(a.getTime()-d)/(1e3*60*60*24)|0;z[o+28>>2]=v}function Pm(u,o){var a=new Date(z[u>>2]*1e3);z[o>>2]=a.getSeconds(),z[o+4>>2]=a.getMinutes(),z[o+8>>2]=a.getHours(),z[o+12>>2]=a.getDate(),z[o+16>>2]=a.getMonth(),z[o+20>>2]=a.getFullYear()-1900,z[o+24>>2]=a.getDay();var d=new Date(a.getFullYear(),0,1),v=(a.getTime()-d.getTime())/(1e3*60*60*24)|0;z[o+28>>2]=v,z[o+36>>2]=-(a.getTimezoneOffset()*60);var S=new Date(a.getFullYear(),6,1).getTimezoneOffset(),_=d.getTimezoneOffset(),y=(S!=_&&a.getTimezoneOffset()==Math.min(_,S))|0;z[o+32>>2]=y}function xm(u){var o=new Date(z[u+20>>2]+1900,z[u+16>>2],z[u+12>>2],z[u+8>>2],z[u+4>>2],z[u>>2],0),a=z[u+32>>2],d=o.getTimezoneOffset(),v=new Date(o.getFullYear(),0,1),S=new Date(o.getFullYear(),6,1).getTimezoneOffset(),_=v.getTimezoneOffset(),y=Math.min(_,S);if(a<0)z[u+32>>2]=Number(S!=_&&y==d);else if(a>0!=(y==d)){var C=Math.max(_,S),N=a>0?y:C;o.setTime(o.getTime()+(N-d)*6e4)}z[u+24>>2]=o.getDay();var A=(o.getTime()-v.getTime())/(1e3*60*60*24)|0;return z[u+28>>2]=A,z[u>>2]=o.getSeconds(),z[u+4>>2]=o.getMinutes(),z[u+8>>2]=o.getHours(),z[u+12>>2]=o.getDate(),z[u+16>>2]=o.getMonth(),o.getTime()/1e3|0}function $s(u){var o=M(u)+1,a=lr(o);return a&&D(u,Q,a,o),a}function Rm(u,o,a){var d=new Date().getFullYear(),v=new Date(d,0,1),S=new Date(d,6,1),_=v.getTimezoneOffset(),y=S.getTimezoneOffset(),C=Math.max(_,y);z[u>>2]=C*60,z[o>>2]=Number(_!=y);function N(ue){var se=ue.toTimeString().match(/\(([A-Za-z ]+)\)$/);return se?se[1]:"GMT"}var A=N(v),H=N(S),W=$s(A),te=$s(H);y<_?(G[a>>2]=W,G[a+4>>2]=te):(G[a>>2]=te,G[a+4>>2]=W)}function Gl(u,o,a){Gl.called||(Gl.called=!0,Rm(u,o,a))}function Nm(){qn("")}var Ws;Ws=()=>performance.now();function Om(u,o,a){$.copyWithin(u,o,o+a)}function Dm(){return 1073741824}function Lm(u){try{return U.grow(u-I.byteLength+65535>>>16),gs(U.buffer),1}catch{}}function zm(u){var o=$.length;u=u>>>0;var a=Dm();if(u>a)return!1;let d=(C,N)=>C+(N-C%N)%N;for(var v=1;v<=4;v*=2){var S=o*(1+.2/v);S=Math.min(S,u+100663296);var _=Math.min(a,d(Math.max(u,S),65536)),y=Lm(_);if(y)return!0}return!1}var li={};function Fm(){return s||"./this.program"}function ir(){if(!ir.strings){var u=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",o={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:u,_:Fm()};for(var a in li)li[a]===void 0?delete o[a]:o[a]=li[a];var d=[];for(var a in o)d.push(a+"="+o[a]);ir.strings=d}return ir.strings}function Mm(u,o,a){for(var d=0;d>0]=u.charCodeAt(d);a||(Q[o>>0]=0)}function Im(u,o){var a=0;return ir().forEach(function(d,v){var S=o+a;G[u+v*4>>2]=S,Mm(d,S),a+=d.length+1}),0}function Am(u,o){var a=ir();G[u>>2]=a.length;var d=0;return a.forEach(function(v){d+=v.length+1}),G[o>>2]=d,0}function jm(u){return 52}function Um(u,o,a,d){return 52}function $m(u,o,a,d,v){return 70}var Wm=[null,[],[]];function Hm(u,o){var a=Wm[u];o===0||o===10?((u===1?E:w)(g(a,0)),a.length=0):a.push(o)}function Vm(u,o,a,d){for(var v=0,S=0;S>2],y=G[o+4>>2];o+=8;for(var C=0;C>2]=v,0}function Bm(u){}function oi(u){return u%4===0&&(u%100!==0||u%400===0)}function Qm(u,o){for(var a=0,d=0;d<=o;a+=u[d++]);return a}var Hs=[31,29,31,30,31,30,31,31,30,31,30,31],Vs=[31,28,31,30,31,30,31,31,30,31,30,31];function Ym(u,o){for(var a=new Date(u.getTime());o>0;){var d=oi(a.getFullYear()),v=a.getMonth(),S=(d?Hs:Vs)[v];if(o>S-a.getDate())o-=S-a.getDate()+1,a.setDate(1),v<11?a.setMonth(v+1):(a.setMonth(0),a.setFullYear(a.getFullYear()+1));else return a.setDate(a.getDate()+o),a}return a}function Km(u,o,a){var d=a>0?a:M(u)+1,v=new Array(d),S=D(u,v,0,v.length);return o&&(v.length=S),v}function Bs(u,o,a,d){var v=z[d+40>>2],S={tm_sec:z[d>>2],tm_min:z[d+4>>2],tm_hour:z[d+8>>2],tm_mday:z[d+12>>2],tm_mon:z[d+16>>2],tm_year:z[d+20>>2],tm_wday:z[d+24>>2],tm_yday:z[d+28>>2],tm_isdst:z[d+32>>2],tm_gmtoff:z[d+36>>2],tm_zone:v?T(v):""},_=T(a),y={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var C in y)_=_.replace(new RegExp(C,"g"),y[C]);var N=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],A=["January","February","March","April","May","June","July","August","September","October","November","December"];function H(x,j,ze){for(var ve=typeof x=="number"?x.toString():x||"";ve.length0?1:0}var ve;return(ve=ze(x.getFullYear()-j.getFullYear()))===0&&(ve=ze(x.getMonth()-j.getMonth()))===0&&(ve=ze(x.getDate()-j.getDate())),ve}function ue(x){switch(x.getDay()){case 0:return new Date(x.getFullYear()-1,11,29);case 1:return x;case 2:return new Date(x.getFullYear(),0,3);case 3:return new Date(x.getFullYear(),0,2);case 4:return new Date(x.getFullYear(),0,1);case 5:return new Date(x.getFullYear()-1,11,31);case 6:return new Date(x.getFullYear()-1,11,30)}}function se(x){var j=Ym(new Date(x.tm_year+1900,0,1),x.tm_yday),ze=new Date(j.getFullYear(),0,4),ve=new Date(j.getFullYear()+1,0,4),en=ue(ze),si=ue(ve);return te(en,j)<=0?te(si,j)<=0?j.getFullYear()+1:j.getFullYear():j.getFullYear()-1}var xe={"%a":function(x){return N[x.tm_wday].substring(0,3)},"%A":function(x){return N[x.tm_wday]},"%b":function(x){return A[x.tm_mon].substring(0,3)},"%B":function(x){return A[x.tm_mon]},"%C":function(x){var j=x.tm_year+1900;return W(j/100|0,2)},"%d":function(x){return W(x.tm_mday,2)},"%e":function(x){return H(x.tm_mday,2," ")},"%g":function(x){return se(x).toString().substring(2)},"%G":function(x){return se(x)},"%H":function(x){return W(x.tm_hour,2)},"%I":function(x){var j=x.tm_hour;return j==0?j=12:j>12&&(j-=12),W(j,2)},"%j":function(x){return W(x.tm_mday+Qm(oi(x.tm_year+1900)?Hs:Vs,x.tm_mon-1),3)},"%m":function(x){return W(x.tm_mon+1,2)},"%M":function(x){return W(x.tm_min,2)},"%n":function(){return` +`},"%p":function(x){return x.tm_hour>=0&&x.tm_hour<12?"AM":"PM"},"%S":function(x){return W(x.tm_sec,2)},"%t":function(){return" "},"%u":function(x){return x.tm_wday||7},"%U":function(x){var j=x.tm_yday+7-x.tm_wday;return W(Math.floor(j/7),2)},"%V":function(x){var j=Math.floor((x.tm_yday+7-(x.tm_wday+6)%7)/7);if((x.tm_wday+371-x.tm_yday-2)%7<=2&&j++,j){if(j==53){var ve=(x.tm_wday+371-x.tm_yday)%7;ve!=4&&(ve!=3||!oi(x.tm_year))&&(j=1)}}else{j=52;var ze=(x.tm_wday+7-x.tm_yday-1)%7;(ze==4||ze==5&&oi(x.tm_year%400-1))&&j++}return W(j,2)},"%w":function(x){return x.tm_wday},"%W":function(x){var j=x.tm_yday+7-(x.tm_wday+6)%7;return W(Math.floor(j/7),2)},"%y":function(x){return(x.tm_year+1900).toString().substring(2)},"%Y":function(x){return x.tm_year+1900},"%z":function(x){var j=x.tm_gmtoff,ze=j>=0;return j=Math.abs(j)/60,j=j/60*100+j%60,(ze?"+":"-")+String("0000"+j).slice(-4)},"%Z":function(x){return x.tm_zone},"%%":function(){return"%"}};_=_.replace(/%%/g,"\0\0");for(var C in xe)_.includes(C)&&(_=_.replace(new RegExp(C,"g"),xe[C](S)));_=_.replace(/\0\0/g,"%");var Le=Km(_,!1);return Le.length>o?0:(np(Le,u),Le.length-1)}function Gm(u,o,a,d){return Bs(u,o,a,d)}Ts=n.InternalError=Ul(Error,"InternalError"),vp(),wn=n.BindingError=Ul(Error,"BindingError"),Lp(),Ep(),$p(),Fs=n.UnboundTypeError=Ul(Error,"UnboundTypeError"),Jp();var Xm={f:rp,e:lp,s:op,G:up,I:sp,t:ap,B:cp,C:fp,g:mp,y:hp,R:gp,m:Qp,l:Kp,a:Gp,Q:qp,E:em,w:tm,v:rm,d:lm,b:om,u:um,p:mm,i:hm,c:vm,S:gm,k:ym,K:_m,V:km,U:js,q:Cm,n:Em,L:Tm,M:Pm,N:xm,O:Gl,h:Nm,J:Ws,P:Om,A:zm,D:Im,F:Am,o:jm,H:Um,x:$m,r:Vm,j:Bm,T:Bs,z:Gm};tp(),n.___wasm_call_ctors=function(){return(n.___wasm_call_ctors=n.asm.X).apply(null,arguments)};var lr=n._malloc=function(){return(lr=n._malloc=n.asm.Y).apply(null,arguments)},wt=n._free=function(){return(wt=n._free=n.asm._).apply(null,arguments)},Qs=n.___getTypeName=function(){return(Qs=n.___getTypeName=n.asm.$).apply(null,arguments)};n.___embind_register_native_and_builtin_types=function(){return(n.___embind_register_native_and_builtin_types=n.asm.aa).apply(null,arguments)};var Ys=n.___cxa_is_pointer_type=function(){return(Ys=n.___cxa_is_pointer_type=n.asm.ba).apply(null,arguments)};n.dynCall_jiji=function(){return(n.dynCall_jiji=n.asm.ca).apply(null,arguments)},n.dynCall_viijii=function(){return(n.dynCall_viijii=n.asm.da).apply(null,arguments)},n.dynCall_iiiiij=function(){return(n.dynCall_iiiiij=n.asm.ea).apply(null,arguments)},n.dynCall_iiiiijj=function(){return(n.dynCall_iiiiijj=n.asm.fa).apply(null,arguments)},n.dynCall_iiiiiijj=function(){return(n.dynCall_iiiiiijj=n.asm.ga).apply(null,arguments)},n.dynCall_jijii=function(){return(n.dynCall_jijii=n.asm.ha).apply(null,arguments)},n.dynCall_vijii=function(){return(n.dynCall_vijii=n.asm.ia).apply(null,arguments)},n.dynCall_jij=function(){return(n.dynCall_jij=n.asm.ja).apply(null,arguments)},n.dynCall_iij=function(){return(n.dynCall_iij=n.asm.ka).apply(null,arguments)},n.dynCall_viji=function(){return(n.dynCall_viji=n.asm.la).apply(null,arguments)},n.dynCall_jii=function(){return(n.dynCall_jii=n.asm.ma).apply(null,arguments)};var ui;Jn=function u(){ui||Ks(),ui||(Jn=u)};function Ks(u){if(qt>0||(Qd(),qt>0))return;function o(){ui||(ui=!0,n.calledRun=!0,!Z&&(Yd(),r(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),Kd()))}n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),o()},1)):o()}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();Ks();function Zm(){let u=Uint8Array.from([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]);return WebAssembly.validate(u)}return Zm()&&(li.DOTPRODUCT="sse"),n.ready}})();function Og(e){if(!e.dataTransfer)return null;for(let t=0;t{n(!1)},onDragOver:r=>{r.preventDefault(),n(!0)},onDrop:r=>{r.preventDefault(),n(!1);let i=Og(r);i&&e(i)}},"Drop an image here to OCR it",V.createElement("div",null,V.createElement("input",{type:"file",accept:"image/*",onChange:r=>{let i=r.target.files;!i.length||e(i.item(0))}})))}function Lg({value:e}){return V.createElement("div",{className:"ProgressBar"},V.createElement("div",{className:"ProgressBar__bar",style:{width:`${e}%`}}))}function zg({box:e,imageWidth:t,imageHeight:n}){let[r,i]=(0,_e.useState)(!1),l=k=>`${k*100}%`,s=l(e.rect.left/t),c=l((e.rect.right-e.rect.left)/t),f=l(e.rect.top/n),m=l((e.rect.bottom-e.rect.top)/n);return V.createElement("div",{className:"OCRWordBox",style:{position:"absolute",left:s,top:f,width:c,height:m},onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),title:e.text},r&&V.createElement("div",{className:"OCRWordBox__content"},V.createElement("div",{className:"OCRWordBox__text"},e.text," (",e.confidence.toFixed(2),")")))}function Fg(e){return e.confidence>0&&e.rotation===0}function Mg(e){return e.confidence===0?"Unknown":`${e.rotation}\xB0`}function Ig(){let e=(0,_e.useRef)(null),[t,n]=(0,_e.useState)(null),[r,i]=(0,_e.useState)(null),[l,s]=(0,_e.useState)(null),[c,f]=(0,_e.useState)(null),[m,k]=(0,_e.useState)(null),[E,w]=(0,_e.useState)([]),[O,R]=(0,_e.useState)(null),[U,Z]=(0,_e.useState)(null),[h,p]=(0,_e.useState)("text"),g=(0,_e.useRef)(null);(0,_e.useEffect)(()=>{if(!t)return;s(null),w(null),R(null),Z(null),f(0),g.current.getContext("2d").drawImage(t,0,0);let F=!1;return(async()=>{e.current||(e.current=new Il,k("Fetching text recognition model"),await e.current.loadModel("https://raw.githubusercontent.com/tesseract-ocr/tessdata_fast/main/eng.traineddata"));let I=e.current,Q=performance.now();try{if(k("Loading image"),await I.loadImage(t),F)return;let $=await I.getOrientation();R($),k("Recognizing text");let ce=await I.getTextBoxes("word",f);if(ce=ce.filter(G=>G.text.trim()!==""),F)return;w(ce);let gt=performance.now();Z(Math.round(gt-Q));let z;switch(h){case"hocr":z=await I.getHOCR();break;case"text":z=await I.getText();break}if(F)return;i(z)}catch($){s($)}finally{f(null),k(null)}})(),()=>{F=!0}},[t,h]);let T=async D=>{try{let F=await createImageBitmap(D);n(F)}catch{s(new Error("Could not read document image"))}};return V.createElement("div",{className:"OCRDemoApp"},V.createElement("header",{className:"OCRDemoApp__header"},V.createElement("h1",null,"tesseract-wasm"),V.createElement("div",{className:"u-grow"}),V.createElement("a",{href:"https://github.com/robertknight/tesseract-wasm"},V.createElement("img",{className:"OCRDemoApp__gh-logo",src:"https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png"}))),V.createElement("p",null,"A ",V.createElement("a",{href:"https://webassembly.org"},"WebAssembly")," build of the"," ",V.createElement("a",{href:"https://github.com/tesseract-ocr/tesseract"},"Tesseract")," OCR engine for use in the browser and Node. It detects and recognizes text in document images."),V.createElement("p",null,"This build has been optimized for modern browsers by using"," ",V.createElement("a",{href:"https://v8.dev/features/simd"},"WebAssembly SIMD")," (where available) to speed up the neural network used for text recognition. Code which duplicates browser functionality (eg. parsing of various image formats) has been stripped out to reduce download size."),V.createElement("p",null,"See the"," ",V.createElement("a",{href:"https://github.com/robertknight/tesseract-wasm"},"project README")," ","for usage instructions and examples. Choose an image in the picker below to see it in action. Note that Tesseract is designed to work with reasonably clean document images/photos rather than scenes containing text. For advice on improving recognition, see the"," ",V.createElement("a",{href:"https://tesseract-ocr.github.io"},"Tesseract User Manual"),"."),l&&V.createElement("div",{className:"OCRDemoApp__error"},V.createElement("b",null,"Error:")," ",l.message),V.createElement(Dg,{onDrop:T}),V.createElement("div",null,V.createElement("label",{htmlFor:"output-format"},"Output format:"),V.createElement("select",{id:"output-format",onChange:D=>p(D.target.value),value:h},V.createElement("option",{value:"text"},"Plain text"),V.createElement("option",{value:"hocr"},"hOCR"))),m!==null&&V.createElement("div",null,m,"\u2026"),U!==null&&V.createElement("div",null,"Found ",E.length," words in ",U,"ms"),c!==null&&V.createElement(Lg,{value:c}),O!==null&&!Fg(O)&&`Orientation: ${Mg(O)}`,t&&V.createElement("div",{className:"OCRDemoApp__output"},V.createElement("canvas",{className:"OCRDemoApp__doc-image",width:t.width,height:t.height,ref:g}),E&&V.createElement("div",{className:"OCRDemoApp__word-boxes",style:{aspectRatio:`auto ${t.width}/${t.height}`}},E.map((D,F)=>V.createElement(zg,{key:F,imageWidth:t.width,imageHeight:t.height,box:D})))),r&&V.createElement("pre",{className:"OCRDemoApp__text"},r))}var Ag=document.getElementById("app"),jg=(0,Bd.createRoot)(Ag);jg.render(V.createElement(Ig,null)); +/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/docs/build/tesseract-core-fallback.wasm b/docs/build/tesseract-core-fallback.wasm new file mode 100755 index 0000000..e504617 Binary files /dev/null and b/docs/build/tesseract-core-fallback.wasm differ diff --git a/docs/build/tesseract-core.wasm b/docs/build/tesseract-core.wasm new file mode 100755 index 0000000..10fdb68 Binary files /dev/null and b/docs/build/tesseract-core.wasm differ diff --git a/docs/build/tesseract-init.d.ts b/docs/build/tesseract-init.d.ts new file mode 100644 index 0000000..1aafccd --- /dev/null +++ b/docs/build/tesseract-init.d.ts @@ -0,0 +1 @@ +declare function wasmSIMDSupported(): boolean; diff --git a/docs/build/tesseract-worker.js b/docs/build/tesseract-worker.js new file mode 100644 index 0000000..015732f --- /dev/null +++ b/docs/build/tesseract-worker.js @@ -0,0 +1,629 @@ +(function (factory) { + typeof define === 'function' && define.amd ? define(factory) : + factory(); +})((function () { 'use strict'; + + /** + * Copyright 2019 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + const proxyMarker = Symbol("Comlink.proxy"); + const createEndpoint = Symbol("Comlink.endpoint"); + const releaseProxy = Symbol("Comlink.releaseProxy"); + const throwMarker = Symbol("Comlink.thrown"); + const isObject = (val) => (typeof val === "object" && val !== null) || typeof val === "function"; + /** + * Internal transfer handle to handle objects marked to proxy. + */ + const proxyTransferHandler = { + canHandle: (val) => isObject(val) && val[proxyMarker], + serialize(obj) { + const { port1, port2 } = new MessageChannel(); + expose(obj, port1); + return [port2, [port2]]; + }, + deserialize(port) { + port.start(); + return wrap(port); + }, + }; + /** + * Internal transfer handler to handle thrown exceptions. + */ + const throwTransferHandler = { + canHandle: (value) => isObject(value) && throwMarker in value, + serialize({ value }) { + let serialized; + if (value instanceof Error) { + serialized = { + isError: true, + value: { + message: value.message, + name: value.name, + stack: value.stack, + }, + }; + } + else { + serialized = { isError: false, value }; + } + return [serialized, []]; + }, + deserialize(serialized) { + if (serialized.isError) { + throw Object.assign(new Error(serialized.value.message), serialized.value); + } + throw serialized.value; + }, + }; + /** + * Allows customizing the serialization of certain values. + */ + const transferHandlers = new Map([ + ["proxy", proxyTransferHandler], + ["throw", throwTransferHandler], + ]); + function expose(obj, ep = self) { + ep.addEventListener("message", function callback(ev) { + if (!ev || !ev.data) { + return; + } + const { id, type, path } = Object.assign({ path: [] }, ev.data); + const argumentList = (ev.data.argumentList || []).map(fromWireValue); + let returnValue; + try { + const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj); + const rawValue = path.reduce((obj, prop) => obj[prop], obj); + switch (type) { + case "GET" /* GET */: + { + returnValue = rawValue; + } + break; + case "SET" /* SET */: + { + parent[path.slice(-1)[0]] = fromWireValue(ev.data.value); + returnValue = true; + } + break; + case "APPLY" /* APPLY */: + { + returnValue = rawValue.apply(parent, argumentList); + } + break; + case "CONSTRUCT" /* CONSTRUCT */: + { + const value = new rawValue(...argumentList); + returnValue = proxy(value); + } + break; + case "ENDPOINT" /* ENDPOINT */: + { + const { port1, port2 } = new MessageChannel(); + expose(obj, port2); + returnValue = transfer(port1, [port1]); + } + break; + case "RELEASE" /* RELEASE */: + { + returnValue = undefined; + } + break; + default: + return; + } + } + catch (value) { + returnValue = { value, [throwMarker]: 0 }; + } + Promise.resolve(returnValue) + .catch((value) => { + return { value, [throwMarker]: 0 }; + }) + .then((returnValue) => { + const [wireValue, transferables] = toWireValue(returnValue); + ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables); + if (type === "RELEASE" /* RELEASE */) { + // detach and deactive after sending release response above. + ep.removeEventListener("message", callback); + closeEndPoint(ep); + } + }); + }); + if (ep.start) { + ep.start(); + } + } + function isMessagePort(endpoint) { + return endpoint.constructor.name === "MessagePort"; + } + function closeEndPoint(endpoint) { + if (isMessagePort(endpoint)) + endpoint.close(); + } + function wrap(ep, target) { + return createProxy(ep, [], target); + } + function throwIfProxyReleased(isReleased) { + if (isReleased) { + throw new Error("Proxy has been released and is not useable"); + } + } + function createProxy(ep, path = [], target = function () { }) { + let isProxyReleased = false; + const proxy = new Proxy(target, { + get(_target, prop) { + throwIfProxyReleased(isProxyReleased); + if (prop === releaseProxy) { + return () => { + return requestResponseMessage(ep, { + type: "RELEASE" /* RELEASE */, + path: path.map((p) => p.toString()), + }).then(() => { + closeEndPoint(ep); + isProxyReleased = true; + }); + }; + } + if (prop === "then") { + if (path.length === 0) { + return { then: () => proxy }; + } + const r = requestResponseMessage(ep, { + type: "GET" /* GET */, + path: path.map((p) => p.toString()), + }).then(fromWireValue); + return r.then.bind(r); + } + return createProxy(ep, [...path, prop]); + }, + set(_target, prop, rawValue) { + throwIfProxyReleased(isProxyReleased); + // FIXME: ES6 Proxy Handler `set` methods are supposed to return a + // boolean. To show good will, we return true asynchronously ¯\_(ツ)_/¯ + const [value, transferables] = toWireValue(rawValue); + return requestResponseMessage(ep, { + type: "SET" /* SET */, + path: [...path, prop].map((p) => p.toString()), + value, + }, transferables).then(fromWireValue); + }, + apply(_target, _thisArg, rawArgumentList) { + throwIfProxyReleased(isProxyReleased); + const last = path[path.length - 1]; + if (last === createEndpoint) { + return requestResponseMessage(ep, { + type: "ENDPOINT" /* ENDPOINT */, + }).then(fromWireValue); + } + // We just pretend that `bind()` didn’t happen. + if (last === "bind") { + return createProxy(ep, path.slice(0, -1)); + } + const [argumentList, transferables] = processArguments(rawArgumentList); + return requestResponseMessage(ep, { + type: "APPLY" /* APPLY */, + path: path.map((p) => p.toString()), + argumentList, + }, transferables).then(fromWireValue); + }, + construct(_target, rawArgumentList) { + throwIfProxyReleased(isProxyReleased); + const [argumentList, transferables] = processArguments(rawArgumentList); + return requestResponseMessage(ep, { + type: "CONSTRUCT" /* CONSTRUCT */, + path: path.map((p) => p.toString()), + argumentList, + }, transferables).then(fromWireValue); + }, + }); + return proxy; + } + function myFlat(arr) { + return Array.prototype.concat.apply([], arr); + } + function processArguments(argumentList) { + const processed = argumentList.map(toWireValue); + return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))]; + } + const transferCache = new WeakMap(); + function transfer(obj, transfers) { + transferCache.set(obj, transfers); + return obj; + } + function proxy(obj) { + return Object.assign(obj, { [proxyMarker]: true }); + } + function toWireValue(value) { + for (const [name, handler] of transferHandlers) { + if (handler.canHandle(value)) { + const [serializedValue, transferables] = handler.serialize(value); + return [ + { + type: "HANDLER" /* HANDLER */, + name, + value: serializedValue, + }, + transferables, + ]; + } + } + return [ + { + type: "RAW" /* RAW */, + value, + }, + transferCache.get(value) || [], + ]; + } + function fromWireValue(value) { + switch (value.type) { + case "HANDLER" /* HANDLER */: + return transferHandlers.get(value.name).deserialize(value.value); + case "RAW" /* RAW */: + return value.value; + } + } + function requestResponseMessage(ep, msg, transfers) { + return new Promise((resolve) => { + const id = generateUUID(); + ep.addEventListener("message", function l(ev) { + if (!ev.data || !ev.data.id || ev.data.id !== id) { + return; + } + ep.removeEventListener("message", l); + resolve(ev.data); + }); + if (ep.start) { + ep.start(); + } + ep.postMessage(Object.assign({ id }, msg), transfers); + }); + } + function generateUUID() { + return new Array(4) + .fill(0) + .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16)) + .join("-"); + } + + var Module = (() => { + var _scriptDir = (typeof document === 'undefined' && typeof location === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : typeof document === 'undefined' ? location.href : (document.currentScript && document.currentScript.src || new URL('tesseract-worker.js', document.baseURI).href)); + + return ( + function(Module) { + Module = Module || {}; + + var Module=typeof Module!="undefined"?Module:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject;});var moduleOverrides=Object.assign({},Module);var thisProgram="./this.program";var ENVIRONMENT_IS_WEB=true;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readBinary;{if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src;}if(_scriptDir){scriptDirectory=_scriptDir;}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1);}else {scriptDirectory="";}}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"]);if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"]);var POINTER_SIZE=4;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected");}var wasmMemory;var ABORT=false;function assert(condition,text){if(!condition){abort(text);}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else {var str="";while(idx>10,56320|ch&1023);}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023;}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u;}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63;}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;}else {if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4;}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf);}Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift());}}callRuntimeCallbacks(__ATPRERUN__);}function initRuntime(){callRuntimeCallbacks(__ATINIT__);}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift());}}callRuntimeCallbacks(__ATPOSTRUN__);}function addOnPreRun(cb){__ATPRERUN__.unshift(cb);}function addOnInit(cb){__ATINIT__.unshift(cb);}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb);}var runDependencies=0;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies);}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies);}if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback();}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what);}}what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;if(Module["locateFile"]){wasmBinaryFile="tesseract-core.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile);}}else {wasmBinaryFile=new URL("tesseract-core.wasm",(typeof document === 'undefined' && typeof location === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : typeof document === 'undefined' ? location.href : (document.currentScript && document.currentScript.src || new URL('tesseract-worker.js', document.baseURI).href))).toString();}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary);else {throw "both async and sync fetching of the wasm failed"}}catch(err){abort(err);}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB)){if(typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw "failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["W"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["Z"];addOnInit(Module["asm"]["X"]);removeRunDependency();}addRunDependency();function receiveInstantiationResult(result){receiveInstance(result["instance"]);}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason);})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else {return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return {}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module);}}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer);}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type;};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor;};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount;};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught;};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown;};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false);};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1;};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr;};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr};}function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);throw ptr}function ___syscall_fcntl64(fd,cmd,varargs){return 0}function ___syscall_getcwd(buf,size){}function ___syscall_ioctl(fd,op,varargs){return 0}function ___syscall_openat(dirfd,path,flags,varargs){}function ___syscall_rmdir(path){}function ___syscall_unlinkat(dirfd,path,flags){}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr);}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAP32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return "_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return "_"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"");}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else {return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes;});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count");}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt];}else {unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[];}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters);}});}});if(0===unregisteredTypes.length){onComplete(typeConverters);}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType["fromWireType"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors);}};});return [{name:reg.name,"fromWireType":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr);}rawDestructor(ptr);return rv},"toWireType":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: "'+fieldName+'"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName]);}if(destructors!==null){destructors.push(rawDestructor,ptr);}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:rawDestructor}]});}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i);}embind_charCodes=codes;}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]];}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer');}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else {throwBindingError("Cannot register type '"+name+"' twice");}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb());}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return !!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8;}else if(size===2){heap=HEAP16;}else if(size===4){heap=HEAP32;}else {throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])},destructorFunction:null});}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass;}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass;}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return {count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted");}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr);}else {$$.ptrType.registeredClass.rawDestructor($$.ptr);}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$);}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k]);}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]();}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes);}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction;}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined");}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass;}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType");}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified");}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else {var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else {return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType;}else {toType=registeredPointerRecord.pointerType;}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else {return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$);});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle);}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else {var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion");}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined;}}function ClassHandle_isDeleted(){return !this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion");}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes);}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater;}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!");}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc;}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice");}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!");}Module[name].overloadTable[numArguments]=value;}else {Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments;}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[];}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name);}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass;}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+embindRepr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr);}return ptr}else {return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+embindRepr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal");}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else {throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name);}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else {var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle["delete"]();}));if(destructors!==null){destructors.push(this.rawDestructor,ptr);}}break;default:throwBindingError("Unsupporting sharing policy");}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+embindRepr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr);}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr);}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]();}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType;}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null;}else {this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null;}}else {this["toWireType"]=genericPointerToWireType;}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol");}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value;}else {Module[name]=value;Module[name].argCount=numArguments;}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function getWasmTableEntry(funcPtr){return wasmTable.get(funcPtr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction);}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true;}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast);}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast);}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType]);});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype;}else {basePrototype=ClassHandle.prototype;}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return [referenceConverter,pointerConverter,constPointerConverter]});}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i>2]);}return array}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired;}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n";}else {for(var i=isClassMethodFunc?1:2;i0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[];}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes);};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return []});return []});}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)];}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName);}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes);}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler;}else {ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler;}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction;}else {proto[methodName].overloadTable[argCount-2]=memberFunction;}return []});return []});}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle);}}function count_emval_handles(){var count=0;for(var i=5;i{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle);}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null});}function enumReadValueFromPointer(name,shift,signed){switch(shift){case 0:return function(pointer){var heap=signed?HEAP8:HEAPU8;return this["fromWireType"](heap[pointer])};case 1:return function(pointer){var heap=signed?HEAP16:HEAPU16;return this["fromWireType"](heap[pointer>>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor);}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType));}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value;}function embindRepr(v){if(v===null){return "null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else {return ""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null});}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift;}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0};}else {toWireType=function(destructors,value){checkAssertions(value,this.name);return value};}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null});}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true});}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment;}else {str+=String.fromCharCode(0);str+=stringSegment;}decodeStartPtr=currentBytePtr+1;}}}else {var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1);}else {if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits");}HEAPU8[ptr+i]=charCode;}}else {for(var i=0;i>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else {var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit);}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647;}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2;}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023);}else {str+=String.fromCharCode(utf32);}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647;}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023;}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4;}return len}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1;}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2;}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment;}else {str+=String.fromCharCode(0);str+=stringSegment;}decodeStartPtr=currentBytePtr+charSize;}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value=="string")){throwBindingError("Cannot pass non-string to C++ string type "+name);}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr);}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr);}});}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]};}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext});}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}});}function __emscripten_date_now(){return Date.now()}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2],"parameter "+i);}return a}function __emval_call(handle,argCount,argTypes,argv){handle=Emval.toValue(handle);var types=emval_lookupTypes(argCount,argTypes);var args=new Array(argCount);for(var i=0;i4){emval_handle_array[handle].refcount+=1;}}function __emval_take_value(type,arg){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v)}function __gmtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;}function __mktime_js(tmPtr){var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset);}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4);}HEAP32[tmPtr+24>>2]=date.getDay();var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();return date.getTime()/1e3|0}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr;}else {HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr;}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname);}function _abort(){abort("");}var _emscripten_get_now;_emscripten_get_now=()=>performance.now();function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num);}function getHeapMax(){return 1073741824}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x];}var strings=[];for(var x in env){strings.push(x+"="+env[x]);}getEnvStrings.strings=strings;}return getEnvStrings.strings}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i);}if(!dontAddNull)HEAP8[buffer>>0]=0;}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1;});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1;});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){return 52}function _fd_read(fd,iov,iovcnt,pnum){return 52}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0;}else {buffer.push(curr);}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function _setTempRet0(val){}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1);}else {newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1);}}else {newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule]);}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate());}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else {return thisDate.getFullYear()}}else {return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return "\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return "AM"}else {return "PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return "\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++;}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++;}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1;}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return (date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return (ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return "%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date));}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var asmLibraryArg={"f":___cxa_allocate_exception,"e":___cxa_throw,"s":___syscall_fcntl64,"G":___syscall_getcwd,"I":___syscall_ioctl,"t":___syscall_openat,"B":___syscall_rmdir,"C":___syscall_unlinkat,"g":__embind_finalize_value_object,"y":__embind_register_bigint,"R":__embind_register_bool,"m":__embind_register_class,"l":__embind_register_class_constructor,"a":__embind_register_class_function,"Q":__embind_register_emval,"E":__embind_register_enum,"w":__embind_register_enum_value,"v":__embind_register_float,"d":__embind_register_integer,"b":__embind_register_memory_view,"u":__embind_register_std_string,"p":__embind_register_std_wstring,"i":__embind_register_value_object,"c":__embind_register_value_object_field,"S":__embind_register_void,"k":__emscripten_date_now,"K":__emscripten_get_now_is_monotonic,"V":__emval_call,"U":__emval_decref,"q":__emval_incref,"n":__emval_take_value,"L":__gmtime_js,"M":__localtime_js,"N":__mktime_js,"O":__tzset_js,"h":_abort,"J":_emscripten_get_now,"P":_emscripten_memcpy_big,"A":_emscripten_resize_heap,"D":_environ_get,"F":_environ_sizes_get,"o":_fd_close,"H":_fd_read,"x":_fd_seek,"r":_fd_write,"j":_setTempRet0,"T":_strftime,"z":_strftime_l};createWasm();Module["___wasm_call_ctors"]=function(){return (Module["___wasm_call_ctors"]=Module["asm"]["X"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return (_malloc=Module["_malloc"]=Module["asm"]["Y"]).apply(null,arguments)};var _free=Module["_free"]=function(){return (_free=Module["_free"]=Module["asm"]["_"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return (___getTypeName=Module["___getTypeName"]=Module["asm"]["$"]).apply(null,arguments)};Module["___embind_register_native_and_builtin_types"]=function(){return (Module["___embind_register_native_and_builtin_types"]=Module["asm"]["aa"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return (___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["ba"]).apply(null,arguments)};Module["dynCall_jiji"]=function(){return (Module["dynCall_jiji"]=Module["asm"]["ca"]).apply(null,arguments)};Module["dynCall_viijii"]=function(){return (Module["dynCall_viijii"]=Module["asm"]["da"]).apply(null,arguments)};Module["dynCall_iiiiij"]=function(){return (Module["dynCall_iiiiij"]=Module["asm"]["ea"]).apply(null,arguments)};Module["dynCall_iiiiijj"]=function(){return (Module["dynCall_iiiiijj"]=Module["asm"]["fa"]).apply(null,arguments)};Module["dynCall_iiiiiijj"]=function(){return (Module["dynCall_iiiiiijj"]=Module["asm"]["ga"]).apply(null,arguments)};Module["dynCall_jijii"]=function(){return (Module["dynCall_jijii"]=Module["asm"]["ha"]).apply(null,arguments)};Module["dynCall_vijii"]=function(){return (Module["dynCall_vijii"]=Module["asm"]["ia"]).apply(null,arguments)};Module["dynCall_jij"]=function(){return (Module["dynCall_jij"]=Module["asm"]["ja"]).apply(null,arguments)};Module["dynCall_iij"]=function(){return (Module["dynCall_iij"]=Module["asm"]["ka"]).apply(null,arguments)};Module["dynCall_viji"]=function(){return (Module["dynCall_viji"]=Module["asm"]["la"]).apply(null,arguments)};Module["dynCall_jii"]=function(){return (Module["dynCall_jii"]=Module["asm"]["ma"]).apply(null,arguments)};var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller;};function run(args){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun();}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("");},1);doRun();},1);}else {doRun();}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()();}}run();function wasmSIMDSupported(){const simdTest=Uint8Array.from([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]);return WebAssembly.validate(simdTest)}if(wasmSIMDSupported()){ENV.DOTPRODUCT="sse";} + + + return Module.ready + } + ); + })(); + + /** + * Extract the pixel data from an ImageBitmap. + */ + function imageDataFromBitmap(bitmap) { + let canvas; + // @ts-expect-error - OffscreenCanvas API is missing + if (typeof OffscreenCanvas !== "undefined") { + // @ts-expect-error - OffscreenCanvas API is missing + canvas = new OffscreenCanvas(bitmap.width, bitmap.height); + } + else if (typeof HTMLCanvasElement !== "undefined") { + const canvasEl = document.createElement("canvas"); + canvasEl.width = bitmap.width; + canvasEl.height = bitmap.height; + canvas = canvasEl; + } + else { + throw new Error("No canvas implementation available"); + } + const context = canvas.getContext("2d"); + context.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height); + return context.getImageData(0, 0, bitmap.width, bitmap.height); + } + + // @ts-ignore - Don't error if library hasn't been built yet. + /** + * Create a JS array from a std::vector wrapper created by Embind. + */ + function jsArrayFromStdVector(vec) { + const size = vec.size(); + const result = []; + for (let i = 0; i < size; i++) { + result.push(vec.get(i)); + } + return result; + } + /** + * Low-level synchronous API for performing OCR. + * + * Instances are constructed using {@link createOCREngine}. + */ + class OCREngine { + /** + * Initialize the OCREngine. + * + * Use {@link createOCREngine} rather than calling this directly. + * + * @param tessLib - Emscripten entry point for the compiled WebAssembly module. + * @param progressChannel - Channel used to report progress + * updates when OCREngine is run on a background thread + */ + constructor(tessLib, progressChannel) { + this._tesseractLib = tessLib; + this._engine = new tessLib.OCREngine(); + this._modelLoaded = false; + this._imageLoaded = false; + this._progressChannel = progressChannel; + } + /** + * Shut down the OCR engine and free up resources. + */ + destroy() { + this._engine.delete(); + this._engine = null; + } + /** + * Get the value, represented as a string, of a Tesseract configuration variable. + * + * See {@link setVariable} for available variables. + */ + getVariable(name) { + const result = this._engine.getVariable(name); + if (!result.success) { + throw new Error(`Unable to get variable ${name}`); + } + return result.value; + } + /** + * Set the value of a Tesseract configuration variable. + * + * For a list of configuration variables, see + * https://github.com/tesseract-ocr/tesseract/blob/677f5822f247ccb12b4e026265e88b959059fb59/src/ccmain/tesseractclass.cpp#L53 + * + * If you have Tesseract installed locally, executing `tesseract --print-parameters` + * will also display a list of configuration variables. + */ + setVariable(name, value) { + const result = this._engine.setVariable(name, value); + if (result.error) { + throw new Error(`Unable to set variable ${name}`); + } + } + /** + * Load a trained text recognition model. + */ + loadModel(model) { + const modelArray = model instanceof ArrayBuffer ? new Uint8Array(model) : model; + const result = this._engine.loadModel(modelArray); + if (result.error) { + throw new Error("Text recognition model failed to load"); + } + this._modelLoaded = true; + } + /** + * Load a document image for processing by subsequent operations. + * + * This is a cheap operation as expensive processing is deferred until + * bounding boxes or text content is requested. + */ + loadImage(image) { + let imageData; + if (typeof ImageBitmap !== "undefined" && image instanceof ImageBitmap) { + imageData = imageDataFromBitmap(image); + } + else { + imageData = image; + } + if (imageData.data.length < imageData.width * imageData.height * 4) { + throw new Error("Image data length does not match width/height"); + } + if (imageData.width <= 0 || imageData.height <= 0) { + throw new Error("Image width or height is zero"); + } + // Free up resources used by the previous image, if any. Doing this before + // creating the buffer for the new image reduces peak memory usage. + this._engine.clearImage(); + // Allocate a temporary internal image for transfering the image data into + // Tesseract + const engineImage = new this._tesseractLib.Image(imageData.width, imageData.height); + const engineImageBuf = engineImage.data(); + engineImageBuf.set(new Uint32Array(imageData.data.buffer)); + // Load the image. This will take a copy of the image within Tesseract, so + // we can release the original afterwards. + const result = this._engine.loadImage(engineImage); + engineImage.delete(); + if (result.error) { + throw new Error("Failed to load image"); + } + this._imageLoaded = true; + } + /** + * Clear the current image and text recognition results. + * + * This will clear the loaded image data internally, but keep the text + * recognition model loaded. + * + * At present there is no way to shrink WebAssembly memory, so this will not + * return the memory used by the image to the OS/browser. To release memory, + * the `OCREngine` instance needs to be destroyed via {@link destroy}. + */ + clearImage() { + this._engine.clearImage(); + this._imageLoaded = false; + } + /** + * Perform layout analysis on the current image, if not already done, and + * return bounding boxes for a given unit of text. + * + * This operation is relatively cheap compared to text recognition, so can + * provide much faster results if only the location of lines/words etc. on + * the page is required, not the text content. This operation can also be + * performed before a text recognition model is loaded. + * + * This method may return a different number/positions of words on a line + * compared to {@link getTextBoxes} due to the simpler analysis. After full + * OCR has been performed by {@link getTextBoxes} or {@link getText}, this + * method should return the same results. + */ + getBoundingBoxes(unit) { + this._checkImageLoaded(); + const textUnit = this._textUnitForUnit(unit); + return jsArrayFromStdVector(this._engine.getBoundingBoxes(textUnit)); + } + /** + * Perform layout analysis and text recognition on the current image, if + * not already done, and return bounding boxes and text content for a given + * unit of text. + * + * A text recognition model must be loaded with {@link loadModel} before this + * is called. + */ + getTextBoxes(unit, onProgress) { + this._checkImageLoaded(); + this._checkModelLoaded(); + const textUnit = this._textUnitForUnit(unit); + return jsArrayFromStdVector(this._engine.getTextBoxes(textUnit, (progress) => { + var _a; + onProgress === null || onProgress === void 0 ? void 0 : onProgress(progress); + (_a = this._progressChannel) === null || _a === void 0 ? void 0 : _a.postMessage({ progress }); + })); + } + /** + * Perform layout analysis and text recognition on the current image, if + * not already done, and return the page text as a string. + * + * A text recognition model must be loaded with {@link loadModel} before this + * is called. + */ + getText(onProgress) { + this._checkImageLoaded(); + this._checkModelLoaded(); + return this._engine.getText((progress) => { + var _a; + onProgress === null || onProgress === void 0 ? void 0 : onProgress(progress); + (_a = this._progressChannel) === null || _a === void 0 ? void 0 : _a.postMessage({ progress }); + }); + } + /** + * Perform layout analysis and text recognition on the current image, if + * not already done, and return the page text in hOCR format. + * + * A text recognition model must be loaded with {@link loadModel} before this + * is called. + */ + getHOCR(onProgress) { + this._checkImageLoaded(); + this._checkModelLoaded(); + return this._engine.getHOCR((progress) => { + var _a; + onProgress === null || onProgress === void 0 ? void 0 : onProgress(progress); + (_a = this._progressChannel) === null || _a === void 0 ? void 0 : _a.postMessage({ progress }); + }); + } + /** + * Attempt to determine the orientation of the document image in degrees. + * + * This currently uses a simplistic algorithm [1] which is designed for + * non-uppercase Latin text. It will likely perform badly for other scripts or + * if the text is all uppercase. + * + * [1] See http://www.leptonica.org/papers/skew-measurement.pdf + */ + getOrientation() { + this._checkImageLoaded(); + return this._engine.getOrientation(); + } + _checkModelLoaded() { + if (!this._modelLoaded) { + throw new Error("No text recognition model loaded"); + } + } + _checkImageLoaded() { + if (!this._imageLoaded) { + throw new Error("No image loaded"); + } + } + _textUnitForUnit(unit) { + const { TextUnit } = this._tesseractLib; + switch (unit) { + case "word": + return TextUnit.Word; + case "line": + return TextUnit.Line; + default: + throw new Error("Invalid text unit"); + } + } + } + function wasmSIMDSupported() { + // Tiny WebAssembly file generated from the following source using `wat2wasm`: + // + // (module + // (func (result v128) + // i32.const 0 + // i8x16.splat + // i8x16.popcnt + // ) + // ) + const simdTest = Uint8Array.from([ + 0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 10, 1, + 8, 0, 65, 0, 253, 15, 253, 98, 11, + ]); + return WebAssembly.validate(simdTest); + } + function resolve(path, baseURL) { + return new URL(path, baseURL).href; + } + /** + * Return true if the current JS runtime supports all the WebAssembly features + * needed for the "fast" WebAssembly build. If not, the "fallback" version must + * be used. + */ + function supportsFastBuild() { + return wasmSIMDSupported(); + } + /** + * Initialize the OCR library and return a new {@link OCREngine}. + */ + async function createOCREngine({ wasmBinary, progressChannel, } = {}) { + if (!wasmBinary) { + const wasmPath = supportsFastBuild() + ? "./tesseract-core.wasm" + : "./tesseract-core-fallback.wasm"; + // nb. If this code is included in a non-ESM bundle, Rollup will replace + // `import.meta.url` with code that uses `document.currentScript` / + // `location.href`. + const wasmURL = resolve(wasmPath, (typeof document === 'undefined' && typeof location === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : typeof document === 'undefined' ? location.href : (document.currentScript && document.currentScript.src || new URL('tesseract-worker.js', document.baseURI).href))); + const wasmBinaryResponse = await fetch(wasmURL); + wasmBinary = await wasmBinaryResponse.arrayBuffer(); + } + const tessLib = await Module({ wasmBinary }); + return new OCREngine(tessLib, progressChannel); + } + + const workerAPI = { + /** + * @param progressChannel - Channel to send progress updates over. This is + * sent separately from the options argument to enable comlink to transfer it. + */ + createOCREngine: async ({ wasmBinary }, progressChannel) => { + const engine = await createOCREngine({ wasmBinary, progressChannel }); + return proxy(engine); + }, + }; + expose(workerAPI); + +})); diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..efd10c9 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,12 @@ + + + + tesseract-wasm OCR Demo + + + + + +
+ + diff --git a/docs/ocr-app.css b/docs/ocr-app.css new file mode 100644 index 0000000..aec4fe8 --- /dev/null +++ b/docs/ocr-app.css @@ -0,0 +1,120 @@ +* { + box-sizing: border-box; +} + +body { + font-family: sans-serif; + + --border: 2px solid #aaa; +} + +p { + margin-top: 0; +} + +.FileDropZone { + color: #444; + display: flex; + flex-direction: column; + gap: 1rem; + align-items: center; + background-color: #ddd; + border: var(--border); + font-size: 1rem; + font-weight: bold; + height: 100px; + justify-content: center; +} + +.FileDropZone.is-hovered { + background-color: #aaa; +} + +.ProgressBar { + border: var(--border); + height: 8px; +} + +.ProgressBar__bar { + background-color: #6666ff; + height: 100%; +} + +.OCRDemoApp { + display: flex; + flex-direction: column; + align-items: stretch; + gap: 1rem; + + max-width: 800px; + margin-left: auto; + margin-right: auto; +} + +.OCRDemoApp__error { + background-color: #ff7777; + padding: 5px; +} + +.OCRDemoApp__output { + position: relative; + border: var(--border); +} + +.OCRDemoApp__doc-image { + width: 100%; +} + +.OCRDemoApp__word-boxes { + position: absolute; + left: 0; + right: 0; + top: 0; +} + +.OCRDemoApp__text { + border: var(--border); + padding: 1em; + overflow-x: scroll; +} + +.OCRWordBox { + position: relative; + border: 1px solid red; +} + +.OCRWordBox:hover { + background-color: rgba(255, 200, 200, 0.5); +} + +.OCRWordBox__content { + position: relative; + top: -25px; + z-index: 10; +} + +.OCRWordBox__text { + position: absolute; + left: 0; + top: 0; + + padding-left: 5px; + padding-right: 5px; + + background-color: #ccf; + border: 1px solid #99f; + white-space: nowrap; +} + +.OCRDemoApp__header { + display: flex; + align-items: center; +} + +.OCRDemoApp__gh-logo { + width: 64px; +} + +.u-grow { + flex-grow: 1; +}