From c25ce5155401e15d3411e67a02d37e86983aee48 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 22 Nov 2023 19:33:15 +0000 Subject: [PATCH] deploy: aaa30f9906d4fe82b350635aa9e00797a167915e --- 404.html | 8 +++---- assets/js/12af2043.2f6a0feb.js | 1 + assets/js/12af2043.ef45df27.js | 1 - ...d3c43.7fb41196.js => 741d3c43.07b466a5.js} | 2 +- ...ba939.c8a593be.js => 7aaba939.255be500.js} | 2 +- assets/js/935f2afb.a26d7b0c.js | 1 + assets/js/935f2afb.f03a432c.js | 1 - assets/js/d92ee6a6.1d5647e7.js | 1 + assets/js/d92ee6a6.f959e4f3.js | 1 - .../js/{main.92cd0c69.js => main.52f929a4.js} | 4 ++-- ...CENSE.txt => main.52f929a4.js.LICENSE.txt} | 0 ...n.b8120206.js => runtime~main.b0458b2b.js} | 2 +- changelog.html | 8 +++---- developer-guide/adding-calibration-type.html | 8 +++---- developer-guide/adding-plugins-to-ui.html | 8 +++---- developer-guide/architecture.html | 8 +++---- developer-guide/avoiding-od.html | 8 +++---- developer-guide/chart-to-ui.html | 8 +++---- developer-guide/data-stores.html | 8 +++---- developer-guide/events.html | 8 +++---- developer-guide/filesystem-locations.html | 8 +++---- developer-guide/hat-button.html | 8 +++---- developer-guide/i2c-addresses.html | 8 +++---- developer-guide/important-concepts.html | 8 +++---- developer-guide/intro-automations.html | 8 +++---- developer-guide/intro-background-jobs.html | 8 +++---- developer-guide/intro-plugins.html | 8 +++---- developer-guide/introduction.html | 8 +++---- developer-guide/local-development.html | 8 +++---- developer-guide/pi-development.html | 8 +++---- developer-guide/pinout.html | 8 +++---- developer-guide/plugin-as-python-package.html | 8 +++---- developer-guide/web-ui-api.html | 8 +++---- developer-guide/web-ui-introduction.html | 8 +++---- developer-guide/writing-automations-1.html | 8 +++---- developer-guide/writing-automations-2.html | 8 +++---- developer-guide/writing-background-jobs.html | 8 +++---- developer-guide/writing-pump-software.html | 8 +++---- developer-guide/writing-scripts.html | 8 +++---- experiments/algae-day-night-cycle.html | 8 +++---- experiments/caffeine-inhibition.html | 8 +++---- ...continuous-cultures-using-turbidostat.html | 8 +++---- experiments/control-testing.html | 8 +++---- .../directed-evolution-salt-tolerance.html | 8 +++---- experiments/introduction.html | 8 +++---- experiments/low-vs-high-conc-media.html | 8 +++---- experiments/salt-stress-on-yeast.html | 8 +++---- experiments/tags.html | 8 +++---- experiments/tags/caffeine.html | 8 +++---- experiments/tags/continuous-culture.html | 8 +++---- experiments/tags/control.html | 8 +++---- experiments/tags/ethanol.html | 8 +++---- experiments/tags/nutrient.html | 8 +++---- experiments/tags/salt.html | 8 +++---- experiments/tags/secondary-education.html | 8 +++---- experiments/tags/seconday-education.html | 8 +++---- experiments/tags/temperature.html | 8 +++---- experiments/tags/turbidostat.html | 8 +++---- experiments/tags/university-education.html | 8 +++---- experiments/tags/yeast.html | 8 +++---- experiments/temp-cycle.html | 8 +++---- experiments/yeast-growth-by-temperature.html | 8 +++---- experiments/yeast-in-ethanol.html | 8 +++---- index.html | 8 +++---- search-index.json | 2 +- search.html | 8 +++---- sitemap.xml | 2 +- user-guide/accessing-raspberry-pi.html | 8 +++---- user-guide/activities.html | 8 +++---- user-guide/addition-hardware-pumps.html | 8 +++---- user-guide/available-plugins.html | 8 +++---- user-guide/calibrate-od600.html | 8 +++---- user-guide/cli.html | 8 +++---- user-guide/common-questions.html | 8 +++---- user-guide/configuration.html | 8 +++---- user-guide/create-cluster.html | 8 +++---- .../create-edit-experiment-profiles.html | 8 +++---- user-guide/dosing-automations.html | 8 +++---- user-guide/error-codes.html | 10 ++++----- user-guide/experiment-profiles-schema.html | 10 ++++----- user-guide/experiment-profiles.html | 8 +++---- user-guide/export-data.html | 8 +++---- user-guide/export-import-existing-data.html | 8 +++---- user-guide/external-power.html | 8 +++---- user-guide/getting-started.html | 8 +++---- user-guide/hardware-calibrations.html | 8 +++---- user-guide/hardware-connection-assembly.html | 8 +++---- user-guide/hardware-setup-intro.html | 8 +++---- user-guide/high-temp-upgrade-kit.html | 8 +++---- user-guide/intro-python-scripting.html | 8 +++---- user-guide/intro-to-automations.html | 8 +++---- user-guide/introduction.html | 8 +++---- user-guide/led-automations.html | 8 +++---- user-guide/local-access-point.html | 8 +++---- user-guide/manual-dosing-leds.html | 8 +++---- user-guide/monitor-experiment.html | 8 +++---- user-guide/ngrok-remote-access.html | 8 +++---- user-guide/od-normal-growth-rate.html | 8 +++---- user-guide/optics-assembly.html | 8 +++---- user-guide/pinch-valves.html | 8 +++---- user-guide/prepare-vial-for-cultures.html | 8 +++---- user-guide/putting-it-together.html | 8 +++---- user-guide/remote-access.html | 8 +++---- user-guide/rpi-hat-assembly.html | 8 +++---- user-guide/running-self-test.html | 8 +++---- user-guide/set-up-an-experiment.html | 8 +++---- user-guide/software-set-up.html | 8 +++---- user-guide/tailscale-remote-access.html | 8 +++---- user-guide/temperature-automations.html | 8 +++---- user-guide/temperature-expansion-kit.html | 8 +++---- user-guide/troubleshooting-Hardware.html | 22 ------------------- user-guide/troubleshooting-hardware.html | 22 +++++++++++++++++++ user-guide/troubleshooting-power.html | 10 ++++----- user-guide/troubleshooting-stirring.html | 10 ++++----- user-guide/troubleshooting-ui.html | 10 ++++----- user-guide/updating-software.html | 8 +++---- user-guide/using-community-plugins.html | 8 +++---- user-guide/using-leds.html | 8 +++---- user-guide/using-pumps.html | 8 +++---- user-guide/using-stemma-qt.html | 8 +++---- user-guide/wetware-assembly.html | 8 +++---- user-guide/write-own-automations.html | 8 +++---- 122 files changed, 465 insertions(+), 465 deletions(-) create mode 100644 assets/js/12af2043.2f6a0feb.js delete mode 100644 assets/js/12af2043.ef45df27.js rename assets/js/{741d3c43.7fb41196.js => 741d3c43.07b466a5.js} (72%) rename assets/js/{7aaba939.c8a593be.js => 7aaba939.255be500.js} (62%) create mode 100644 assets/js/935f2afb.a26d7b0c.js delete mode 100644 assets/js/935f2afb.f03a432c.js create mode 100644 assets/js/d92ee6a6.1d5647e7.js delete mode 100644 assets/js/d92ee6a6.f959e4f3.js rename assets/js/{main.92cd0c69.js => main.52f929a4.js} (99%) rename assets/js/{main.92cd0c69.js.LICENSE.txt => main.52f929a4.js.LICENSE.txt} (100%) rename assets/js/{runtime~main.b8120206.js => runtime~main.b0458b2b.js} (95%) delete mode 100644 user-guide/troubleshooting-Hardware.html create mode 100644 user-guide/troubleshooting-hardware.html diff --git a/404.html b/404.html index acd42ce27..a83bcc08e 100644 --- a/404.html +++ b/404.html @@ -8,15 +8,15 @@ - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/assets/js/12af2043.2f6a0feb.js b/assets/js/12af2043.2f6a0feb.js new file mode 100644 index 000000000..8cc0c8787 --- /dev/null +++ b/assets/js/12af2043.2f6a0feb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[9631],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),u=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(r),d=n,m=c["".concat(l,".").concat(d)]||c[d]||h[d]||a;return r?o.createElement(m,i(i({ref:t},p),{},{components:r})):o.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var o=r(87462),n=(r(67294),r(3905));const a={title:"Hardware and operation",slug:"/troubleshooting-hardware"},i=void 0,s={unversionedId:"Troubleshooting/Hardware troubleshooting",id:"Troubleshooting/Hardware troubleshooting",title:"Hardware and operation",description:"My Pioreactor isn't responsive anymore",source:"@site/user-guide/50-Troubleshooting/Hardware troubleshooting.md",sourceDirName:"50-Troubleshooting",slug:"/troubleshooting-hardware",permalink:"/user-guide/troubleshooting-hardware",draft:!1,tags:[],version:"current",frontMatter:{title:"Hardware and operation",slug:"/troubleshooting-hardware"},sidebar:"tutorialSidebar",previous:{title:"Blue LED flashing & error codes",permalink:"/user-guide/error-codes"},next:{title:"Power and restarts",permalink:"/user-guide/troubleshooting-power"}},l={},u=[{value:"My Pioreactor isn't responsive anymore",id:"my-pioreactor-isnt-responsive-anymore",level:3},{value:"I often see a "Pioreactor HAT must be present" error, but the HAT is definitely attached.",id:"i-often-see-a-pioreactor-hat-must-be-present-error-but-the-hat-is-definitely-attached",level:3},{value:"I see "Heating PCB must be attached to Pioreactor HAT" or Heating PCB must be present to measure RPM." errors.",id:"i-see-heating-pcb-must-be-attached-to-pioreactor-hat-or-heating-pcb-must-be-present-to-measure-rpm-errors",level:3},{value:"I'm having trouble with Pioreactor's stirring.",id:"im-having-trouble-with-pioreactors-stirring",level:3}],p={toc:u},c="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"my-pioreactor-isnt-responsive-anymore"},"My Pioreactor isn't responsive anymore"),(0,n.kt)("p",null,"If your Pioreactor stops being responsive (and ",(0,n.kt)("em",{parentName:"p"},"was previously working"),"),"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"For Raspberry Pi 3A model, is the Pi's green LED constantly on?",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"there should be a short, perhaps caused by damage. Power off, and disconnect the heater PCB's flat-flex cable from the HAT (unlock, and pull straight out), and power on. Is the Pioreactor responsive now? Investigate the heater PCB for damage.")))),(0,n.kt)("h3",{id:"i-often-see-a-pioreactor-hat-must-be-present-error-but-the-hat-is-definitely-attached"},'I often see a "Pioreactor HAT must be present" error, but the HAT is definitely attached.'),(0,n.kt)("p",null,"Try the following, in order:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/user-guide/accessing-raspberry-pi"},"SSH")," into the Pioreactor that's causing problems. Run ",(0,n.kt)("inlineCode",{parentName:"li"},"pio version -v"),". Does the ",(0,n.kt)("inlineCode",{parentName:"li"},"firmware")," section say ",(0,n.kt)("inlineCode",{parentName:"li"},"0.0"),"? If so, run ",(0,n.kt)("inlineCode",{parentName:"li"},"sudo systemctl restart load_rp2040.service"),". Try ",(0,n.kt)("inlineCode",{parentName:"li"},"pio version -v")," again. Move on if ",(0,n.kt)("inlineCode",{parentName:"li"},"firmware")," still says ",(0,n.kt)("inlineCode",{parentName:"li"},"0.0"),"."),(0,n.kt)("li",{parentName:"ul"},"Disconnect the heater PCB's flat-flex cable from the HAT (unlock, and pull straight out). Try ",(0,n.kt)("inlineCode",{parentName:"li"},"pio version -v")," again. If this shows something other than ",(0,n.kt)("inlineCode",{parentName:"li"},"0.0")," beside firmware, there could be a problem with your heater PCB. Email us at ",(0,n.kt)("a",{parentName:"li",href:"mailto:help@pioreactor.com"},"help@pioreactor.com"),"."),(0,n.kt)("li",{parentName:"ul"},"See section ",(0,n.kt)("a",{parentName:"li",href:"/user-guide/troubleshooting-Hardware#my-pioreactor-isnt-responsive-anymore"},"above"),".")),(0,n.kt)("h3",{id:"i-see-heating-pcb-must-be-attached-to-pioreactor-hat-or-heating-pcb-must-be-present-to-measure-rpm-errors"},'I see "Heating PCB must be attached to Pioreactor HAT" or Heating PCB must be present to measure RPM." errors.'),(0,n.kt)("p",null,"Check the connection between the 3\" flat-flex-cable and the HAT, and the connection on the heater PCB. It's possible that the connector could have been pulled out by accident."),(0,n.kt)("h3",{id:"im-having-trouble-with-pioreactors-stirring"},"I'm having trouble with Pioreactor's stirring."),(0,n.kt)("p",null,"See our ",(0,n.kt)("a",{parentName:"p",href:"/user-guide/troubleshooting-stirring"},"stirring troubleshooting docs"),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/12af2043.ef45df27.js b/assets/js/12af2043.ef45df27.js deleted file mode 100644 index 86d01a9f6..000000000 --- a/assets/js/12af2043.ef45df27.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[9631],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>m});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),u=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=u(e.components);return o.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(r),d=n,m=p["".concat(l,".").concat(d)]||p[d]||h[d]||a;return r?o.createElement(m,i(i({ref:t},c),{},{components:r})):o.createElement(m,i({ref:t},c))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:n,i[1]=s;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var o=r(87462),n=(r(67294),r(3905));const a={title:"Hardware (PCBs)",slug:"/troubleshooting-Hardware"},i=void 0,s={unversionedId:"Troubleshooting/Hardware troubleshooting",id:"Troubleshooting/Hardware troubleshooting",title:"Hardware (PCBs)",description:'I often see a "Pioreactor HAT must be present" error, but the HAT is definitely attached.',source:"@site/user-guide/50-Troubleshooting/Hardware troubleshooting.md",sourceDirName:"50-Troubleshooting",slug:"/troubleshooting-Hardware",permalink:"/user-guide/troubleshooting-Hardware",draft:!1,tags:[],version:"current",frontMatter:{title:"Hardware (PCBs)",slug:"/troubleshooting-Hardware"},sidebar:"tutorialSidebar",previous:{title:"Blue LED flashing & error codes",permalink:"/user-guide/error-codes"},next:{title:"Power and restarts",permalink:"/user-guide/troubleshooting-power"}},l={},u=[{value:"I often see a "Pioreactor HAT must be present" error, but the HAT is definitely attached.",id:"i-often-see-a-pioreactor-hat-must-be-present-error-but-the-hat-is-definitely-attached",level:3},{value:"I see "Heating PCB must be attached to Pioreactor HAT" or Heating PCB must be present to measure RPM." errors.",id:"i-see-heating-pcb-must-be-attached-to-pioreactor-hat-or-heating-pcb-must-be-present-to-measure-rpm-errors",level:3},{value:"I'm having trouble with Pioreactor's stirring.",id:"im-having-trouble-with-pioreactors-stirring",level:3}],c={toc:u},p="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"i-often-see-a-pioreactor-hat-must-be-present-error-but-the-hat-is-definitely-attached"},'I often see a "Pioreactor HAT must be present" error, but the HAT is definitely attached.'),(0,n.kt)("p",null,"Try the following, in order:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/user-guide/accessing-raspberry-pi"},"SSH")," into the Pioreactor that's causing problems. Run ",(0,n.kt)("inlineCode",{parentName:"li"},"pio version -v"),". Does the ",(0,n.kt)("inlineCode",{parentName:"li"},"firmware")," section say ",(0,n.kt)("inlineCode",{parentName:"li"},"0.0"),"? If so, run ",(0,n.kt)("inlineCode",{parentName:"li"},"sudo systemctl restart load_rp2040.service"),". Try ",(0,n.kt)("inlineCode",{parentName:"li"},"pio version -v")," again. Move on if ",(0,n.kt)("inlineCode",{parentName:"li"},"firmware")," still says ",(0,n.kt)("inlineCode",{parentName:"li"},"0.0"),"."),(0,n.kt)("li",{parentName:"ul"},"Disconnect the heater PCB's flat-flex cable from the HAT (unlock, and pull straight out). Try ",(0,n.kt)("inlineCode",{parentName:"li"},"pio version -v")," again. If this shows something other than ",(0,n.kt)("inlineCode",{parentName:"li"},"0.0")," beside firmware, there could be a problem with your heater PCB. Email us at ",(0,n.kt)("a",{parentName:"li",href:"mailto:help@pioreactor.com"},"help@pioreactor.com"),".")),(0,n.kt)("h3",{id:"i-see-heating-pcb-must-be-attached-to-pioreactor-hat-or-heating-pcb-must-be-present-to-measure-rpm-errors"},'I see "Heating PCB must be attached to Pioreactor HAT" or Heating PCB must be present to measure RPM." errors.'),(0,n.kt)("p",null,"Check the connection between the 3\" flat-flex-cable and the HAT, and the connection on the heater PCB. It's possible that the connector could have been pulled out by accident."),(0,n.kt)("h3",{id:"im-having-trouble-with-pioreactors-stirring"},"I'm having trouble with Pioreactor's stirring."),(0,n.kt)("p",null,"See our ",(0,n.kt)("a",{parentName:"p",href:"/user-guide/troubleshooting-stirring"},"stirring troubleshooting docs"),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/741d3c43.7fb41196.js b/assets/js/741d3c43.07b466a5.js similarity index 72% rename from assets/js/741d3c43.7fb41196.js rename to assets/js/741d3c43.07b466a5.js index c13de9631..22638e43f 100644 --- a/assets/js/741d3c43.7fb41196.js +++ b/assets/js/741d3c43.07b466a5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[3866],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>d});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},c=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),m=l(r),f=o,d=m["".concat(p,".").concat(f)]||m[f]||u[f]||i;return r?n.createElement(d,a(a({ref:t},c),{},{components:r})):n.createElement(d,a({ref:t},c))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[m]="string"==typeof e?e:o,a[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var n=r(87462),o=(r(67294),r(3905));const i={title:"Experiment profiles schema",slug:"/experiment-profiles-schema"},a=void 0,s={unversionedId:"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema",id:"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema",title:"Experiment profiles schema",description:"Max number of actions",source:"@site/user-guide/03-Extending your Pioreactor/04-Experiment Profiles/10-experiment-profiles-schema.md",sourceDirName:"03-Extending your Pioreactor/04-Experiment Profiles",slug:"/experiment-profiles-schema",permalink:"/user-guide/experiment-profiles-schema",draft:!1,tags:[],version:"current",sidebarPosition:10,frontMatter:{title:"Experiment profiles schema",slug:"/experiment-profiles-schema"},sidebar:"tutorialSidebar",previous:{title:"Creating and editing experiment profiles",permalink:"/user-guide/create-edit-experiment-profiles"},next:{title:"Standard curves for OD600 readings",permalink:"/user-guide/calibrate-od600"}},p={},l=[{value:"Max number of actions",id:"max-number-of-actions",level:3},{value:"Examples",id:"examples",level:3}],c={toc:l},m="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(m,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-yaml"},'# Main structure\nexperiment_profile_name: # Name of the experiment profile\n\nmetadata: # Optional\n author: # Author of the experiment profile\n description: # Description of the experiment profile\n\nplugins: # Optional\n - name: # Name of the plugin\n min_version: # Minimum required version of the plugin\n\nlabels: # Optional: provide aliases\n : # Optional: aliases for Pioreactors\n\ncommon: # Optional: jobs that are common for all Pioreactors\n :\n actions:\n - type: # Type of action: "start", "pause", "resume", "stop", "update", or "log"\n hours_elapsed: # When the action is scheduled (in hours after experiment start)\n options: # Optional: parameters for the action. If type=log, message= is required here.\n : \n arguments: # Optional: arguments for the action\n\npioreactors: # Optional: jobs that are specific to some Pioreactors\n :\n jobs:\n :\n actions:\n - type: # Type of action: "start", "pause", "resume", "stop", or "update"\n hours_elapsed: # When the action is scheduled (in hours after experiment start)\n options: # Optional: parameters for the action\n : \n')),(0,o.kt)("h3",{id:"max-number-of-actions"},"Max number of actions"),(0,o.kt)("p",null,"Currently, the max number of total actions is ",(0,o.kt)("strong",{parentName:"p"},"248"),". This may be relaxed in a future software version. Contact us if you need this done."),(0,o.kt)("h3",{id:"examples"},"Examples"),(0,o.kt)("p",null,"See examples of experiment profiles ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/Pioreactor/experiment_profile_examples"},"here"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[3866],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>d});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},c=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),m=l(r),f=o,d=m["".concat(p,".").concat(f)]||m[f]||u[f]||i;return r?n.createElement(d,a(a({ref:t},c),{},{components:r})):n.createElement(d,a({ref:t},c))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[m]="string"==typeof e?e:o,a[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var n=r(87462),o=(r(67294),r(3905));const i={title:"Experiment profiles schema",slug:"/experiment-profiles-schema"},a=void 0,s={unversionedId:"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema",id:"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema",title:"Experiment profiles schema",description:"Max number of actions",source:"@site/user-guide/03-Extending your Pioreactor/04-Experiment Profiles/10-experiment-profiles-schema.md",sourceDirName:"03-Extending your Pioreactor/04-Experiment Profiles",slug:"/experiment-profiles-schema",permalink:"/user-guide/experiment-profiles-schema",draft:!1,tags:[],version:"current",sidebarPosition:10,frontMatter:{title:"Experiment profiles schema",slug:"/experiment-profiles-schema"},sidebar:"tutorialSidebar",previous:{title:"Creating and editing experiment profiles",permalink:"/user-guide/create-edit-experiment-profiles"},next:{title:"Standard curves for OD600 readings",permalink:"/user-guide/calibrate-od600"}},p={},l=[{value:"Max number of actions",id:"max-number-of-actions",level:3},{value:"Examples",id:"examples",level:3}],c={toc:l},m="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(m,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-yaml"},'# Main structure\nexperiment_profile_name: # Name of the experiment profile\n\nmetadata: # Optional\n author: # Author of the experiment profile\n description: # Description of the experiment profile\n\nplugins: # Optional\n - name: # Name of the plugin\n min_version: # Minimum required version of the plugin\n\nlabels: # Optional: provide aliases\n : # Optional: aliases for Pioreactors\n\ncommon: # Optional: jobs that are common for all Pioreactors\n :\n actions:\n - type: # Type of action: "start", "pause", "resume", "stop", "update", or "log"\n hours_elapsed: # When the action is scheduled (in hours after experiment start)\n options: # Optional: parameters for the action. If type=log, message= is required here.\n : \n arguments: # Optional: arguments for the action\n\npioreactors: # Optional: jobs that are specific to some Pioreactors\n :\n jobs:\n :\n actions:\n - type: # Type of action: "start", "pause", "resume", "stop", or "update"\n hours_elapsed: # When the action is scheduled (in hours after experiment start)\n options: # Optional: parameters for the action\n : \n')),(0,o.kt)("h3",{id:"max-number-of-actions"},"Max number of actions"),(0,o.kt)("p",null,"Currently, the max number of total actions is ",(0,o.kt)("strong",{parentName:"p"},"248"),". This may be relaxed in a future software version. Contact us if you need this done."),(0,o.kt)("h3",{id:"examples"},"Examples"),(0,o.kt)("p",null,"See examples of experiment profiles ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/Pioreactor/experiment_profile_examples"},"here"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7aaba939.c8a593be.js b/assets/js/7aaba939.255be500.js similarity index 62% rename from assets/js/7aaba939.c8a593be.js rename to assets/js/7aaba939.255be500.js index 22c9ab044..4a9400beb 100644 --- a/assets/js/7aaba939.c8a593be.js +++ b/assets/js/7aaba939.255be500.js @@ -1 +1 @@ -"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[9155],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(r),m=a,g=p["".concat(u,".").concat(m)]||p[m]||d[m]||o;return r?n.createElement(g,l(l({ref:t},c),{},{components:r})):n.createElement(g,l({ref:t},c))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Blue LED flashing & error codes",slug:"/error-codes"},l=void 0,i={unversionedId:"Troubleshooting/error-codes",id:"Troubleshooting/error-codes",title:"Blue LED flashing & error codes",description:"When a Pioreactor successfully boots, the onboard blue LED will flash quickly for 2 seconds, and then stop. However, there are times when the Pioreactor encounters an error, and will use the LED to alert to you that something is wrong. By counting the number of short flashes (per cycle), you can diagnose what might be wrong.",source:"@site/user-guide/50-Troubleshooting/04-error-codes.md",sourceDirName:"50-Troubleshooting",slug:"/error-codes",permalink:"/user-guide/error-codes",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Blue LED flashing & error codes",slug:"/error-codes"},sidebar:"tutorialSidebar",previous:{title:"Export and import your data",permalink:"/user-guide/export-import-existing-data"},next:{title:"Hardware (PCBs)",permalink:"/user-guide/troubleshooting-Hardware"}},u={},s=[],c={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"When a Pioreactor successfully boots, the onboard blue LED will flash quickly for 2 seconds, and then stop. However, there are times when the Pioreactor encounters an error, and will use the LED to alert to you that something is wrong. By counting the number of ",(0,a.kt)("em",{parentName:"p"},"short")," flashes (per cycle), you can diagnose what might be wrong."),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"Number of flashes"),(0,a.kt)("th",{parentName:"tr",align:null},"Error"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"1"),(0,a.kt)("td",{parentName:"tr",align:null},"Can't connect to network")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"2"),(0,a.kt)("td",{parentName:"tr",align:null},"Can't connect to leader")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"3"),(0,a.kt)("td",{parentName:"tr",align:null},"SD card is almost full")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"4"),(0,a.kt)("td",{parentName:"tr",align:null},"Stirring RPM is 0")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"5"),(0,a.kt)("td",{parentName:"tr",align:null},"ADC input is very high")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"6"),(0,a.kt)("td",{parentName:"tr",align:null},"Heating PCB is above 60 \u2103")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"7"),(0,a.kt)("td",{parentName:"tr",align:null},"Voltage problem")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"8"),(0,a.kt)("td",{parentName:"tr",align:null},"Webserver offline")))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[9155],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(r),m=a,g=p["".concat(u,".").concat(m)]||p[m]||d[m]||o;return r?n.createElement(g,l(l({ref:t},c),{},{components:r})):n.createElement(g,l({ref:t},c))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const o={title:"Blue LED flashing & error codes",slug:"/error-codes"},l=void 0,i={unversionedId:"Troubleshooting/error-codes",id:"Troubleshooting/error-codes",title:"Blue LED flashing & error codes",description:"When a Pioreactor successfully boots, the onboard blue LED will flash quickly for 2 seconds, and then stop. However, there are times when the Pioreactor encounters an error, and will use the LED to alert to you that something is wrong. By counting the number of short flashes (per cycle), you can diagnose what might be wrong.",source:"@site/user-guide/50-Troubleshooting/04-error-codes.md",sourceDirName:"50-Troubleshooting",slug:"/error-codes",permalink:"/user-guide/error-codes",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{title:"Blue LED flashing & error codes",slug:"/error-codes"},sidebar:"tutorialSidebar",previous:{title:"Export and import your data",permalink:"/user-guide/export-import-existing-data"},next:{title:"Hardware and operation",permalink:"/user-guide/troubleshooting-hardware"}},u={},s=[],c={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"When a Pioreactor successfully boots, the onboard blue LED will flash quickly for 2 seconds, and then stop. However, there are times when the Pioreactor encounters an error, and will use the LED to alert to you that something is wrong. By counting the number of ",(0,a.kt)("em",{parentName:"p"},"short")," flashes (per cycle), you can diagnose what might be wrong."),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"Number of flashes"),(0,a.kt)("th",{parentName:"tr",align:null},"Error"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"1"),(0,a.kt)("td",{parentName:"tr",align:null},"Can't connect to network")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"2"),(0,a.kt)("td",{parentName:"tr",align:null},"Can't connect to leader")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"3"),(0,a.kt)("td",{parentName:"tr",align:null},"SD card is almost full")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"4"),(0,a.kt)("td",{parentName:"tr",align:null},"Stirring RPM is 0")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"5"),(0,a.kt)("td",{parentName:"tr",align:null},"ADC input is very high")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"6"),(0,a.kt)("td",{parentName:"tr",align:null},"Heating PCB is above 60 \u2103")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"7"),(0,a.kt)("td",{parentName:"tr",align:null},"Voltage problem")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"8"),(0,a.kt)("td",{parentName:"tr",align:null},"Webserver offline")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.a26d7b0c.js b/assets/js/935f2afb.a26d7b0c.js new file mode 100644 index 000000000..600eac41d --- /dev/null +++ b/assets/js/935f2afb.a26d7b0c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/user-guide/introduction","docId":"introduction"},{"type":"category","label":"Getting started","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Assembly introduction","href":"/user-guide/getting-started","docId":"getting-started/gettingstarted"},{"type":"category","label":"Hardware assembly","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Before you begin assembly","href":"/user-guide/hardware-setup-intro","docId":"getting-started/01b-hardware-set-up/introduction"},{"type":"link","label":"Assembling the Raspberry Pi and the HAT","href":"/user-guide/rpi-hat-assembly","docId":"getting-started/01b-hardware-set-up/rpi-hat-assembly"},{"type":"link","label":"Wetware assembly","href":"/user-guide/wetware-assembly","docId":"getting-started/01b-hardware-set-up/wetware-assembly"},{"type":"link","label":"Attaching the wetware to the HAT asssembly","href":"/user-guide/putting-it-together","docId":"getting-started/01b-hardware-set-up/faceplate-all-together"},{"type":"link","label":"Connect the optics system","href":"/user-guide/optics-assembly","docId":"getting-started/01b-hardware-set-up/optics-assembly"}]},{"type":"link","label":"Software installation","href":"/user-guide/software-set-up","docId":"getting-started/01c-software-set-up"}]},{"type":"category","label":"Experiment basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Preparing your vial for cultures","href":"/user-guide/prepare-vial-for-cultures","docId":"Experiment basics/prepare-vial-for-cultures"},{"type":"link","label":"Setting up an experiment","href":"/user-guide/set-up-an-experiment","docId":"Experiment basics/set-up-an-experiment"},{"type":"link","label":"Activities","href":"/user-guide/activities","docId":"Experiment basics/Activities"},{"type":"link","label":"Monitoring your experiment","href":"/user-guide/monitor-experiment","docId":"Experiment basics/monitor-experiment"},{"type":"link","label":"Exporting data","href":"/user-guide/export-data","docId":"Experiment basics/export-data"},{"type":"link","label":"Optical density, normalization, and growth rates","href":"/user-guide/od-normal-growth-rate","docId":"Experiment basics/od-normal-growth-rate"},{"type":"link","label":"Dosing and LED updates","href":"/user-guide/manual-dosing-leds","docId":"Experiment basics/manual-led-dosing"},{"type":"link","label":"Running a self-test","href":"/user-guide/running-self-test","docId":"Experiment basics/running-self-test"}]},{"type":"category","label":"Extending your Pioreactor","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creating a Pioreactor cluster","href":"/user-guide/create-cluster","docId":"Extending your Pioreactor/create-cluster"},{"type":"link","label":"Using additional LEDs","href":"/user-guide/using-leds","docId":"Extending your Pioreactor/adding-leds"},{"type":"category","label":"Experiment Profiles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro to experiment profiles","href":"/user-guide/experiment-profiles","docId":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro"},{"type":"link","label":"Creating and editing experiment profiles","href":"/user-guide/create-edit-experiment-profiles","docId":"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles"},{"type":"link","label":"Experiment profiles schema","href":"/user-guide/experiment-profiles-schema","docId":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema"}]},{"type":"link","label":"Standard curves for OD600 readings","href":"/user-guide/calibrate-od600","docId":"Extending your Pioreactor/calibrate-od600"},{"type":"link","label":"Configuration via config.ini","href":"/user-guide/configuration","docId":"Extending your Pioreactor/configuration"},{"type":"link","label":"Using a peristaltic pump with your Pioreactor","href":"/user-guide/using-pumps","docId":"Extending your Pioreactor/using-pumps"},{"type":"link","label":"Hardware calibrations","href":"/user-guide/hardware-calibrations","docId":"Extending your Pioreactor/hardware-calibrations"},{"type":"link","label":"Supplying more power to the PWM channels","href":"/user-guide/external-power","docId":"Extending your Pioreactor/external-power"},{"type":"link","label":"Using the StemmaQT/Qwicc connector","href":"/user-guide/using-stemma-qt","docId":"Extending your Pioreactor/using-stemma-qt"},{"type":"link","label":"Updating the Pioreactor software","href":"/user-guide/updating-software","docId":"Extending your Pioreactor/updating-software"},{"type":"category","label":"Upgrade kits","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Adding the Temperature Expansion Upgrade kit","href":"/user-guide/temperature-expansion-kit","docId":"Extending your Pioreactor/Upgrade kits/temperature-expansion-kit"},{"type":"link","label":"Adding the High Temp Upgrade kit","href":"/user-guide/high-temp-upgrade-kit","docId":"Extending your Pioreactor/Upgrade kits/high-temp-upgrade-kit"}]},{"type":"link","label":"Using community plugins","href":"/user-guide/using-community-plugins","docId":"Extending your Pioreactor/06a-using-community-plugins"},{"type":"link","label":"List of available plugins","href":"/user-guide/available-plugins","docId":"Extending your Pioreactor/06b-list-of-plugins"}]},{"type":"category","label":"Automations","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction to automations","href":"/user-guide/intro-to-automations","docId":"Automations/intro-to-automations"},{"type":"link","label":"Temperature automations","href":"/user-guide/temperature-automations","docId":"Automations/temperature-automations"},{"type":"link","label":"Dosing automations","href":"/user-guide/dosing-automations","docId":"Automations/dosing-automations"},{"type":"link","label":"LED automations","href":"/user-guide/led-automations","docId":"Automations/led-automations"},{"type":"link","label":"Writing your own automations","href":"/user-guide/write-own-automations","docId":"Automations/writing-automations"}]},{"type":"category","label":"Advanced","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Accessing the Raspberry Pi","href":"/user-guide/accessing-raspberry-pi","docId":"Advanced/accessing-raspberry-pi"},{"type":"link","label":"Command line interface","href":"/user-guide/cli","docId":"Advanced/cli"},{"type":"category","label":"Remote access to your Pioreactors","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Setting up remote access","href":"/user-guide/remote-access","docId":"Advanced/remote-access/introduction"},{"type":"link","label":"Ngrok","href":"/user-guide/ngrok-remote-access","docId":"Advanced/remote-access/ngrok"},{"type":"link","label":"Tailscale","href":"/user-guide/tailscale-remote-access","docId":"Advanced/remote-access/tailscale"}]},{"type":"link","label":"Local access points","href":"/user-guide/local-access-point","docId":"Advanced/local-access-point"},{"type":"category","label":"Additional Hardware","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"More on peristaltic pumps","href":"/user-guide/addition-hardware-pumps","docId":"Advanced/additional-hardware/pumps"},{"type":"link","label":"Pinch valves","href":"/user-guide/pinch-valves","docId":"Advanced/additional-hardware/pinch-valves"},{"type":"link","label":"Hardware connection assembly","href":"/user-guide/hardware-connection-assembly","docId":"Advanced/additional-hardware/hardware-connection-assembly"}]},{"type":"link","label":"Writing Pioreactor scripts with Python","href":"/user-guide/intro-python-scripting","docId":"Advanced/intro-python-scripting"},{"type":"link","label":"Export and import your data","href":"/user-guide/export-import-existing-data","docId":"Advanced/export-import-existing-data"}]},{"type":"category","label":"Troubleshooting","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Blue LED flashing & error codes","href":"/user-guide/error-codes","docId":"Troubleshooting/error-codes"},{"type":"link","label":"Hardware and operation","href":"/user-guide/troubleshooting-hardware","docId":"Troubleshooting/Hardware troubleshooting"},{"type":"link","label":"Power and restarts","href":"/user-guide/troubleshooting-power","docId":"Troubleshooting/Power troubleshooting"},{"type":"link","label":"Stirring","href":"/user-guide/troubleshooting-stirring","docId":"Troubleshooting/Stirring troubleshooting"},{"type":"link","label":"User interface","href":"/user-guide/troubleshooting-ui","docId":"Troubleshooting/UI troubleshooting"}]},{"type":"link","label":"Common questions","href":"/user-guide/common-questions","docId":"common-questions"}]},"docs":{"Advanced/accessing-raspberry-pi":{"id":"Advanced/accessing-raspberry-pi","title":"Accessing the Raspberry Pi","description":"For more customization and control of your Pioreactor, you can access the Raspberry Pi\'s command line. From the command line, you can view more logs, control individual Pioreactors, and more.","sidebar":"tutorialSidebar"},"Advanced/additional-hardware/hardware-connection-assembly":{"id":"Advanced/additional-hardware/hardware-connection-assembly","title":"Hardware connection assembly","description":"Normally, the external hardware will have two terminals, corresponding to positive and ground. The positive terminal may be marked by a dot, or \\"+\\" symbol, or be colored red. Make note of this terminal.","sidebar":"tutorialSidebar"},"Advanced/additional-hardware/pinch-valves":{"id":"Advanced/additional-hardware/pinch-valves","title":"Pinch valves","description":"Pinch valves are useful for controlling gas into the Pioreactor by \\"pinching\\" a gas line closed (or keeping it open). This could used be for injecting gas periodically into the headspace, or acting as a bubbler by putting the injection tube directly into the culture. Below is a diagram of using a pinch valve to periodically provide CO\u2082 into the head space of the Pioreactor\'s vial:","sidebar":"tutorialSidebar"},"Advanced/additional-hardware/pumps":{"id":"Advanced/additional-hardware/pumps","title":"More on peristaltic pumps","description":"The PWM output default to 5V (specifically, it\'s tied to the power supply, so it may be 5.1V, 5.2V etc. See your power supply). You are able to use 12V pumps successfully even at 5V output. However, you can also use the AUX power connection to change the PWM output.","sidebar":"tutorialSidebar"},"Advanced/cli":{"id":"Advanced/cli","title":"Command line interface","description":"For those interested, you can use the command line to interact with the Pioreactors. This is called the command line interface (CLI). Log onto either the leader or worker and you can execute the following commands. Full options and up-to-date documentation are available with pio --help.","sidebar":"tutorialSidebar"},"Advanced/export-import-existing-data":{"id":"Advanced/export-import-existing-data","title":"Export and import your data","description":"Export your data","sidebar":"tutorialSidebar"},"Advanced/intro-python-scripting":{"id":"Advanced/intro-python-scripting","title":"Writing Pioreactor scripts with Python","description":"This article isn\'t intended as a crash course in Python, or Pioreactor software, but some helpful ways to write small scripts for your Pioreactor. If interested in learning more, check out the developer docs for detailed information.","sidebar":"tutorialSidebar"},"Advanced/local-access-point":{"id":"Advanced/local-access-point","title":"Local access points","description":"This feature is currently experimental","sidebar":"tutorialSidebar"},"Advanced/remote-access/introduction":{"id":"Advanced/remote-access/introduction","title":"Setting up remote access","description":"Introduction to remote access","sidebar":"tutorialSidebar"},"Advanced/remote-access/ngrok":{"id":"Advanced/remote-access/ngrok","title":"Ngrok","description":"If you would like to expose the Pioreactor UI to view remotely, you can use a service like Ngrok to do so.","sidebar":"tutorialSidebar"},"Advanced/remote-access/tailscale":{"id":"Advanced/remote-access/tailscale","title":"Tailscale","description":"Unlike using Ngrok, this method does not expose your UI to the public internet. To access the UI remotely, you need to join an authenticated VPN. This greatly improves security, but adds a bit of additional work for users.","sidebar":"tutorialSidebar"},"Automations/dosing-automations":{"id":"Automations/dosing-automations","title":"Dosing automations","description":"When pairing the Pioreactor with dosing pumps, there are new capabilities and experiments you can run. The Pioreactor is pre-programmed with the following dosing automations. In the below automations, values highlighted like so are configurable.","sidebar":"tutorialSidebar"},"Automations/intro-to-automations":{"id":"Automations/intro-to-automations","title":"Introduction to automations","description":"So far, we have worked with basic activities that you can directly set as a one time thing, typically at the beginning of your experiment (starting stirring, OD readings, etc.). For more advanced experiments, we introduce automations.","sidebar":"tutorialSidebar"},"Automations/led-automations":{"id":"Automations/led-automations","title":"LED automations","description":"LED automations are ways to automatically control the 4 available LEDs in the Pioreactor. These LEDs can be used as a light source for photosynthetic microbes, influence the environment of the microbes, as additional sensors, or improve existing sensors.","sidebar":"tutorialSidebar"},"Automations/temperature-automations":{"id":"Automations/temperature-automations","title":"Temperature automations","description":"The heater in the Pioreactor wetware can be programmed to control the temperature of the vial in automated ways. Pioreactor is pre-programmed with the following temperature automations. In the below automations, values highlighted like so are configurable.","sidebar":"tutorialSidebar"},"Automations/writing-automations":{"id":"Automations/writing-automations","title":"Writing your own automations","description":"Writing your own custom automations is easy, but requires some knowledge of Python. If you\'re interested, see our documentation here.","sidebar":"tutorialSidebar"},"common-questions":{"id":"common-questions","title":"Common questions","description":"Pioreactor operation","sidebar":"tutorialSidebar"},"Experiment basics/Activities":{"id":"Experiment basics/Activities","title":"Activities","description":"Below is a list of activities that come available with the Pioreactor. Additionally, you can add activities using plugins. Read more about using plugins.","sidebar":"tutorialSidebar"},"Experiment basics/export-data":{"id":"Experiment basics/export-data","title":"Exporting data","description":"Experiment data can be exported using the Export data tab on the Pioreactor site.","sidebar":"tutorialSidebar"},"Experiment basics/manual-led-dosing":{"id":"Experiment basics/manual-led-dosing","title":"Dosing and LED updates","description":"Dosing","sidebar":"tutorialSidebar"},"Experiment basics/monitor-experiment":{"id":"Experiment basics/monitor-experiment","title":"Monitoring your experiment","description":"Navigate to the Overview page on the Pioreactor web interface. Here you can view live charts for growth rate, OD, normalized OD, and temperature. These overview graphs are used to monitor collected data during the experiment runtime.","sidebar":"tutorialSidebar"},"Experiment basics/od-normal-growth-rate":{"id":"Experiment basics/od-normal-growth-rate","title":"Optical density, normalization, and growth rates","description":"Background on optical density","sidebar":"tutorialSidebar"},"Experiment basics/prepare-vial-for-cultures":{"id":"Experiment basics/prepare-vial-for-cultures","title":"Preparing your vial for cultures","description":"1. Preparing the vial","sidebar":"tutorialSidebar"},"Experiment basics/running-self-test":{"id":"Experiment basics/running-self-test","title":"Running a self-test","description":"To get the best results and confirm your Pioreactor is working as expected, it\'s advisable to run a self-test on your Pioreactor after setting it up initially. The self-test routine can catch common errors that may compromise your data collection.","sidebar":"tutorialSidebar"},"Experiment basics/set-up-an-experiment":{"id":"Experiment basics/set-up-an-experiment","title":"Setting up an experiment","description":"Creating an experiment","sidebar":"tutorialSidebar"},"Extending your Pioreactor/06a-using-community-plugins":{"id":"Extending your Pioreactor/06a-using-community-plugins","title":"Using community plugins","description":"The Pioreactor comes with a large set of functionality and behaviour to accomplish most projects. For example, continuous culturing, optical density reading, and stable temperatures are available out-of-the-box. However, the specifics and range of how people use bioreactors goes far beyond what we could ever cover. That\'s why Pioreactor has added a platform so that community members can make their own extensions and share them with others. We call these plugins. (Below is how to install plugins - if you are looking to create your own plugins, see here.)","sidebar":"tutorialSidebar"},"Extending your Pioreactor/06b-list-of-plugins":{"id":"Extending your Pioreactor/06b-list-of-plugins","title":"List of available plugins","description":"Plugins offer a powerful way to extend your Pioreactor. Below is a list of our favourite plugins. Visit the guide on how to install plugins into your Pioreactor.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/adding-leds":{"id":"Extending your Pioreactor/adding-leds","title":"Using additional LEDs","description":"You can add your own LEDs to the Pioreactor. You might want to do this for the following reasons:","sidebar":"tutorialSidebar"},"Extending your Pioreactor/calibrate-od600":{"id":"Extending your Pioreactor/calibrate-od600","title":"Standard curves for OD600 readings","description":"Calibrating your OD600 readings","sidebar":"tutorialSidebar"},"Extending your Pioreactor/configuration":{"id":"Extending your Pioreactor/configuration","title":"Configuration via config.ini","description":"How configuration works across Pioreactors","sidebar":"tutorialSidebar"},"Extending your Pioreactor/create-cluster":{"id":"Extending your Pioreactor/create-cluster","title":"Creating a Pioreactor cluster","description":"Pioreactors are able to be used as individual units, or in concert with other Pioreactors. In either case, a Pioreactor needs to be assigned as a leader. The leader unit controls other Pioreactors (and that may include itself), stores the database, hosts the web interface, and is the interface between users and the hardware.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles":{"id":"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles","title":"Creating and editing experiment profiles","description":"Using the UI","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro":{"id":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro","title":"Intro to experiment profiles","description":"This is a new feature, and still in beta! We\'d love to hear your feedback on it: hello@pioreactor.com","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema":{"id":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema","title":"Experiment profiles schema","description":"Max number of actions","sidebar":"tutorialSidebar"},"Extending your Pioreactor/external-power":{"id":"Extending your Pioreactor/external-power","title":"Supplying more power to the PWM channels","description":"Some applications require more power to your Pioreactor if it is using lots of peripherals. This may include using more powerful pumps, more powerful external LEDs, etc. Or, if you see warning messages that reference under voltage or throttling, you probably are asking the Pioreactor to do too much given its default 5V power supply.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/hardware-calibrations":{"id":"Extending your Pioreactor/hardware-calibrations","title":"Hardware calibrations","description":"Hardware calibrations serve as a method to get accurate performance from your Pioreactor.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/updating-software":{"id":"Extending your Pioreactor/updating-software","title":"Updating the Pioreactor software","description":"We publish new software occasionally that fixes bugs, adds new features, and improves performance. You can update your Pioreactor(s) to the latest software from the UI. We highly recommend keeping your Pioreactor software up to date!","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Upgrade kits/high-temp-upgrade-kit":{"id":"Extending your Pioreactor/Upgrade kits/high-temp-upgrade-kit","title":"Adding the High Temp Upgrade kit","description":"If you purchased the High Temp Upgrade kit, you\'ll be replacing a few of your plastic components with the improved high-temp plastics. Once this is done, you\'ll also need to install some software:","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Upgrade kits/temperature-expansion-kit":{"id":"Extending your Pioreactor/Upgrade kits/temperature-expansion-kit","title":"Adding the Temperature Expansion Upgrade kit","description":"You can improve your Pioreactor temperature sensing capabilities with the Temperature Expansion Kit. This kit allows for faster temperature response times, more granular temperature data, and increasing the maximum culture temperature. Below are instructions on how to assemble the new hardware to your existing Pioreactor.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/using-pumps":{"id":"Extending your Pioreactor/using-pumps","title":"Using a peristaltic pump with your Pioreactor","description":"Viewing pump configuration in config.ini","sidebar":"tutorialSidebar"},"Extending your Pioreactor/using-stemma-qt":{"id":"Extending your Pioreactor/using-stemma-qt","title":"Using the StemmaQT/Qwicc connector","description":"The Pioreactor HAT comes with a connector for the StemmaQT / Qwiic connector that can be used to attach additional hardware for your Pioreactor. See image below:","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/faceplate-all-together":{"id":"getting-started/01b-hardware-set-up/faceplate-all-together","title":"Attaching the wetware to the HAT asssembly","description":"*\\tFan","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/introduction":{"id":"getting-started/01b-hardware-set-up/introduction","title":"Before you begin assembly","description":"You can expect the assembly to take approximately 20-30 minutes.","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/optics-assembly":{"id":"getting-started/01b-hardware-set-up/optics-assembly","title":"Connect the optics system","description":"1. You will need both PD cables (dark bulbs) and IR cable (clear bulb).","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/rpi-hat-assembly":{"id":"getting-started/01b-hardware-set-up/rpi-hat-assembly","title":"Assembling the Raspberry Pi and the HAT","description":"1. You will need:","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/wetware-assembly":{"id":"getting-started/01b-hardware-set-up/wetware-assembly","title":"Wetware assembly","description":"You will need:","sidebar":"tutorialSidebar"},"getting-started/01c-software-set-up":{"id":"getting-started/01c-software-set-up","title":"Software installation","description":"Install the Pioreactor software onto the Raspberry Pi","sidebar":"tutorialSidebar"},"getting-started/gettingstarted":{"id":"getting-started/gettingstarted","title":"Assembly introduction","description":"Let\'s get your Pioreactor set up. We\'ll start with hardware assembly. Start below:","sidebar":"tutorialSidebar"},"introduction":{"id":"introduction","title":"Introduction","description":"The Pioreactor is an open-source, affordable, and extensible bioreactor platform. The goal is to enable biologists, educators, DIYers, biohackers, and enthusiasts to be able to reliably control and study the growth of microorganisms.","sidebar":"tutorialSidebar"},"Troubleshooting/error-codes":{"id":"Troubleshooting/error-codes","title":"Blue LED flashing & error codes","description":"When a Pioreactor successfully boots, the onboard blue LED will flash quickly for 2 seconds, and then stop. However, there are times when the Pioreactor encounters an error, and will use the LED to alert to you that something is wrong. By counting the number of short flashes (per cycle), you can diagnose what might be wrong.","sidebar":"tutorialSidebar"},"Troubleshooting/Hardware troubleshooting":{"id":"Troubleshooting/Hardware troubleshooting","title":"Hardware and operation","description":"My Pioreactor isn\'t responsive anymore","sidebar":"tutorialSidebar"},"Troubleshooting/Power troubleshooting":{"id":"Troubleshooting/Power troubleshooting","title":"Power and restarts","description":"Brown-outs","sidebar":"tutorialSidebar"},"Troubleshooting/Stirring troubleshooting":{"id":"Troubleshooting/Stirring troubleshooting","title":"Stirring","description":"Stirring is making a grinding noise.","sidebar":"tutorialSidebar"},"Troubleshooting/UI troubleshooting":{"id":"Troubleshooting/UI troubleshooting","title":"User interface","description":"I\'m not able to access http://pioreactor.local","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.f03a432c.js b/assets/js/935f2afb.f03a432c.js deleted file mode 100644 index 3bacebb82..000000000 --- a/assets/js/935f2afb.f03a432c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/user-guide/introduction","docId":"introduction"},{"type":"category","label":"Getting started","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Assembly introduction","href":"/user-guide/getting-started","docId":"getting-started/gettingstarted"},{"type":"category","label":"Hardware assembly","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Before you begin assembly","href":"/user-guide/hardware-setup-intro","docId":"getting-started/01b-hardware-set-up/introduction"},{"type":"link","label":"Assembling the Raspberry Pi and the HAT","href":"/user-guide/rpi-hat-assembly","docId":"getting-started/01b-hardware-set-up/rpi-hat-assembly"},{"type":"link","label":"Wetware assembly","href":"/user-guide/wetware-assembly","docId":"getting-started/01b-hardware-set-up/wetware-assembly"},{"type":"link","label":"Attaching the wetware to the HAT asssembly","href":"/user-guide/putting-it-together","docId":"getting-started/01b-hardware-set-up/faceplate-all-together"},{"type":"link","label":"Connect the optics system","href":"/user-guide/optics-assembly","docId":"getting-started/01b-hardware-set-up/optics-assembly"}]},{"type":"link","label":"Software installation","href":"/user-guide/software-set-up","docId":"getting-started/01c-software-set-up"}]},{"type":"category","label":"Experiment basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Preparing your vial for cultures","href":"/user-guide/prepare-vial-for-cultures","docId":"Experiment basics/prepare-vial-for-cultures"},{"type":"link","label":"Setting up an experiment","href":"/user-guide/set-up-an-experiment","docId":"Experiment basics/set-up-an-experiment"},{"type":"link","label":"Activities","href":"/user-guide/activities","docId":"Experiment basics/Activities"},{"type":"link","label":"Monitoring your experiment","href":"/user-guide/monitor-experiment","docId":"Experiment basics/monitor-experiment"},{"type":"link","label":"Exporting data","href":"/user-guide/export-data","docId":"Experiment basics/export-data"},{"type":"link","label":"Optical density, normalization, and growth rates","href":"/user-guide/od-normal-growth-rate","docId":"Experiment basics/od-normal-growth-rate"},{"type":"link","label":"Dosing and LED updates","href":"/user-guide/manual-dosing-leds","docId":"Experiment basics/manual-led-dosing"},{"type":"link","label":"Running a self-test","href":"/user-guide/running-self-test","docId":"Experiment basics/running-self-test"}]},{"type":"category","label":"Extending your Pioreactor","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creating a Pioreactor cluster","href":"/user-guide/create-cluster","docId":"Extending your Pioreactor/create-cluster"},{"type":"link","label":"Using additional LEDs","href":"/user-guide/using-leds","docId":"Extending your Pioreactor/adding-leds"},{"type":"category","label":"Experiment Profiles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro to experiment profiles","href":"/user-guide/experiment-profiles","docId":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro"},{"type":"link","label":"Creating and editing experiment profiles","href":"/user-guide/create-edit-experiment-profiles","docId":"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles"},{"type":"link","label":"Experiment profiles schema","href":"/user-guide/experiment-profiles-schema","docId":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema"}]},{"type":"link","label":"Standard curves for OD600 readings","href":"/user-guide/calibrate-od600","docId":"Extending your Pioreactor/calibrate-od600"},{"type":"link","label":"Configuration via config.ini","href":"/user-guide/configuration","docId":"Extending your Pioreactor/configuration"},{"type":"link","label":"Using a peristaltic pump with your Pioreactor","href":"/user-guide/using-pumps","docId":"Extending your Pioreactor/using-pumps"},{"type":"link","label":"Hardware calibrations","href":"/user-guide/hardware-calibrations","docId":"Extending your Pioreactor/hardware-calibrations"},{"type":"link","label":"Supplying more power to the PWM channels","href":"/user-guide/external-power","docId":"Extending your Pioreactor/external-power"},{"type":"link","label":"Using the StemmaQT/Qwicc connector","href":"/user-guide/using-stemma-qt","docId":"Extending your Pioreactor/using-stemma-qt"},{"type":"link","label":"Updating the Pioreactor software","href":"/user-guide/updating-software","docId":"Extending your Pioreactor/updating-software"},{"type":"category","label":"Upgrade kits","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Adding the Temperature Expansion Upgrade kit","href":"/user-guide/temperature-expansion-kit","docId":"Extending your Pioreactor/Upgrade kits/temperature-expansion-kit"},{"type":"link","label":"Adding the High Temp Upgrade kit","href":"/user-guide/high-temp-upgrade-kit","docId":"Extending your Pioreactor/Upgrade kits/high-temp-upgrade-kit"}]},{"type":"link","label":"Using community plugins","href":"/user-guide/using-community-plugins","docId":"Extending your Pioreactor/06a-using-community-plugins"},{"type":"link","label":"List of available plugins","href":"/user-guide/available-plugins","docId":"Extending your Pioreactor/06b-list-of-plugins"}]},{"type":"category","label":"Automations","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction to automations","href":"/user-guide/intro-to-automations","docId":"Automations/intro-to-automations"},{"type":"link","label":"Temperature automations","href":"/user-guide/temperature-automations","docId":"Automations/temperature-automations"},{"type":"link","label":"Dosing automations","href":"/user-guide/dosing-automations","docId":"Automations/dosing-automations"},{"type":"link","label":"LED automations","href":"/user-guide/led-automations","docId":"Automations/led-automations"},{"type":"link","label":"Writing your own automations","href":"/user-guide/write-own-automations","docId":"Automations/writing-automations"}]},{"type":"category","label":"Advanced","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Accessing the Raspberry Pi","href":"/user-guide/accessing-raspberry-pi","docId":"Advanced/accessing-raspberry-pi"},{"type":"link","label":"Command line interface","href":"/user-guide/cli","docId":"Advanced/cli"},{"type":"category","label":"Remote access to your Pioreactors","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Setting up remote access","href":"/user-guide/remote-access","docId":"Advanced/remote-access/introduction"},{"type":"link","label":"Ngrok","href":"/user-guide/ngrok-remote-access","docId":"Advanced/remote-access/ngrok"},{"type":"link","label":"Tailscale","href":"/user-guide/tailscale-remote-access","docId":"Advanced/remote-access/tailscale"}]},{"type":"link","label":"Local access points","href":"/user-guide/local-access-point","docId":"Advanced/local-access-point"},{"type":"category","label":"Additional Hardware","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"More on peristaltic pumps","href":"/user-guide/addition-hardware-pumps","docId":"Advanced/additional-hardware/pumps"},{"type":"link","label":"Pinch valves","href":"/user-guide/pinch-valves","docId":"Advanced/additional-hardware/pinch-valves"},{"type":"link","label":"Hardware connection assembly","href":"/user-guide/hardware-connection-assembly","docId":"Advanced/additional-hardware/hardware-connection-assembly"}]},{"type":"link","label":"Writing Pioreactor scripts with Python","href":"/user-guide/intro-python-scripting","docId":"Advanced/intro-python-scripting"},{"type":"link","label":"Export and import your data","href":"/user-guide/export-import-existing-data","docId":"Advanced/export-import-existing-data"}]},{"type":"category","label":"Troubleshooting","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Blue LED flashing & error codes","href":"/user-guide/error-codes","docId":"Troubleshooting/error-codes"},{"type":"link","label":"Hardware (PCBs)","href":"/user-guide/troubleshooting-Hardware","docId":"Troubleshooting/Hardware troubleshooting"},{"type":"link","label":"Power and restarts","href":"/user-guide/troubleshooting-power","docId":"Troubleshooting/Power troubleshooting"},{"type":"link","label":"Stirring","href":"/user-guide/troubleshooting-stirring","docId":"Troubleshooting/Stirring troubleshooting"},{"type":"link","label":"User interface","href":"/user-guide/troubleshooting-ui","docId":"Troubleshooting/UI troubleshooting"}]},{"type":"link","label":"Common questions","href":"/user-guide/common-questions","docId":"common-questions"}]},"docs":{"Advanced/accessing-raspberry-pi":{"id":"Advanced/accessing-raspberry-pi","title":"Accessing the Raspberry Pi","description":"For more customization and control of your Pioreactor, you can access the Raspberry Pi\'s command line. From the command line, you can view more logs, control individual Pioreactors, and more.","sidebar":"tutorialSidebar"},"Advanced/additional-hardware/hardware-connection-assembly":{"id":"Advanced/additional-hardware/hardware-connection-assembly","title":"Hardware connection assembly","description":"Normally, the external hardware will have two terminals, corresponding to positive and ground. The positive terminal may be marked by a dot, or \\"+\\" symbol, or be colored red. Make note of this terminal.","sidebar":"tutorialSidebar"},"Advanced/additional-hardware/pinch-valves":{"id":"Advanced/additional-hardware/pinch-valves","title":"Pinch valves","description":"Pinch valves are useful for controlling gas into the Pioreactor by \\"pinching\\" a gas line closed (or keeping it open). This could used be for injecting gas periodically into the headspace, or acting as a bubbler by putting the injection tube directly into the culture. Below is a diagram of using a pinch valve to periodically provide CO\u2082 into the head space of the Pioreactor\'s vial:","sidebar":"tutorialSidebar"},"Advanced/additional-hardware/pumps":{"id":"Advanced/additional-hardware/pumps","title":"More on peristaltic pumps","description":"The PWM output default to 5V (specifically, it\'s tied to the power supply, so it may be 5.1V, 5.2V etc. See your power supply). You are able to use 12V pumps successfully even at 5V output. However, you can also use the AUX power connection to change the PWM output.","sidebar":"tutorialSidebar"},"Advanced/cli":{"id":"Advanced/cli","title":"Command line interface","description":"For those interested, you can use the command line to interact with the Pioreactors. This is called the command line interface (CLI). Log onto either the leader or worker and you can execute the following commands. Full options and up-to-date documentation are available with pio --help.","sidebar":"tutorialSidebar"},"Advanced/export-import-existing-data":{"id":"Advanced/export-import-existing-data","title":"Export and import your data","description":"Export your data","sidebar":"tutorialSidebar"},"Advanced/intro-python-scripting":{"id":"Advanced/intro-python-scripting","title":"Writing Pioreactor scripts with Python","description":"This article isn\'t intended as a crash course in Python, or Pioreactor software, but some helpful ways to write small scripts for your Pioreactor. If interested in learning more, check out the developer docs for detailed information.","sidebar":"tutorialSidebar"},"Advanced/local-access-point":{"id":"Advanced/local-access-point","title":"Local access points","description":"This feature is currently experimental","sidebar":"tutorialSidebar"},"Advanced/remote-access/introduction":{"id":"Advanced/remote-access/introduction","title":"Setting up remote access","description":"Introduction to remote access","sidebar":"tutorialSidebar"},"Advanced/remote-access/ngrok":{"id":"Advanced/remote-access/ngrok","title":"Ngrok","description":"If you would like to expose the Pioreactor UI to view remotely, you can use a service like Ngrok to do so.","sidebar":"tutorialSidebar"},"Advanced/remote-access/tailscale":{"id":"Advanced/remote-access/tailscale","title":"Tailscale","description":"Unlike using Ngrok, this method does not expose your UI to the public internet. To access the UI remotely, you need to join an authenticated VPN. This greatly improves security, but adds a bit of additional work for users.","sidebar":"tutorialSidebar"},"Automations/dosing-automations":{"id":"Automations/dosing-automations","title":"Dosing automations","description":"When pairing the Pioreactor with dosing pumps, there are new capabilities and experiments you can run. The Pioreactor is pre-programmed with the following dosing automations. In the below automations, values highlighted like so are configurable.","sidebar":"tutorialSidebar"},"Automations/intro-to-automations":{"id":"Automations/intro-to-automations","title":"Introduction to automations","description":"So far, we have worked with basic activities that you can directly set as a one time thing, typically at the beginning of your experiment (starting stirring, OD readings, etc.). For more advanced experiments, we introduce automations.","sidebar":"tutorialSidebar"},"Automations/led-automations":{"id":"Automations/led-automations","title":"LED automations","description":"LED automations are ways to automatically control the 4 available LEDs in the Pioreactor. These LEDs can be used as a light source for photosynthetic microbes, influence the environment of the microbes, as additional sensors, or improve existing sensors.","sidebar":"tutorialSidebar"},"Automations/temperature-automations":{"id":"Automations/temperature-automations","title":"Temperature automations","description":"The heater in the Pioreactor wetware can be programmed to control the temperature of the vial in automated ways. Pioreactor is pre-programmed with the following temperature automations. In the below automations, values highlighted like so are configurable.","sidebar":"tutorialSidebar"},"Automations/writing-automations":{"id":"Automations/writing-automations","title":"Writing your own automations","description":"Writing your own custom automations is easy, but requires some knowledge of Python. If you\'re interested, see our documentation here.","sidebar":"tutorialSidebar"},"common-questions":{"id":"common-questions","title":"Common questions","description":"Pioreactor operation","sidebar":"tutorialSidebar"},"Experiment basics/Activities":{"id":"Experiment basics/Activities","title":"Activities","description":"Below is a list of activities that come available with the Pioreactor. Additionally, you can add activities using plugins. Read more about using plugins.","sidebar":"tutorialSidebar"},"Experiment basics/export-data":{"id":"Experiment basics/export-data","title":"Exporting data","description":"Experiment data can be exported using the Export data tab on the Pioreactor site.","sidebar":"tutorialSidebar"},"Experiment basics/manual-led-dosing":{"id":"Experiment basics/manual-led-dosing","title":"Dosing and LED updates","description":"Dosing","sidebar":"tutorialSidebar"},"Experiment basics/monitor-experiment":{"id":"Experiment basics/monitor-experiment","title":"Monitoring your experiment","description":"Navigate to the Overview page on the Pioreactor web interface. Here you can view live charts for growth rate, OD, normalized OD, and temperature. These overview graphs are used to monitor collected data during the experiment runtime.","sidebar":"tutorialSidebar"},"Experiment basics/od-normal-growth-rate":{"id":"Experiment basics/od-normal-growth-rate","title":"Optical density, normalization, and growth rates","description":"Background on optical density","sidebar":"tutorialSidebar"},"Experiment basics/prepare-vial-for-cultures":{"id":"Experiment basics/prepare-vial-for-cultures","title":"Preparing your vial for cultures","description":"1. Preparing the vial","sidebar":"tutorialSidebar"},"Experiment basics/running-self-test":{"id":"Experiment basics/running-self-test","title":"Running a self-test","description":"To get the best results and confirm your Pioreactor is working as expected, it\'s advisable to run a self-test on your Pioreactor after setting it up initially. The self-test routine can catch common errors that may compromise your data collection.","sidebar":"tutorialSidebar"},"Experiment basics/set-up-an-experiment":{"id":"Experiment basics/set-up-an-experiment","title":"Setting up an experiment","description":"Creating an experiment","sidebar":"tutorialSidebar"},"Extending your Pioreactor/06a-using-community-plugins":{"id":"Extending your Pioreactor/06a-using-community-plugins","title":"Using community plugins","description":"The Pioreactor comes with a large set of functionality and behaviour to accomplish most projects. For example, continuous culturing, optical density reading, and stable temperatures are available out-of-the-box. However, the specifics and range of how people use bioreactors goes far beyond what we could ever cover. That\'s why Pioreactor has added a platform so that community members can make their own extensions and share them with others. We call these plugins. (Below is how to install plugins - if you are looking to create your own plugins, see here.)","sidebar":"tutorialSidebar"},"Extending your Pioreactor/06b-list-of-plugins":{"id":"Extending your Pioreactor/06b-list-of-plugins","title":"List of available plugins","description":"Plugins offer a powerful way to extend your Pioreactor. Below is a list of our favourite plugins. Visit the guide on how to install plugins into your Pioreactor.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/adding-leds":{"id":"Extending your Pioreactor/adding-leds","title":"Using additional LEDs","description":"You can add your own LEDs to the Pioreactor. You might want to do this for the following reasons:","sidebar":"tutorialSidebar"},"Extending your Pioreactor/calibrate-od600":{"id":"Extending your Pioreactor/calibrate-od600","title":"Standard curves for OD600 readings","description":"Calibrating your OD600 readings","sidebar":"tutorialSidebar"},"Extending your Pioreactor/configuration":{"id":"Extending your Pioreactor/configuration","title":"Configuration via config.ini","description":"How configuration works across Pioreactors","sidebar":"tutorialSidebar"},"Extending your Pioreactor/create-cluster":{"id":"Extending your Pioreactor/create-cluster","title":"Creating a Pioreactor cluster","description":"Pioreactors are able to be used as individual units, or in concert with other Pioreactors. In either case, a Pioreactor needs to be assigned as a leader. The leader unit controls other Pioreactors (and that may include itself), stores the database, hosts the web interface, and is the interface between users and the hardware.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles":{"id":"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles","title":"Creating and editing experiment profiles","description":"Using the UI","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro":{"id":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro","title":"Intro to experiment profiles","description":"This is a new feature, and still in beta! We\'d love to hear your feedback on it: hello@pioreactor.com","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema":{"id":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema","title":"Experiment profiles schema","description":"Max number of actions","sidebar":"tutorialSidebar"},"Extending your Pioreactor/external-power":{"id":"Extending your Pioreactor/external-power","title":"Supplying more power to the PWM channels","description":"Some applications require more power to your Pioreactor if it is using lots of peripherals. This may include using more powerful pumps, more powerful external LEDs, etc. Or, if you see warning messages that reference under voltage or throttling, you probably are asking the Pioreactor to do too much given its default 5V power supply.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/hardware-calibrations":{"id":"Extending your Pioreactor/hardware-calibrations","title":"Hardware calibrations","description":"Hardware calibrations serve as a method to get accurate performance from your Pioreactor.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/updating-software":{"id":"Extending your Pioreactor/updating-software","title":"Updating the Pioreactor software","description":"We publish new software occasionally that fixes bugs, adds new features, and improves performance. You can update your Pioreactor(s) to the latest software from the UI. We highly recommend keeping your Pioreactor software up to date!","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Upgrade kits/high-temp-upgrade-kit":{"id":"Extending your Pioreactor/Upgrade kits/high-temp-upgrade-kit","title":"Adding the High Temp Upgrade kit","description":"If you purchased the High Temp Upgrade kit, you\'ll be replacing a few of your plastic components with the improved high-temp plastics. Once this is done, you\'ll also need to install some software:","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Upgrade kits/temperature-expansion-kit":{"id":"Extending your Pioreactor/Upgrade kits/temperature-expansion-kit","title":"Adding the Temperature Expansion Upgrade kit","description":"You can improve your Pioreactor temperature sensing capabilities with the Temperature Expansion Kit. This kit allows for faster temperature response times, more granular temperature data, and increasing the maximum culture temperature. Below are instructions on how to assemble the new hardware to your existing Pioreactor.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/using-pumps":{"id":"Extending your Pioreactor/using-pumps","title":"Using a peristaltic pump with your Pioreactor","description":"Viewing pump configuration in config.ini","sidebar":"tutorialSidebar"},"Extending your Pioreactor/using-stemma-qt":{"id":"Extending your Pioreactor/using-stemma-qt","title":"Using the StemmaQT/Qwicc connector","description":"The Pioreactor HAT comes with a connector for the StemmaQT / Qwiic connector that can be used to attach additional hardware for your Pioreactor. See image below:","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/faceplate-all-together":{"id":"getting-started/01b-hardware-set-up/faceplate-all-together","title":"Attaching the wetware to the HAT asssembly","description":"*\\tFan","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/introduction":{"id":"getting-started/01b-hardware-set-up/introduction","title":"Before you begin assembly","description":"You can expect the assembly to take approximately 20-30 minutes.","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/optics-assembly":{"id":"getting-started/01b-hardware-set-up/optics-assembly","title":"Connect the optics system","description":"1. You will need both PD cables (dark bulbs) and IR cable (clear bulb).","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/rpi-hat-assembly":{"id":"getting-started/01b-hardware-set-up/rpi-hat-assembly","title":"Assembling the Raspberry Pi and the HAT","description":"1. You will need:","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/wetware-assembly":{"id":"getting-started/01b-hardware-set-up/wetware-assembly","title":"Wetware assembly","description":"You will need:","sidebar":"tutorialSidebar"},"getting-started/01c-software-set-up":{"id":"getting-started/01c-software-set-up","title":"Software installation","description":"Install the Pioreactor software onto the Raspberry Pi","sidebar":"tutorialSidebar"},"getting-started/gettingstarted":{"id":"getting-started/gettingstarted","title":"Assembly introduction","description":"Let\'s get your Pioreactor set up. We\'ll start with hardware assembly. Start below:","sidebar":"tutorialSidebar"},"introduction":{"id":"introduction","title":"Introduction","description":"The Pioreactor is an open-source, affordable, and extensible bioreactor platform. The goal is to enable biologists, educators, DIYers, biohackers, and enthusiasts to be able to reliably control and study the growth of microorganisms.","sidebar":"tutorialSidebar"},"Troubleshooting/error-codes":{"id":"Troubleshooting/error-codes","title":"Blue LED flashing & error codes","description":"When a Pioreactor successfully boots, the onboard blue LED will flash quickly for 2 seconds, and then stop. However, there are times when the Pioreactor encounters an error, and will use the LED to alert to you that something is wrong. By counting the number of short flashes (per cycle), you can diagnose what might be wrong.","sidebar":"tutorialSidebar"},"Troubleshooting/Hardware troubleshooting":{"id":"Troubleshooting/Hardware troubleshooting","title":"Hardware (PCBs)","description":"I often see a \\"Pioreactor HAT must be present\\" error, but the HAT is definitely attached.","sidebar":"tutorialSidebar"},"Troubleshooting/Power troubleshooting":{"id":"Troubleshooting/Power troubleshooting","title":"Power and restarts","description":"Brown-outs","sidebar":"tutorialSidebar"},"Troubleshooting/Stirring troubleshooting":{"id":"Troubleshooting/Stirring troubleshooting","title":"Stirring","description":"Stirring is making a grinding noise.","sidebar":"tutorialSidebar"},"Troubleshooting/UI troubleshooting":{"id":"Troubleshooting/UI troubleshooting","title":"User interface","description":"I\'m not able to access http://pioreactor.local","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/d92ee6a6.1d5647e7.js b/assets/js/d92ee6a6.1d5647e7.js new file mode 100644 index 000000000..64039e3b1 --- /dev/null +++ b/assets/js/d92ee6a6.1d5647e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[4459],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=o.createContext({}),l=function(e){var t=o.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,u=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=l(r),m=n,h=c["".concat(u,".").concat(m)]||c[m]||d[m]||a;return r?o.createElement(h,i(i({ref:t},p),{},{components:r})):o.createElement(h,i({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=m;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var o=r(87462),n=(r(67294),r(3905));const a={title:"Power and restarts",slug:"/troubleshooting-power"},i=void 0,s={unversionedId:"Troubleshooting/Power troubleshooting",id:"Troubleshooting/Power troubleshooting",title:"Power and restarts",description:"Brown-outs",source:"@site/user-guide/50-Troubleshooting/Power troubleshooting.md",sourceDirName:"50-Troubleshooting",slug:"/troubleshooting-power",permalink:"/user-guide/troubleshooting-power",draft:!1,tags:[],version:"current",frontMatter:{title:"Power and restarts",slug:"/troubleshooting-power"},sidebar:"tutorialSidebar",previous:{title:"Hardware and operation",permalink:"/user-guide/troubleshooting-hardware"},next:{title:"Stirring",permalink:"/user-guide/troubleshooting-stirring"}},u={},l=[{value:"Brown-outs",id:"brown-outs",level:4},{value:"Pioreactor restarts when a PWM output is turned on",id:"pioreactor-restarts-when-a-pwm-output-is-turned-on",level:4}],p={toc:l},c="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h4",{id:"brown-outs"},"Brown-outs"),(0,n.kt)("p",null,"If you find that your Pioreactor is halting jobs (eg: the UI says ",(0,n.kt)("em",{parentName:"p"},"lost")," and stirring/motors have stopped), or you find that your Pioreactor is restarting itself often, this could be due to ",(0,n.kt)("em",{parentName:"p"},"brown-outs"),"."),(0,n.kt)("p",null,"Brown-outs are when your power supply is momentarily reduced to the point that the Raspberry Pi shuts down. When the power comes back up, the Raspberry Pi will start up again. This is most likely caused by:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"An inadequate power supply unit (PSU). You need to use a proper PSU (5V, at least 2.5 Amps), and certainly not a phone charger. We like the Raspberry Pi's official PSU."),(0,n.kt)("li",{parentName:"ol"},"If you are running a lot of power: high temperature, stirring, pumping often, additional LEDs (or some combination) and you are experiencing brown-outs, we suggest adding an ",(0,n.kt)("a",{parentName:"li",href:"https://docs.pioreactor.com/user-guide/external-power"},"external power supply for the PWM outputs"),"."),(0,n.kt)("li",{parentName:"ol"},"You can view the PWM's voltage for a Pioreactor under ",(0,n.kt)("em",{parentName:"li"},"Manage")," -> ",(0,n.kt)("em",{parentName:"li"},"System")," -> ",(0,n.kt)("em",{parentName:"li"},"Voltage on PWM rail"),". This should be near 5.0V.")),(0,n.kt)("h4",{id:"pioreactor-restarts-when-a-pwm-output-is-turned-on"},"Pioreactor restarts when a PWM output is turned on"),(0,n.kt)("p",null,"If your Pioreactor restarts with a pump, stirring fan, etc. turns out, it's possible there is a short in the connectors. Email us at ",(0,n.kt)("a",{parentName:"p",href:"mailto:help@pioreactor.com"},"help@pioreactor.com")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d92ee6a6.f959e4f3.js b/assets/js/d92ee6a6.f959e4f3.js deleted file mode 100644 index 64661aa4d..000000000 --- a/assets/js/d92ee6a6.f959e4f3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[4459],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=o.createContext({}),l=function(e){var t=o.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,u=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=l(r),d=n,h=c["".concat(u,".").concat(d)]||c[d]||m[d]||a;return r?o.createElement(h,i(i({ref:t},p),{},{components:r})):o.createElement(h,i({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var o=r(87462),n=(r(67294),r(3905));const a={title:"Power and restarts",slug:"/troubleshooting-power"},i=void 0,s={unversionedId:"Troubleshooting/Power troubleshooting",id:"Troubleshooting/Power troubleshooting",title:"Power and restarts",description:"Brown-outs",source:"@site/user-guide/50-Troubleshooting/Power troubleshooting.md",sourceDirName:"50-Troubleshooting",slug:"/troubleshooting-power",permalink:"/user-guide/troubleshooting-power",draft:!1,tags:[],version:"current",frontMatter:{title:"Power and restarts",slug:"/troubleshooting-power"},sidebar:"tutorialSidebar",previous:{title:"Hardware (PCBs)",permalink:"/user-guide/troubleshooting-Hardware"},next:{title:"Stirring",permalink:"/user-guide/troubleshooting-stirring"}},u={},l=[{value:"Brown-outs",id:"brown-outs",level:4},{value:"Pioreactor restarts when a PWM output is turned on",id:"pioreactor-restarts-when-a-pwm-output-is-turned-on",level:4}],p={toc:l},c="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h4",{id:"brown-outs"},"Brown-outs"),(0,n.kt)("p",null,"If you find that your Pioreactor is halting jobs (eg: the UI says ",(0,n.kt)("em",{parentName:"p"},"lost")," and stirring/motors have stopped), or you find that your Pioreactor is restarting itself often, this could be due to ",(0,n.kt)("em",{parentName:"p"},"brown-outs"),"."),(0,n.kt)("p",null,"Brown-outs are when your power supply is momentarily reduced to the point that the Raspberry Pi shuts down. When the power comes back up, the Raspberry Pi will start up again. This is most likely caused by:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"An inadequate power supply unit (PSU). You need to use a proper PSU (5V, at least 2.5 Amps), and certainly not a phone charger. We like the Raspberry Pi's official PSU."),(0,n.kt)("li",{parentName:"ol"},"If you are running a lot of power: high temperature, stirring, pumping often, additional LEDs (or some combination) and you are experiencing brown-outs, we suggest adding an ",(0,n.kt)("a",{parentName:"li",href:"https://docs.pioreactor.com/user-guide/external-power"},"external power supply for the PWM outputs"),"."),(0,n.kt)("li",{parentName:"ol"},"You can view the PWM's voltage for a Pioreactor under ",(0,n.kt)("em",{parentName:"li"},"Manage")," -> ",(0,n.kt)("em",{parentName:"li"},"System")," -> ",(0,n.kt)("em",{parentName:"li"},"Voltage on PWM rail"),". This should be near 5.0V.")),(0,n.kt)("h4",{id:"pioreactor-restarts-when-a-pwm-output-is-turned-on"},"Pioreactor restarts when a PWM output is turned on"),(0,n.kt)("p",null,"If your Pioreactor restarts with a pump, stirring fan, etc. turns out, it's possible there is a short in the connectors. Email us at ",(0,n.kt)("a",{parentName:"p",href:"mailto:help@pioreactor.com"},"help@pioreactor.com")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.92cd0c69.js b/assets/js/main.52f929a4.js similarity index 99% rename from assets/js/main.92cd0c69.js rename to assets/js/main.52f929a4.js index 4833e466e..a5e887b86 100644 --- a/assets/js/main.92cd0c69.js +++ b/assets/js/main.52f929a4.js @@ -1,2 +1,2 @@ -/*! For license information please see main.92cd0c69.js.LICENSE.txt */ -(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(67294),a=n(87462),i=n(68356),o=n.n(i),l=n(16887);const s={"003b35d7":[()=>n.e(9545).then(n.bind(n,2661)),"@site/user-guide/03-Extending your Pioreactor/04-Experiment Profiles/01-experiment-profiles-intro.md",2661],"00cdadf9":[()=>Promise.all([n.e(532),n.e(182)]).then(n.bind(n,79406)),"@site/user-guide/01-getting-started/01b-hardware-set-up/02-rpi-hat-assembly.md",79406],"00d2eda0":[()=>n.e(4469).then(n.bind(n,84300)),"@site/user-guide/50-Troubleshooting/Stirring troubleshooting.md",84300],"011272c3":[()=>n.e(7543).then(n.bind(n,94186)),"@site/developer-guide/10-Hardware/05-pinout.md",94186],"063154f2":[()=>n.e(8756).then(n.bind(n,35710)),"@site/user-guide/29-Automations/04-writing-automations.md",35710],"07a88ca4":[()=>n.e(5953).then(n.t.bind(n,44654,19)),"~docs/experiments/version-current-metadata-prop-751.json",44654],"0fa95718":[()=>Promise.all([n.e(532),n.e(3582)]).then(n.bind(n,82756)),"@site/experiments/02-Secondary level education/low-vs-high-conc-media.md",82756],"12af2043":[()=>n.e(9631).then(n.bind(n,60277)),"@site/user-guide/50-Troubleshooting/Hardware troubleshooting.md",60277],"136add71":[()=>Promise.all([n.e(532),n.e(4919)]).then(n.bind(n,6043)),"@site/user-guide/01-getting-started/01b-hardware-set-up/05-optics-assembly.md",6043],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,57436)),"@theme/DocItem",57436],"17e57afd":[()=>n.e(8961).then(n.bind(n,99687)),"@site/user-guide/03-Extending your Pioreactor/04-Experiment Profiles/02-create-edit-experiment-profiles.md",99687],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,51473)),"@theme/SearchPage",51473],"1aa51b29":[()=>n.e(8470).then(n.bind(n,7190)),"@site/user-guide/02-Experiment basics/09-od-normal-growth-rate.md",7190],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,19963)),"@theme/DocPage",19963],"1f29aed5":[()=>n.e(8289).then(n.t.bind(n,43177,19)),"~docs/developer-guide/version-current-metadata-prop-751.json",43177],"242a2306":[()=>Promise.all([n.e(532),n.e(5879)]).then(n.bind(n,9913)),"@site/experiments/02-Secondary level education/yeast-in-ethanol.md",9913],"270e3b24":[()=>n.e(3255).then(n.bind(n,58093)),"@site/developer-guide/09-Storage and the filesystem/02-filesystem.md",58093],"27a03a91":[()=>Promise.all([n.e(532),n.e(7615)]).then(n.bind(n,68195)),"@site/experiments/03-University level education/00-continuous-cultures-using-turbidostat.md",68195],28292353:[()=>Promise.all([n.e(532),n.e(9056)]).then(n.bind(n,6138)),"@site/user-guide/03-Extending your Pioreactor/06a-using-community-plugins.mdx",6138],"2b5b8f8a":[()=>n.e(6217).then(n.bind(n,78879)),"@site/user-guide/03-Extending your Pioreactor/11-using-stemma-qt.md",78879],"2c924c11":[()=>Promise.all([n.e(532),n.e(4962)]).then(n.bind(n,66307)),"@site/experiments/01-Introduction.md",66307],"2d7bf355":[()=>n.e(7118).then(n.bind(n,51076)),"@site/developer-guide/20-User interface/01-introduction.md",51076],"2fd9ad7f":[()=>n.e(2516).then(n.t.bind(n,38070,19)),"~docs/experiments/tag-experiments-tags-salt-717.json",38070],"3720c009":[()=>Promise.all([n.e(532),n.e(3751)]).then(n.bind(n,9861)),"@theme/DocTagsListPage",9861],"3ab34b0a":[()=>n.e(2939).then(n.t.bind(n,21060,19)),"~docs/experiments/tags-list-current-prop-15a.json",21060],"3b1fd47b":[()=>n.e(4304).then(n.t.bind(n,76650,19)),"~docs/experiments/tag-experiments-tags-caffeine-17d.json",76650],"3c3add90":[()=>n.e(2084).then(n.bind(n,44645)),"@site/developer-guide/20-User interface/02-api.md",44645],"433fc4eb":[()=>Promise.all([n.e(532),n.e(301)]).then(n.bind(n,45224)),"@site/user-guide/02-Experiment basics/04-set-up-an-experiment.md",45224],"4618fa18":[()=>n.e(1326).then(n.bind(n,8472)),"@site/developer-guide/30-Development/01-local-development.md",8472],"496d660a":[()=>n.e(6682).then(n.bind(n,65394)),"@site/developer-guide/03-Background jobs/03-avoiding-od.md",65394],"4b7e99ca":[()=>n.e(7062).then(n.bind(n,27946)),"@site/user-guide/02-Experiment basics/06-monitor-experiment.md",27946],"54bf282b":[()=>Promise.all([n.e(532),n.e(9963)]).then(n.bind(n,73024)),"@site/experiments/02-Secondary level education/salt-stress-on-yeast.md",73024],"55bdb91f":[()=>n.e(3700).then(n.t.bind(n,15745,19)),"/home/runner/work/docs.pioreactor/docs.pioreactor/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],"58be8993":[()=>Promise.all([n.e(532),n.e(3963)]).then(n.bind(n,65426)),"@site/experiments/02-Secondary level education/caffeine-inhibition.md",65426],"5a51baf4":[()=>n.e(3298).then(n.t.bind(n,5370,19)),"~docs/experiments/tag-experiments-tags-control-549.json",5370],"5cb9554d":[()=>Promise.all([n.e(9149),n.e(4563)]).then(n.bind(n,93378)),"@site/src/pages/changelog.js",93378],"5e774627":[()=>n.e(3543).then(n.bind(n,38245)),"@site/developer-guide/05-Scripts/01-writing-scripts.md",38245],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,36809)),"@generated/docusaurus.config",36809],"6023936b":[()=>Promise.all([n.e(532),n.e(1386)]).then(n.bind(n,62385)),"@site/experiments/04-Research and beyond/directed-evolution-salt-tolerance.md",62385],"60a56950":[()=>n.e(5542).then(n.bind(n,97950)),"@site/developer-guide/07-Plugins/03-plugin-as-python-package.md",97950],"699ad14e":[()=>Promise.all([n.e(532),n.e(1608)]).then(n.bind(n,38013)),"@site/user-guide/01-getting-started/01b-hardware-set-up/04-faceplate-all-together.md",38013],"6e112274":[()=>n.e(2554).then(n.bind(n,66719)),"@site/user-guide/02-Experiment basics/08-export-data.md",66719],"6f101ed6":[()=>n.e(1158).then(n.bind(n,11932)),"@site/developer-guide/20-User interface/03-adding-charts.md",11932],"6f4861e3":[()=>n.e(2057).then(n.bind(n,28448)),"@site/developer-guide/03-Background jobs/01-intro-background-jobs.md",28448],"7004ca67":[()=>n.e(1466).then(n.bind(n,66532)),"@site/user-guide/30-Advanced/02-remote-access/01-introduction.md",66532],"726d3e94":[()=>n.e(2114).then(n.bind(n,95141)),"@site/developer-guide/09-Storage and the filesystem/01-data-stores.md",95141],"72c47c30":[()=>n.e(7711).then(n.bind(n,51627)),"@site/user-guide/03-Extending your Pioreactor/30-Upgrade kits/13-high-temp-upgrade-kit.md",51627],"741d3c43":[()=>n.e(3866).then(n.bind(n,16657)),"@site/user-guide/03-Extending your Pioreactor/04-Experiment Profiles/10-experiment-profiles-schema.md",16657],"7aaba939":[()=>n.e(9155).then(n.bind(n,95763)),"@site/user-guide/50-Troubleshooting/04-error-codes.md",95763],"7b2a33b6":[()=>n.e(2369).then(n.bind(n,75227)),"@site/user-guide/02-Experiment basics/05-Activities.md",75227],"7c1ae5e6":[()=>n.e(5856).then(n.bind(n,11046)),"@site/developer-guide/03-Background jobs/02-writing-background-jobs.md",11046],"7cd291a4":[()=>n.e(1823).then(n.bind(n,70370)),"@site/user-guide/30-Advanced/16-export-import-existing-data.md",70370],"7dada797":[()=>n.e(9344).then(n.bind(n,66737)),"@site/user-guide/29-Automations/03-led-automations.md",66737],"7ee13ef4":[()=>n.e(4066).then(n.bind(n,2019)),"@site/developer-guide/07-Plugins/01-intro-plugins.md",2019],"81ab6d50":[()=>n.e(4211).then(n.bind(n,85273)),"@site/user-guide/30-Advanced/00-accessing-raspberry-pi.md",85273],"81b74097":[()=>Promise.all([n.e(5591),n.e(7445)]).then(n.bind(n,66221)),"@site/user-guide/03-Extending your Pioreactor/06b-list-of-plugins.mdx",66221],"862d3e11":[()=>n.e(6082).then(n.bind(n,75088)),"@site/user-guide/30-Advanced/06-local-access-point.md",75088],"89efa1e0":[()=>Promise.all([n.e(532),n.e(3463)]).then(n.bind(n,87950)),"@site/experiments/02-Secondary level education/01-control-testing.md",87950],"8ee85411":[()=>n.e(804).then(n.t.bind(n,83769,19)),"/home/runner/work/docs.pioreactor/docs.pioreactor/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],"913b8639":[()=>n.e(8093).then(n.bind(n,20105)),"@site/user-guide/00-introduction.md",20105],92376444:[()=>n.e(4522).then(n.bind(n,45792)),"@site/user-guide/29-Automations/00-intro-to-automations.md",45792],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"9659efb8":[()=>Promise.all([n.e(532),n.e(5984)]).then(n.bind(n,59297)),"@site/experiments/04-Research and beyond/temp-cycle.md",59297],"9692f74e":[()=>n.e(3270).then(n.bind(n,36778)),"@site/user-guide/30-Advanced/07-additional-hardware/99-hardware-connection-assembly.md",36778],"98c9b185":[()=>Promise.all([n.e(532),n.e(7059)]).then(n.bind(n,97634)),"@site/user-guide/01-getting-started/01c-software-set-up.mdx",97634],"9d23e5ef":[()=>n.e(1741).then(n.t.bind(n,95078,19)),"~docs/experiments/tag-experiments-tags-temperature-d68.json",95078],a0ca71a9:[()=>n.e(2642).then(n.bind(n,81339)),"@site/user-guide/03-Extending your Pioreactor/01-create-cluster.md",81339],a4165bd8:[()=>n.e(1069).then(n.bind(n,28141)),"@site/user-guide/03-Extending your Pioreactor/09-external-power.md",28141],a888ed47:[()=>n.e(842).then(n.bind(n,64085)),"@site/user-guide/30-Advanced/01-cli.md",64085],a891e202:[()=>Promise.all([n.e(532),n.e(156)]).then(n.bind(n,82077)),"@site/user-guide/03-Extending your Pioreactor/08-hardware-calibrations.md",82077],afe9f542:[()=>n.e(5733).then(n.bind(n,31093)),"@site/user-guide/02-Experiment basics/10-manual-led-dosing.md",31093],b053ee98:[()=>Promise.all([n.e(532),n.e(4161)]).then(n.bind(n,34730)),"@site/user-guide/03-Extending your Pioreactor/03-adding-leds.md",34730],b3a861a3:[()=>n.e(9081).then(n.bind(n,85959)),"@site/user-guide/03-Extending your Pioreactor/20-updating-software.md",85959],b4cc13e2:[()=>Promise.all([n.e(532),n.e(5169)]).then(n.bind(n,39335)),"@site/user-guide/03-Extending your Pioreactor/07-using-pumps.md",39335],b504501c:[()=>Promise.all([n.e(532),n.e(3018)]).then(n.bind(n,76821)),"@site/user-guide/29-Automations/02-dosing-automations.md",76821],b5dcdecc:[()=>n.e(3380).then(n.bind(n,92308)),"@site/developer-guide/30-Development/02-development-on-Raspberry-Pi.md",92308],b9d0f450:[()=>n.e(4254).then(n.bind(n,83234)),"@site/user-guide/30-Advanced/07-additional-hardware/02-pinch-valves.md",83234],b9f7fcdb:[()=>n.e(7043).then(n.t.bind(n,79318,19)),"~docs/experiments/tag-experiments-tags-ethanol-a7b.json",79318],ba53f54e:[()=>n.e(4583).then(n.bind(n,42205)),"@site/user-guide/02-Experiment basics/11-running-self-test.md",42205],ba87e863:[()=>n.e(5665).then(n.bind(n,99184)),"@site/developer-guide/04-Automations/03-writing-automations-2.md",99184],bcc8e04a:[()=>Promise.all([n.e(532),n.e(8930)]).then(n.bind(n,35673)),"@site/user-guide/01-getting-started/01b-hardware-set-up/03-wetware-assembly.md",35673],bd51d30e:[()=>n.e(4529).then(n.bind(n,63099)),"@site/developer-guide/10-Hardware/06-button-down.md",63099],c0383162:[()=>n.e(9446).then(n.t.bind(n,12702,19)),"~docs/experiments/tag-experiments-tags-university-education-92d.json",12702],c0a440a7:[()=>n.e(7046).then(n.bind(n,9225)),"@site/developer-guide/02-important-concepts.md",9225],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,59335)),"@site/src/pages/index.js",59335],c61c48fd:[()=>n.e(8095).then(n.t.bind(n,69609,19)),"~docs/experiments/tag-experiments-tags-yeast-4fe.json",69609],ca4bdbc2:[()=>n.e(508).then(n.bind(n,51179)),"@site/developer-guide/99-architecture.md",51179],cbc1afae:[()=>n.e(3418).then(n.t.bind(n,35591,19)),"~docs/experiments/tag-experiments-tags-turbidostat-a78.json",35591],cef17ed2:[()=>Promise.all([n.e(532),n.e(8578)]).then(n.bind(n,24151)),"@site/experiments/03-University level education/01-algae-day-night-cycle.md",24151],cf4872bb:[()=>n.e(8720).then(n.bind(n,20822)),"@site/user-guide/30-Advanced/07-additional-hardware/01-pumps.md",20822],d28b0e19:[()=>Promise.all([n.e(532),n.e(6739)]).then(n.bind(n,91915)),"@site/user-guide/01-getting-started/01b-hardware-set-up/01-introduction.md",91915],d46cf9e1:[()=>n.e(7849).then(n.bind(n,31019)),"@site/user-guide/30-Advanced/15-intro-python-scripting.md",31019],d51704e4:[()=>n.e(7691).then(n.t.bind(n,12776,19)),"/home/runner/work/docs.pioreactor/docs.pioreactor/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",12776],d53b0e99:[()=>Promise.all([n.e(532),n.e(258)]).then(n.bind(n,81511)),"@site/experiments/02-Secondary level education/yeast-growth-by-temperature.md",81511],d5df37f5:[()=>n.e(5125).then(n.t.bind(n,77966,19)),"~docs/experiments/tag-experiments-tags-continuous-culture-051.json",77966],d5df4937:[()=>Promise.all([n.e(532),n.e(1179)]).then(n.bind(n,30544)),"@site/user-guide/99-common-questions.mdx",30544],d92ee6a6:[()=>n.e(4459).then(n.bind(n,40562)),"@site/user-guide/50-Troubleshooting/Power troubleshooting.md",40562],df063027:[()=>n.e(6911).then(n.bind(n,45741)),"@site/user-guide/29-Automations/01-temperature-automations.md",45741],df203c0f:[()=>n.e(9924).then(n.bind(n,40491)),"@theme/DocTagDocListPage",40491],df71d8ce:[()=>n.e(5204).then(n.t.bind(n,91275,19)),"/home/runner/work/docs.pioreactor/docs.pioreactor/.docusaurus/docusaurus-plugin-content-docs/experiments/plugin-route-context-module-100.json",91275],e22e79a4:[()=>n.e(2153).then(n.bind(n,87812)),"@site/user-guide/30-Advanced/02-remote-access/02-ngrok.md",87812],e2f2dfe9:[()=>n.e(2515).then(n.bind(n,77713)),"@site/developer-guide/01-introduction.md",77713],e605261b:[()=>n.e(1718).then(n.bind(n,10490)),"@site/user-guide/01-getting-started/00-gettingstarted.md",10490],e63f9848:[()=>Promise.all([n.e(532),n.e(7955)]).then(n.bind(n,6932)),"@site/user-guide/03-Extending your Pioreactor/05-calibrate-od600.md",6932],e67d5fa3:[()=>n.e(1057).then(n.bind(n,92999)),"@site/user-guide/02-Experiment basics/02-prepare-vial-for-cultures.md",92999],e8d327cb:[()=>n.e(8033).then(n.bind(n,13)),"@site/developer-guide/25-Calibrations/01-Calibrations.md",13],e91ab90f:[()=>n.e(575).then(n.bind(n,67102)),"@site/developer-guide/04-Automations/01-intro-automations.md",67102],eb6e170c:[()=>n.e(1699).then(n.bind(n,63021)),"@site/developer-guide/08-Custom pumps/20-writing-pump-software.md",63021],eba206dc:[()=>n.e(3916).then(n.t.bind(n,24224,19)),"~docs/experiments/tag-experiments-tags-seconday-education-f0e.json",24224],ebcf55cf:[()=>n.e(2829).then(n.bind(n,7917)),"@site/developer-guide/04-Automations/02-writing-automations-1.md",7917],f1e83790:[()=>n.e(5867).then(n.t.bind(n,18020,19)),"~docs/experiments/tag-experiments-tags-secondary-education-aef.json",18020],f565d366:[()=>n.e(2305).then(n.bind(n,79975)),"@site/user-guide/50-Troubleshooting/UI troubleshooting.md",79975],f5935d94:[()=>n.e(5790).then(n.bind(n,46864)),"@site/developer-guide/04-Automations/05-events.md",46864],f6cabd81:[()=>n.e(6651).then(n.t.bind(n,30980,19)),"/home/runner/work/docs.pioreactor/docs.pioreactor/.docusaurus/docusaurus-plugin-content-docs/developer-guide/plugin-route-context-module-100.json",30980],f738ccb2:[()=>n.e(3073).then(n.bind(n,79410)),"@site/developer-guide/07-Plugins/02-adding-plugins-to-ui.md",79410],fb3a9273:[()=>n.e(6845).then(n.bind(n,51012)),"@site/user-guide/03-Extending your Pioreactor/05-configuration.md",51012],fb56bb93:[()=>n.e(6405).then(n.t.bind(n,73477,19)),"~docs/experiments/tag-experiments-tags-nutrient-746.json",73477],fc13d485:[()=>n.e(5433).then(n.bind(n,54931)),"@site/developer-guide/10-Hardware/05-i2c-addresses.md",54931],fdd92877:[()=>Promise.all([n.e(532),n.e(3687)]).then(n.bind(n,96466)),"@site/user-guide/03-Extending your Pioreactor/30-Upgrade kits/12-temperature-expansion-kit.md",96466],fe7316eb:[()=>n.e(192).then(n.bind(n,72321)),"@site/user-guide/30-Advanced/02-remote-access/03-tailscale.md",72321]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(99670),d=n(30226);function p(e,t){if("*"===e)return o()({loading:u,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const i=l[`${e}-${t}`],p={},f=[],m=[],h=(0,c.Z)(i);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),o().Map({loading:u,loader:p,modules:f,webpack:()=>m,render(t,n){const o=JSON.parse(JSON.stringify(i));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=a}));const l=o.__comp;delete o.__comp;const s=o.__context;return delete o.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},o,n)))}})}const f=[{path:"/changelog",component:p("/changelog","42d"),exact:!0},{path:"/experiments/tags",component:p("/experiments/tags","d98"),exact:!0},{path:"/experiments/tags/caffeine",component:p("/experiments/tags/caffeine","494"),exact:!0},{path:"/experiments/tags/continuous-culture",component:p("/experiments/tags/continuous-culture","b0a"),exact:!0},{path:"/experiments/tags/control",component:p("/experiments/tags/control","72c"),exact:!0},{path:"/experiments/tags/ethanol",component:p("/experiments/tags/ethanol","6eb"),exact:!0},{path:"/experiments/tags/nutrient",component:p("/experiments/tags/nutrient","c4b"),exact:!0},{path:"/experiments/tags/salt",component:p("/experiments/tags/salt","a0c"),exact:!0},{path:"/experiments/tags/secondary-education",component:p("/experiments/tags/secondary-education","5a9"),exact:!0},{path:"/experiments/tags/seconday-education",component:p("/experiments/tags/seconday-education","6b0"),exact:!0},{path:"/experiments/tags/temperature",component:p("/experiments/tags/temperature","4e1"),exact:!0},{path:"/experiments/tags/turbidostat",component:p("/experiments/tags/turbidostat","e41"),exact:!0},{path:"/experiments/tags/university-education",component:p("/experiments/tags/university-education","963"),exact:!0},{path:"/experiments/tags/yeast",component:p("/experiments/tags/yeast","8c2"),exact:!0},{path:"/search",component:p("/search","2d8"),exact:!0},{path:"/developer-guide",component:p("/developer-guide","71f"),routes:[{path:"/developer-guide/adding-calibration-type",component:p("/developer-guide/adding-calibration-type","29d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/adding-plugins-to-ui",component:p("/developer-guide/adding-plugins-to-ui","8f5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/architecture",component:p("/developer-guide/architecture","e8b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/avoiding-od",component:p("/developer-guide/avoiding-od","6f9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/chart-to-ui",component:p("/developer-guide/chart-to-ui","459"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/data-stores",component:p("/developer-guide/data-stores","efb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/events",component:p("/developer-guide/events","b12"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/filesystem-locations",component:p("/developer-guide/filesystem-locations","5a3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/hat-button",component:p("/developer-guide/hat-button","060"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/i2c-addresses",component:p("/developer-guide/i2c-addresses","1f5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/important-concepts",component:p("/developer-guide/important-concepts","6d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/intro-automations",component:p("/developer-guide/intro-automations","956"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/intro-background-jobs",component:p("/developer-guide/intro-background-jobs","2c2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/intro-plugins",component:p("/developer-guide/intro-plugins","62c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/introduction",component:p("/developer-guide/introduction","191"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/local-development",component:p("/developer-guide/local-development","8d9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/pi-development",component:p("/developer-guide/pi-development","1f8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/pinout",component:p("/developer-guide/pinout","d7b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/plugin-as-python-package",component:p("/developer-guide/plugin-as-python-package","7d8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/web-ui-api",component:p("/developer-guide/web-ui-api","ead"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/web-ui-introduction",component:p("/developer-guide/web-ui-introduction","0ae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/writing-automations-1",component:p("/developer-guide/writing-automations-1","f5c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/writing-automations-2",component:p("/developer-guide/writing-automations-2","af5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/writing-background-jobs",component:p("/developer-guide/writing-background-jobs","a33"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/writing-pump-software",component:p("/developer-guide/writing-pump-software","6fa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/writing-scripts",component:p("/developer-guide/writing-scripts","7c7"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/experiments",component:p("/experiments","d7d"),routes:[{path:"/experiments/algae-day-night-cycle",component:p("/experiments/algae-day-night-cycle","2b8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/caffeine-inhibition",component:p("/experiments/caffeine-inhibition","bde"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/continuous-cultures-using-turbidostat",component:p("/experiments/continuous-cultures-using-turbidostat","4d1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/control-testing",component:p("/experiments/control-testing","541"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/directed-evolution-salt-tolerance",component:p("/experiments/directed-evolution-salt-tolerance","eed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/introduction",component:p("/experiments/introduction","803"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/low-vs-high-conc-media",component:p("/experiments/low-vs-high-conc-media","00f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/salt-stress-on-yeast",component:p("/experiments/salt-stress-on-yeast","42c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/temp-cycle",component:p("/experiments/temp-cycle","7c1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/yeast-growth-by-temperature",component:p("/experiments/yeast-growth-by-temperature","022"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/yeast-in-ethanol",component:p("/experiments/yeast-in-ethanol","a49"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/user-guide",component:p("/user-guide","0c4"),routes:[{path:"/user-guide/accessing-raspberry-pi",component:p("/user-guide/accessing-raspberry-pi","bfa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/activities",component:p("/user-guide/activities","aaa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/addition-hardware-pumps",component:p("/user-guide/addition-hardware-pumps","d50"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/available-plugins",component:p("/user-guide/available-plugins","5b2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/calibrate-od600",component:p("/user-guide/calibrate-od600","ca7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/cli",component:p("/user-guide/cli","31e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/common-questions",component:p("/user-guide/common-questions","83c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/configuration",component:p("/user-guide/configuration","15c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/create-cluster",component:p("/user-guide/create-cluster","b03"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/create-edit-experiment-profiles",component:p("/user-guide/create-edit-experiment-profiles","8d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/dosing-automations",component:p("/user-guide/dosing-automations","6c6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/error-codes",component:p("/user-guide/error-codes","4ef"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/experiment-profiles",component:p("/user-guide/experiment-profiles","036"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/experiment-profiles-schema",component:p("/user-guide/experiment-profiles-schema","51e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/export-data",component:p("/user-guide/export-data","acb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/export-import-existing-data",component:p("/user-guide/export-import-existing-data","99b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/external-power",component:p("/user-guide/external-power","ca7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/getting-started",component:p("/user-guide/getting-started","a99"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/hardware-calibrations",component:p("/user-guide/hardware-calibrations","6dc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/hardware-connection-assembly",component:p("/user-guide/hardware-connection-assembly","4f7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/hardware-setup-intro",component:p("/user-guide/hardware-setup-intro","d1b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/high-temp-upgrade-kit",component:p("/user-guide/high-temp-upgrade-kit","cae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/intro-python-scripting",component:p("/user-guide/intro-python-scripting","3ce"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/intro-to-automations",component:p("/user-guide/intro-to-automations","edd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/introduction",component:p("/user-guide/introduction","382"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/led-automations",component:p("/user-guide/led-automations","88f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/local-access-point",component:p("/user-guide/local-access-point","2aa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/manual-dosing-leds",component:p("/user-guide/manual-dosing-leds","582"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/monitor-experiment",component:p("/user-guide/monitor-experiment","da6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/ngrok-remote-access",component:p("/user-guide/ngrok-remote-access","fd7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/od-normal-growth-rate",component:p("/user-guide/od-normal-growth-rate","872"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/optics-assembly",component:p("/user-guide/optics-assembly","e8d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/pinch-valves",component:p("/user-guide/pinch-valves","262"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/prepare-vial-for-cultures",component:p("/user-guide/prepare-vial-for-cultures","fe9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/putting-it-together",component:p("/user-guide/putting-it-together","bf0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/remote-access",component:p("/user-guide/remote-access","60b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/rpi-hat-assembly",component:p("/user-guide/rpi-hat-assembly","f2d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/running-self-test",component:p("/user-guide/running-self-test","dc5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/set-up-an-experiment",component:p("/user-guide/set-up-an-experiment","3bc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/software-set-up",component:p("/user-guide/software-set-up","05e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/tailscale-remote-access",component:p("/user-guide/tailscale-remote-access","bf3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/temperature-automations",component:p("/user-guide/temperature-automations","4fe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/temperature-expansion-kit",component:p("/user-guide/temperature-expansion-kit","599"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/troubleshooting-Hardware",component:p("/user-guide/troubleshooting-Hardware","63a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/troubleshooting-power",component:p("/user-guide/troubleshooting-power","80f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/troubleshooting-stirring",component:p("/user-guide/troubleshooting-stirring","374"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/troubleshooting-ui",component:p("/user-guide/troubleshooting-ui","fd5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/updating-software",component:p("/user-guide/updating-software","c4f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/using-community-plugins",component:p("/user-guide/using-community-plugins","a38"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/using-leds",component:p("/user-guide/using-leds","a97"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/using-pumps",component:p("/user-guide/using-pumps","55c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/using-stemma-qt",component:p("/user-guide/using-stemma-qt","103"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/wetware-assembly",component:p("/user-guide/wetware-assembly","515"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/write-own-automations",component:p("/user-guide/write-own-automations","61d"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/",component:p("/","f02"),exact:!0},{path:"*",component:p("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(67294);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},49383:(e,t,n)=>{"use strict";var r=n(67294),a=n(73935),i=n(73727),o=n(70405),l=n(10412);const s=[n(32497),n(3310),n(18320),n(52295),n(74367)];var u=n(723),c=n(76775),d=n(18790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(87462),m=n(35742),h=n(52263),g=n(44996),b=n(86668),v=n(1944),y=n(94711),w=n(19727),k=n(43320),E=n(90197);function x(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function S(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),i=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:i}),r.createElement("link",{rel:"canonical",href:i}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(S,null),r.createElement(x,null),r.createElement(E.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var P=n(98934),L=n(58940);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{var r;const a=(null==(r=t.default)?void 0:r[e])??t[e];return null==a?void 0:a(...n)}));return()=>a.forEach((e=>null==e?void 0:e()))}const R=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,i=t.search===n.search;if(r&&a&&!i)return;const{hash:o}=t;if(o){const e=decodeURIComponent(o.substring(1)),t=document.getElementById(e);null==t||t.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),A("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>null==e.route.component.preload?void 0:e.route.component.preload())))}class N extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?A("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=A("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(R,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=N,D="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner",F="docusaurus-base-url-issue-banner-suggestion-container",j="__DOCUSAURUS_INSERT_BASEURL_BANNER";function B(e){return`\nwindow['${j}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${j}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[j]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,B(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:i}}=(0,h.Z)(),o=(0,g.Z)(e),{htmlLang:l,direction:s}=i[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:o}))}var q=n(44763);function H(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(P.t,null,r.createElement(p,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)))))}var G=n(16887);const Q=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{var r;if("undefined"==typeof document)return void n();const a=document.createElement("link");a.setAttribute("rel","prefetch"),a.setAttribute("href",e),a.onload=()=>t(),a.onerror=()=>n();const i=document.getElementsByTagName("head")[0]??(null==(r=document.getElementsByName("script")[0])?void 0:r.parentNode);null==i||i.appendChild(a)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Z=n(99670);const V=new Set,W=new Set,Y=()=>{var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},K={prefetch(e){if(!(e=>!Y()&&!W.has(e)&&!V.has(e))(e))return!1;V.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Z.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!W.has(e))(e)&&(W.add(e),O(e))},X=Object.freeze(K);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;O(window.location.pathname).then((()=>{e(r.createElement(o.B6,null,r.createElement(i.VK,null,r.createElement(H,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(67294),a=n(36809);const i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/user-guide","versions":[{"name":"current","label":"Next","isLast":true,"path":"/user-guide","mainDocId":"introduction","docs":[{"id":"Advanced/accessing-raspberry-pi","path":"/user-guide/accessing-raspberry-pi","sidebar":"tutorialSidebar"},{"id":"Advanced/additional-hardware/hardware-connection-assembly","path":"/user-guide/hardware-connection-assembly","sidebar":"tutorialSidebar"},{"id":"Advanced/additional-hardware/pinch-valves","path":"/user-guide/pinch-valves","sidebar":"tutorialSidebar"},{"id":"Advanced/additional-hardware/pumps","path":"/user-guide/addition-hardware-pumps","sidebar":"tutorialSidebar"},{"id":"Advanced/cli","path":"/user-guide/cli","sidebar":"tutorialSidebar"},{"id":"Advanced/export-import-existing-data","path":"/user-guide/export-import-existing-data","sidebar":"tutorialSidebar"},{"id":"Advanced/intro-python-scripting","path":"/user-guide/intro-python-scripting","sidebar":"tutorialSidebar"},{"id":"Advanced/local-access-point","path":"/user-guide/local-access-point","sidebar":"tutorialSidebar"},{"id":"Advanced/remote-access/introduction","path":"/user-guide/remote-access","sidebar":"tutorialSidebar"},{"id":"Advanced/remote-access/ngrok","path":"/user-guide/ngrok-remote-access","sidebar":"tutorialSidebar"},{"id":"Advanced/remote-access/tailscale","path":"/user-guide/tailscale-remote-access","sidebar":"tutorialSidebar"},{"id":"Automations/dosing-automations","path":"/user-guide/dosing-automations","sidebar":"tutorialSidebar"},{"id":"Automations/intro-to-automations","path":"/user-guide/intro-to-automations","sidebar":"tutorialSidebar"},{"id":"Automations/led-automations","path":"/user-guide/led-automations","sidebar":"tutorialSidebar"},{"id":"Automations/temperature-automations","path":"/user-guide/temperature-automations","sidebar":"tutorialSidebar"},{"id":"Automations/writing-automations","path":"/user-guide/write-own-automations","sidebar":"tutorialSidebar"},{"id":"common-questions","path":"/user-guide/common-questions","sidebar":"tutorialSidebar"},{"id":"Experiment basics/Activities","path":"/user-guide/activities","sidebar":"tutorialSidebar"},{"id":"Experiment basics/export-data","path":"/user-guide/export-data","sidebar":"tutorialSidebar"},{"id":"Experiment basics/manual-led-dosing","path":"/user-guide/manual-dosing-leds","sidebar":"tutorialSidebar"},{"id":"Experiment basics/monitor-experiment","path":"/user-guide/monitor-experiment","sidebar":"tutorialSidebar"},{"id":"Experiment basics/od-normal-growth-rate","path":"/user-guide/od-normal-growth-rate","sidebar":"tutorialSidebar"},{"id":"Experiment basics/prepare-vial-for-cultures","path":"/user-guide/prepare-vial-for-cultures","sidebar":"tutorialSidebar"},{"id":"Experiment basics/running-self-test","path":"/user-guide/running-self-test","sidebar":"tutorialSidebar"},{"id":"Experiment basics/set-up-an-experiment","path":"/user-guide/set-up-an-experiment","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/06a-using-community-plugins","path":"/user-guide/using-community-plugins","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/06b-list-of-plugins","path":"/user-guide/available-plugins","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/adding-leds","path":"/user-guide/using-leds","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/calibrate-od600","path":"/user-guide/calibrate-od600","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/configuration","path":"/user-guide/configuration","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/create-cluster","path":"/user-guide/create-cluster","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles","path":"/user-guide/create-edit-experiment-profiles","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro","path":"/user-guide/experiment-profiles","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema","path":"/user-guide/experiment-profiles-schema","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/external-power","path":"/user-guide/external-power","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/hardware-calibrations","path":"/user-guide/hardware-calibrations","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/updating-software","path":"/user-guide/updating-software","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/Upgrade kits/high-temp-upgrade-kit","path":"/user-guide/high-temp-upgrade-kit","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/Upgrade kits/temperature-expansion-kit","path":"/user-guide/temperature-expansion-kit","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/using-pumps","path":"/user-guide/using-pumps","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/using-stemma-qt","path":"/user-guide/using-stemma-qt","sidebar":"tutorialSidebar"},{"id":"getting-started/01b-hardware-set-up/faceplate-all-together","path":"/user-guide/putting-it-together","sidebar":"tutorialSidebar"},{"id":"getting-started/01b-hardware-set-up/introduction","path":"/user-guide/hardware-setup-intro","sidebar":"tutorialSidebar"},{"id":"getting-started/01b-hardware-set-up/optics-assembly","path":"/user-guide/optics-assembly","sidebar":"tutorialSidebar"},{"id":"getting-started/01b-hardware-set-up/rpi-hat-assembly","path":"/user-guide/rpi-hat-assembly","sidebar":"tutorialSidebar"},{"id":"getting-started/01b-hardware-set-up/wetware-assembly","path":"/user-guide/wetware-assembly","sidebar":"tutorialSidebar"},{"id":"getting-started/01c-software-set-up","path":"/user-guide/software-set-up","sidebar":"tutorialSidebar"},{"id":"getting-started/gettingstarted","path":"/user-guide/getting-started","sidebar":"tutorialSidebar"},{"id":"introduction","path":"/user-guide/introduction","sidebar":"tutorialSidebar"},{"id":"Troubleshooting/error-codes","path":"/user-guide/error-codes","sidebar":"tutorialSidebar"},{"id":"Troubleshooting/Hardware troubleshooting","path":"/user-guide/troubleshooting-Hardware","sidebar":"tutorialSidebar"},{"id":"Troubleshooting/Power troubleshooting","path":"/user-guide/troubleshooting-power","sidebar":"tutorialSidebar"},{"id":"Troubleshooting/Stirring troubleshooting","path":"/user-guide/troubleshooting-stirring","sidebar":"tutorialSidebar"},{"id":"Troubleshooting/UI troubleshooting","path":"/user-guide/troubleshooting-ui","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/user-guide/introduction","label":"introduction"}}}}],"breadcrumbs":false},"developer-guide":{"path":"/developer-guide","versions":[{"name":"current","label":"Next","isLast":true,"path":"/developer-guide","mainDocId":"introduction","docs":[{"id":"architecture","path":"/developer-guide/architecture","sidebar":"tutorialSidebar"},{"id":"Automations/events","path":"/developer-guide/events","sidebar":"tutorialSidebar"},{"id":"Automations/intro-automations","path":"/developer-guide/intro-automations","sidebar":"tutorialSidebar"},{"id":"Automations/writing-automations-1","path":"/developer-guide/writing-automations-1","sidebar":"tutorialSidebar"},{"id":"Automations/writing-automations-2","path":"/developer-guide/writing-automations-2","sidebar":"tutorialSidebar"},{"id":"Background jobs/avoiding-od","path":"/developer-guide/avoiding-od","sidebar":"tutorialSidebar"},{"id":"Background jobs/intro-background-jobs","path":"/developer-guide/intro-background-jobs","sidebar":"tutorialSidebar"},{"id":"Background jobs/writing-background-jobs","path":"/developer-guide/writing-background-jobs","sidebar":"tutorialSidebar"},{"id":"Calibrations/Calibrations","path":"/developer-guide/adding-calibration-type","sidebar":"tutorialSidebar"},{"id":"Custom pumps/writing-pump-software","path":"/developer-guide/writing-pump-software","sidebar":"tutorialSidebar"},{"id":"Development/development-on-Raspberry-Pi","path":"/developer-guide/pi-development","sidebar":"tutorialSidebar"},{"id":"Development/local-development","path":"/developer-guide/local-development","sidebar":"tutorialSidebar"},{"id":"Hardware/button-down","path":"/developer-guide/hat-button","sidebar":"tutorialSidebar"},{"id":"Hardware/i2c-addresses","path":"/developer-guide/i2c-addresses","sidebar":"tutorialSidebar"},{"id":"Hardware/pinout","path":"/developer-guide/pinout","sidebar":"tutorialSidebar"},{"id":"important-concepts","path":"/developer-guide/important-concepts","sidebar":"tutorialSidebar"},{"id":"introduction","path":"/developer-guide/introduction","sidebar":"tutorialSidebar"},{"id":"Plugins/adding-plugins-to-ui","path":"/developer-guide/adding-plugins-to-ui","sidebar":"tutorialSidebar"},{"id":"Plugins/intro-plugins","path":"/developer-guide/intro-plugins","sidebar":"tutorialSidebar"},{"id":"Plugins/plugin-as-python-package","path":"/developer-guide/plugin-as-python-package","sidebar":"tutorialSidebar"},{"id":"Scripts/writing-scripts","path":"/developer-guide/writing-scripts","sidebar":"tutorialSidebar"},{"id":"Storage and the filesystem/data-stores","path":"/developer-guide/data-stores","sidebar":"tutorialSidebar"},{"id":"Storage and the filesystem/filesystem","path":"/developer-guide/filesystem-locations","sidebar":"tutorialSidebar"},{"id":"User interface/adding-charts","path":"/developer-guide/chart-to-ui","sidebar":"tutorialSidebar"},{"id":"User interface/api","path":"/developer-guide/web-ui-api","sidebar":"tutorialSidebar"},{"id":"User interface/introduction","path":"/developer-guide/web-ui-introduction","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/developer-guide/introduction","label":"introduction"}}}}],"breadcrumbs":false},"experiments":{"path":"/experiments","versions":[{"name":"current","label":"Next","isLast":true,"path":"/experiments","mainDocId":"Introduction","docs":[{"id":"Introduction","path":"/experiments/introduction","sidebar":"tutorialSidebar"},{"id":"Research and beyond/directed-evolution-salt-tolerance","path":"/experiments/directed-evolution-salt-tolerance","sidebar":"tutorialSidebar"},{"id":"Research and beyond/temp-cycle","path":"/experiments/temp-cycle","sidebar":"tutorialSidebar"},{"id":"Secondary level education/caffeine-inhibition","path":"/experiments/caffeine-inhibition","sidebar":"tutorialSidebar"},{"id":"Secondary level education/control-testing","path":"/experiments/control-testing","sidebar":"tutorialSidebar"},{"id":"Secondary level education/low-vs-high-conc-media","path":"/experiments/low-vs-high-conc-media","sidebar":"tutorialSidebar"},{"id":"Secondary level education/salt-stress-on-yeast","path":"/experiments/salt-stress-on-yeast","sidebar":"tutorialSidebar"},{"id":"Secondary level education/yeast-growth-by-temperature","path":"/experiments/yeast-growth-by-temperature","sidebar":"tutorialSidebar"},{"id":"Secondary level education/yeast-in-ethanol","path":"/experiments/yeast-in-ethanol","sidebar":"tutorialSidebar"},{"id":"University level education/algae-day-night-cycle","path":"/experiments/algae-day-night-cycle","sidebar":"tutorialSidebar"},{"id":"University level education/continuous-cultures-using-turbidostat","path":"/experiments/continuous-cultures-using-turbidostat","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/experiments/introduction","label":"Introduction"}}}}],"breadcrumbs":false}}}'),o=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(57529);const s=JSON.parse('{"docusaurusVersion":"2.4.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.0"},"docusaurus-plugin-google-analytics":{"type":"package","name":"@docusaurus/plugin-google-analytics","version":"2.4.0"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.30.2"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:i,i18n:o,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},44763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),a=n(10412),i=n(35742),o=n(18780),l=n(70179);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,o.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(i.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},10412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(70405);function i(e){return r.createElement(a.ql,e)}},39960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(87462),a=n(67294),i=n(73727),o=n(18780),l=n(52263),s=n(13919),u=n(10412);const c=a.createContext({collectLink:()=>{}});var d=n(44996);function p(e,t){var n;let{isNavLink:p,to:f,href:m,activeClassName:h,isActive:g,"data-noBrokenLinkCheck":b,autoAddBaseUrl:v=!0,...y}=e;const{siteConfig:{trailingSlash:w,baseUrl:k}}=(0,l.Z)(),{withBaseUrl:E}=(0,d.C)(),x=(0,a.useContext)(c),S=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>S.current));const _=f||m;const C=(0,s.Z)(_),T=null==_?void 0:_.replace("pathname://","");let P=void 0!==T?(L=T,v&&(e=>e.startsWith("/"))(L)?E(L):L):void 0;var L;P&&C&&(P=(0,o.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));const A=(0,a.useRef)(!1),R=p?i.OL:i.rU,O=u.Z.canUseIntersectionObserver,N=(0,a.useRef)(),I=()=>{A.current||null==P||(window.docusaurus.preload(P),A.current=!0)};(0,a.useEffect)((()=>(!O&&C&&null!=P&&window.docusaurus.prefetch(P),()=>{O&&N.current&&N.current.disconnect()})),[N,P,O,C]);const D=(null==(n=P)?void 0:n.startsWith("#"))??!1,M=!P||!C||D;return M||b||x.collectLink(P),M?a.createElement("a",(0,r.Z)({ref:S,href:P},_&&!C&&{target:"_blank",rel:"noopener noreferrer"},y)):a.createElement(R,(0,r.Z)({},y,{onMouseEnter:I,onTouchStart:I,innerRef:e=>{S.current=e,O&&e&&C&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))}))})),N.current.observe(e))},to:P},p&&{isActive:g,activeClassName:h}))}const f=a.forwardRef(p)},95999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(67294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=null==t?void 0:t[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(57529);function o(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(o({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:i}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=o({message:t,id:n});return r.createElement(r.Fragment,null,a(l,i))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},13919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},44996:(e,t,n)=>{"use strict";n.d(t,{C:()=>o,Z:()=>l});var r=n(67294),a=n(52263),i=n(13919);function o(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:o=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,i.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return o?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=o();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(58940);function i(){return(0,r.useContext)(a._)}},72389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(98934);function i(){return(0,r.useContext)(a._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[i,o]=n;const l=a?`${a}.${i}`:i;r(o)?e(o,l):t[l]=o}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>i});var r=n(67294);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),o=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...null==n?void 0:n.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return r.createElement(a.Provider,{value:o},t)}},80143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>h,gA:()=>p,_r:()=>c,Jo:()=>g,zh:()=>d,yW:()=>m,gB:()=>f});var r=n(76775),a=n(52263),i=n(29935);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=null==n?void 0:n.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},c=()=>o("docusaurus-plugin-content-docs")??u,d=e=>function(e,t,n){void 0===t&&(t=i.m),void 0===n&&(n={});const r=o(e),a=null==r?void 0:r[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),i=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!i&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return i}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function h(e){const t=d(e),{pathname:n}=(0,r.TH)();return s(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},74367:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||(window.ga("set","page",t.pathname+t.search+t.hash),window.ga("send","pageview"))}}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n(74865),a=n.n(r);a().configure({showSpinner:!1});const i={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(87410),a=n(36809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294);const a={iconExternalLink:"iconExternalLink_nPIU"};function i(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},70179:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Ot});var r=n(67294),a=n(86010),i=n(44763),o=n(1944),l=n(87462),s=n(76775),u=n(95999),c=n(85936);const d="docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(35281),b=n(19727);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(86668),k=n(59689);function E(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:i=1.2,className:o,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:i},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const x={closeButton:"closeButton_CVFx"};function S(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",x.closeButton,e.className)}),r.createElement(E,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function P(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:i,isCloseable:o}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:i},role:"banner"},o&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),o&&r.createElement(S,{onClick:n,className:T.announcementBarClose}))}var L=n(93163),A=n(12466);var R=n(902),O=n(13102);const N=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,O.HY)(),[n,a]=(0,r.useState)(!1),i=null!==t.component,o=(0,R.D9)(i);return(0,r.useEffect)((()=>{i&&!o&&a(!0)}),[i,o]),(0,r.useEffect)((()=>{i?e.shown||a(!0):a(!1)}),[e.shown,i]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(N.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(N);if(!e)throw new R.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),i=(0,O.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(i)})),[a,i,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:i}=e;const{shown:o}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},i)))}var j=n(92949),B=n(72389);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:i,onChange:o}=e;const l=(0,B.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===i?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===i?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Q(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:i,setColorMode:o}=(0,j.I)();return a?null:r.createElement(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:i,onChange:o})}var Z=n(21327);function V(){return r.createElement(Z.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(E,{color:"var(--ifm-color-emphasis-600)"}))}function Y(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(V,null),r.createElement(Q,{className:"margin-right--md"}),r.createElement(W,null))}var K=n(39960),X=n(44996),J=n(13919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(39471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:i,label:o,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const p=(0,X.Z)(a),f=(0,X.Z)(t),m=(0,X.Z)(i,{forcePrependBaseUrl:!0}),h=o&&i&&!(0,J.Z)(i),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,o,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return i?r.createElement(K.Z,(0,l.Z)({href:c?m:i},d,g)):r.createElement(K.Z,(0,l.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(f)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...i}=e;const o=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},i));return n?r.createElement("li",null,o):o}function ae(e){let{className:t,isDropdownItem:n,...i}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},i)))}function ie(e){let{mobile:t=!1,position:n,...a}=e;const i=t?ae:re;return r.createElement(i,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var oe=n(86043),le=n(48596),se=n(52263);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:i,onClick:o,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",i)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(Ge,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:i,onClick:o,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,oe.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),f()}}),u.children??u.label),r.createElement(oe.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(Ge,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:o,activeClassName:"menu__link--active"},e,{key:t}))))))}function pe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var fe=n(94711);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";var ge=n(61029),be=n(10412),ve=n(60373),ye=n(80143),we=n(90022),ke=n(98202),Ee=n(73926),xe=n(91073),Se=n(82539),_e=n(10726);const Ce='',Te='',Pe='',Le='',Ae='',Re='',Oe='',Ne={searchBar:"searchBar_RVTs",dropdownMenu:"dropdownMenu_qbY6",suggestion:"suggestion_fB_2",cursor:"cursor_eG29",hitTree:"hitTree_kk6K",hitIcon:"hitIcon_a7Zy",hitPath:"hitPath_ieM4",noResultsIcon:"noResultsIcon_EBY5",hitFooter:"hitFooter_E9YW",hitWrapper:"hitWrapper_sAK8",hitTitle:"hitTitle_vyVt",hitAction:"hitAction_NqkB",hideAction:"hideAction_vcyE",noResults:"noResults_l6Q3",searchBarContainer:"searchBarContainer_NW3z",searchBarLoadingRing:"searchBarLoadingRing_YnHq",searchClearButton:"searchClearButton_qk4g",searchIndexLoading:"searchIndexLoading_EJ1f",searchHintContainer:"searchHintContainer_Pkmr",searchHint:"searchHint_iIMx",focused:"focused_OWtg",input:"input_FOTf",hint:"hint_URu1",suggestions:"suggestions_X8XU",dataset:"dataset_QiCy",empty:"empty_eITn"};function Ie(e){let{document:t,type:n,page:r,metadata:a,tokens:i,isInterOfTree:o,isLastOfTree:l}=e;const s=0===n,u=1===n,c=[];o?c.push(Re):l&&c.push(Oe);const d=c.map((e=>`${e}`)),p=`${s?Ce:u?Te:Pe}`,f=[`${(0,_e.o)(t.t,(0,xe.m)(a,"t"),i)}`];if(!o&&!l&&ge.H6){const e=r?(r.b??[]).concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;f.push(`${(0,Ee.e)(e??[])}`)}else s||f.push(`${(0,Se.C)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),i)}`);const m=`${Le}`;return[...d,p,``,...f,"",m].join("")}function De(){return`${Ae}${(0,u.I)({id:"theme.SearchBar.noResultsText",message:"No results"})}`}var Me=n(80311);async function Fe(){const e=await Promise.all([n.e(8443),n.e(5525)]).then(n.t.bind(n,68443,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const je="_highlight";const Be=function(e){var t;let{handleSearchBarToggle:n}=e;const{siteConfig:{baseUrl:i}}=(0,se.Z)(),o=(0,ye.gA)();let l=i;try{const{preferredVersion:e}=(0,ve.J)((null==o?void 0:o.pluginId)??ge.gQ);e&&!e.isLast&&(l=e.path+"/")}catch(O){if(ge.l9&&!(O instanceof R.i6))throw O}const c=(0,s.k6)(),d=(0,s.TH)(),p=(0,r.useRef)(null),f=(0,r.useRef)("empty"),m=(0,r.useRef)(!1),[h,g]=(0,r.useState)(!1),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(""),k=(0,r.useRef)(null),E=(0,r.useCallback)((async()=>{if("empty"!==f.current)return;f.current="loading",g(!0);const[{wrappedIndexes:e,zhDictionary:t},n]=await Promise.all([(0,we.w)(l),Fe()]);if(k.current=n(p.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:Ne.searchBar,noPrefix:!0,dropdownMenu:Ne.dropdownMenu,input:Ne.input,hint:Ne.hint,suggestions:Ne.suggestions,suggestion:Ne.suggestion,cursor:Ne.cursor,dataset:Ne.dataset,empty:Ne.empty}},[{source:(0,ke.v)(e,t,ge.qo),templates:{suggestion:Ie,empty:De,footer:e=>{let{query:t,isEmpty:n}=e;if(n)return;const r=document.createElement("a"),a=`${i}search?q=${encodeURIComponent(t)}`;r.href=a,r.textContent=(0,u.I)({id:"theme.SearchBar.seeAll",message:"See all results"}),r.addEventListener("click",(e=>{e.ctrlKey||e.metaKey||(e.preventDefault(),k.current.autocomplete.close(),c.push(a))}));const o=document.createElement("div");return o.className=Ne.hitFooter,o.appendChild(r),o}}}]).on("autocomplete:selected",(function(e,t){var n;let{document:{u:r,h:a},tokens:i}=t;null==(n=p.current)||n.blur();let o=r;if(ge.vc&&i.length>0){const e=new URLSearchParams;for(const t of i)e.append(je,t);o+=`?${e.toString()}`}a&&(o+=a),c.push(o)})).on("autocomplete:closed",(()=>{var e;null==(e=p.current)||e.blur()})),f.current="done",g(!1),m.current){const e=p.current;e.value&&k.current.autocomplete.open(),e.focus()}}),[i,l,c]);(0,r.useEffect)((()=>{if(!ge.vc)return;const e=be.Z.canUseDOM?new URLSearchParams(d.search).getAll(je):[];setTimeout((()=>{var t;const n=document.querySelector("article");if(!n)return;const r=new ge.vc(n);r.unmark(),0!==e.length&&r.mark(e),w(e.join(" ")),null==(t=k.current)||t.autocomplete.setVal(e.join(" "))}))}),[d.search,d.pathname]);const[x,S]=(0,r.useState)(!1),_=(0,r.useCallback)((()=>{m.current=!0,E(),S(!0),null==n||n(!0)}),[n,E]),C=(0,r.useCallback)((()=>{S(!1),null==n||n(!1)}),[n]),T=(0,r.useCallback)((()=>{E()}),[E]),P=(0,r.useCallback)((e=>{w(e.target.value),e.target.value&&v(!0)}),[]),L=!!be.Z.canUseDOM&&/mac/i.test((null==(t=navigator.userAgentData)?void 0:t.platform)??navigator.platform);(0,r.useEffect)((()=>{if(!ge.AY)return;const e=e=>{var t;(L?e.metaKey:e.ctrlKey)&&"KeyK"===e.code&&(e.preventDefault(),null==(t=p.current)||t.focus(),_())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[L,_]);const A=(0,r.useCallback)((()=>{var e;const t=new URLSearchParams(d.search);t.delete(je);const n=t.toString(),r=d.pathname+(""!=n?`?${n}`:"")+d.hash;r!=d.pathname+d.search+d.hash&&c.push(r),w(""),null==(e=k.current)||e.autocomplete.setVal("")}),[d.pathname,d.search,d.hash,c]);return r.createElement("div",{className:(0,a.Z)("navbar__search",Ne.searchBarContainer,{[Ne.searchIndexLoading]:h&&b,[Ne.focused]:x})},r.createElement("input",{placeholder:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:T,onFocus:_,onBlur:C,onChange:P,ref:p,value:y}),r.createElement(Me.Z,{className:Ne.searchBarLoadingRing}),ge.AY&&ge.t_&&(""!==y?r.createElement("button",{className:Ne.searchClearButton,onClick:A},"\u2715"):r.createElement("div",{className:Ne.searchHintContainer},r.createElement("kbd",{className:Ne.searchHint},L?"\u2318":"ctrl"),r.createElement("kbd",{className:Ne.searchHint},"K"))))},ze={searchBox:"searchBox_ZlJk"};function Ue(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,ze.searchBox)},t)}var $e=n(53438);const qe=e=>e.docs.find((t=>t.id===e.mainDocId));const He={default:ie,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...i}=e;const{i18n:{currentLocale:o,locales:c,localeConfigs:d}}=(0,se.Z)(),p=(0,fe.l)(),{search:f,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===o?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[o].label;return r.createElement(pe,(0,l.Z)({},i,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Ue,{className:n},r.createElement(Be,null))},dropdown:pe,html:function(e){let{value:t,className:n,mobile:i=!1,isDropdownItem:o=!1}=e;const l=o?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!i&&!o,"menu__list-item":i},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:o}=(0,ye.Iw)(a),s=(0,$e.vY)(t,a);return null===s?null:r.createElement(ie,(0,l.Z)({exact:!0},i,{isActive:()=>(null==o?void 0:o.path)===s.path||!(null==o||!o.sidebar)&&o.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:o}=(0,ye.Iw)(a),s=(0,$e.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(ie,(0,l.Z)({exact:!0},i,{isActive:()=>(null==o?void 0:o.sidebar)===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...i}=e;const o=(0,$e.lO)(a)[0],s=t??o.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return r.createElement(ie,(0,l.Z)({},i,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:i,dropdownItemsAfter:o,...c}=e;const{search:d,hash:p}=(0,s.TH)(),f=(0,ye.Iw)(n),m=(0,ye.gB)(n),{savePreferredVersionName:h}=(0,ve.J)(n),g=[...i,...m.map((e=>{const t=f.alternateDocVersions[e.name]??qe(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...o],b=(0,$e.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:qe(b).path;return g.length<=1?r.createElement(ie,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(pe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function Ge(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),i=He[a];if(!i)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(i,n)}function Qe(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(Ge,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ze(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ve(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(Ze,{onClick:()=>t.hide()}),t.content)}function We(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(Y,null),primaryMenu:r.createElement(Qe,null),secondaryMenu:r.createElement(Ve,null)}):null}const Ye={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ke(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Xe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:i}}=(0,w.L)(),o=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),i=(0,r.useRef)(0),o=(0,r.useCallback)((e=>{null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,A.RF)(((t,r)=>{let{scrollY:o}=t;if(!e)return;if(o=l?n(!1):o+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:o,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Ye.navbarHideable,!s&&Ye.navbarHidden],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":o.shown})},t,r.createElement(Ke,{onClick:o.toggle}),r.createElement(We,null))}var Je=n(18780);const et={errorBoundaryError:"errorBoundaryError_a6uf"};function tt(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function nt(e){let{error:t}=e;const n=(0,Je.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:et.errorBoundaryError},n)}class rt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const at="right";function it(e){let{width:t=30,height:n=30,className:a,...i}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},i),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function ot(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(it,null))}const lt={colorModeToggle:"colorModeToggle_DEke"};function st(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(rt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(Ge,e)))))}function ut(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function ct(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??at)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),i=t.find((e=>"search"===e.type));return r.createElement(ut,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(ot,null),r.createElement(V,null),r.createElement(st,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(st,{items:a}),r.createElement(Q,{className:lt.colorModeToggle}),!i&&r.createElement(Ue,null,r.createElement(Be,null)))})}function dt(){return r.createElement(Xe,null,r.createElement(ct,null))}function pt(e){let{item:t}=e;const{to:n,href:a,label:i,prependBaseUrlToHref:o,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(K.Z,(0,l.Z)({className:"footer__link-item"},a?{href:o?c:a}:{to:u},s),i,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function ft(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(pt,{item:t}))}function mt(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(ft,{key:t,item:e})))))}function ht(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(mt,{key:t,column:e}))))}function gt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function bt(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(pt,{item:t})}function vt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(bt,{item:e}),t.length!==n+1&&r.createElement(gt,null))))))}function yt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(ht,{columns:t}):r.createElement(vt,{links:t})}var wt=n(50941);const kt={footerLogoLink:"footerLogoLink_BH7S"};function Et(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),i={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(wt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:i,width:t.width,height:t.height,style:t.style})}function xt(e){let{logo:t}=e;return t.href?r.createElement(K.Z,{href:t.href,className:kt.footerLogoLink,target:t.target},r.createElement(Et,{logo:t})):r.createElement(Et,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function _t(e){let{style:t,links:n,logo:i,copyright:o}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(i||o)&&r.createElement("div",{className:"footer__bottom text--center"},i&&r.createElement("div",{className:"margin-bottom--sm"},i),o)))}function Ct(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:i}=e;return r.createElement(_t,{style:i,links:n&&n.length>0&&r.createElement(yt,{links:n}),logo:a&&r.createElement(xt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const Tt=r.memo(Ct),Pt=(0,R.Qc)([j.S,k.pl,A.OC,ve.L5,o.VC,function(e){let{children:t}=e;return r.createElement(O.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function Lt(e){let{children:t}=e;return r.createElement(Pt,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(tt,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(nt,{error:t})))))}const Rt={mainWrapper:"mainWrapper_z2l0"};function Ot(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(Lt,null,r.createElement(o.d,{title:s,description:u}),r.createElement(y,null),r.createElement(P,null),r.createElement(dt,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Rt.mainWrapper,l)},r.createElement(i.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(Tt,null))}},21327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(87462),a=n(67294),i=n(39960),o=n(44996),l=n(52263),s=n(86668),u=n(50941);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const i={light:(0,o.Z)(t.src),dark:(0,o.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:i,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,o.Z)((null==u?void 0:u.href)||"/"),h=n?"":t,g=(null==u?void 0:u.alt)??h;return a.createElement(i.Z,(0,r.Z)({to:m},f,(null==u?void 0:u.target)&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:p},n))}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(35742);function i(e){let{locale:t,version:n,tag:i}=e;const o=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),i&&r.createElement("meta",{name:"docusaurus_tag",content:i}),o&&r.createElement("meta",{name:"docsearch:language",content:o}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),i&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:i}))}},50941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(87462),a=n(67294),i=n(86010),o=n(72389),l=n(92949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,o.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,f.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,i.Z)(s.themedImage,s[`themedImage--${e}`],c)},p)))))}},86043:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,z:()=>g});var r=n(87462),a=n(67294),i=n(10412);const o="ease-in-out";function l(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),i=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:i}}const s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){const n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return 0;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}function p(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const i=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=function(){const t=e.scrollHeight;return{transition:`height ${(null==r?void 0:r.duration)??d(t)}ms ${(null==r?void 0:r.easing)??o}`,height:`${t}px`}}();e.style.transition=t.transition,e.style.height=t.height}if(!i.current)return c(e,n),void(i.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(a(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{a()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!i.Z.canUseDOM)return e?s:u}function m(e){let{as:t="div",collapsed:n,children:r,animation:i,onCollapseTransitionEnd:o,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return p({collapsibleRef:u,collapsed:n,animation:i}),a.createElement(t,{ref:u,style:s?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(c(u.current,n),null==o||o(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[i,o]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||o(!0)}),[t]),(0,a.useLayoutEffect)((()=>{i&&s(t)}),[i,t]),i?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(67294),a=n(72389),i=n(50012),o=n(902),l=n(86668);const s=(0,i.WA)("docusaurus.announcement.dismiss"),u=(0,i.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,i]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{i(c())}),[]);const o=(0,r.useCallback)((()=>{d(!0),i(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||i(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:o})),[e,n,o])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new o.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(67294),a=n(10412),i=n(902),o=n(50012),l=n(86668);const s=r.createContext(void 0),u="theme",c=(0,o.WA)(u),d={light:"light",dark:"dark"},p=e=>e===d.dark?d.dark:d.light,f=e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{c.set(p(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,i]=(0,r.useState)(f(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const o=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(i(t),a&&m(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&o(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,o]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:o(null)};return e.addListener(r),()=>e.removeListener(r)}),[o,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:o,get isDarkTheme(){return a===d.dark},setLightTheme(){o(d.light)},setDarkTheme(){o(d.dark)}})),[a,o])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g});var r=n(67294),a=n(80143),i=n(29935),o=n(86668),l=n(53438),s=n(902),u=n(50012);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,o.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[i,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[i,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(f.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(f);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=i.m);const t=(0,a.zh)(e),[n,o]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{o.savePreferredVersion(e,t)}),[o,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(67294),a=n(902);const i=Symbol("EmptyContext"),o=r.createContext(i);function l(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(o.Provider,{value:i},t)}function s(){const e=(0,r.useContext)(o);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},93163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>p});var r=n(67294),a=n(13102),i=n(87524),o=n(91980),l=n(86668),s=n(902);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,i.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,o.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function p(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>o});var r=n(67294),a=n(902);const i=r.createContext(null);function o(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(i.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=o,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>i});var r=n(67294);const a="navigation-with-keyboard";function i(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(67294),a=n(10412);const i={desktop:"desktop",mobile:"mobile",ssr:"ssr"},o=996;function l(){return a.Z.canUseDOM?window.innerWidth>o?i.desktop:i.mobile:i.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},53438:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>p,_F:()=>h,cE:()=>d,hI:()=>k,lO:()=>v,oz:()=>y,s1:()=>b,vY:()=>w});var r=n(67294),a=n(76775),i=n(18790),o=n(80143),l=n(60373),s=n(1116),u=n(67392),c=n(48596);const d=!!o._r;function p(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=p(t);if(e)return e}}}const f=(e,t)=>void 0!==e&&(0,c.Mg)(e,t),m=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?f(e.href,t):"category"===e.type&&(f(e.href,t)||m(e.items,t))}function g(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const i of t)if("category"===i.type&&((0,c.Mg)(i.href,n)||e(i.items))||"link"===i.type&&(0,c.Mg)(i.href,n)){return r&&"category"!==i.type||a.unshift(i),!0}return!1}(t),a}function b(){var e;const t=(0,s.V)(),{pathname:n}=(0,a.TH)();return!1!==(null==(e=(0,o.gA)())?void 0:e.pluginData.breadcrumbs)&&t?g({sidebarItems:t.items,pathname:n}):null}function v(e){const{activeVersion:t}=(0,o.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,o.yW)(e);return(0,r.useMemo)((()=>(0,u.j)([t,n,a].filter(Boolean))),[t,n,a])}function y(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function w(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,u.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function k(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),o=t.routes,l=o.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,i.H)(o),sidebarName:s,sidebarItems:u}}},91980:(e,t,n)=>{"use strict";n.d(t,{Rb:()=>l,_X:()=>s});var r=n(67294),a=n(76775),i=n(61688),o=n(902);function l(e){!function(e){const t=(0,a.k6)(),n=(0,o.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,i.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}},67392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>c,VC:()=>f});var r=n(67294),a=n(86010),i=n(35742),o=n(30226);function l(){const e=r.useContext(o._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(44996),u=n(52263);function c(e){let{title:t,description:n,keywords:a,image:o,children:l}=e;const c=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return null!=e&&e.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),p=o?d(o,{absolute:!0}):void 0;return r.createElement(i.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const o=r.useContext(d),l=(0,a.Z)(o,t);return r.createElement(d.Provider,{value:l},r.createElement(i.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),i=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,a.Z)(i,o)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>o,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>i});var r=n(67294);const a=n(10412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function i(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function o(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){var n,r,a;super(),this.name="ReactContextError",this.message=`Hook ${(null==(n=this.stack)||null==(r=n.split("\n")[1])||null==(a=r.match(/at (?:\w+\.)?(?\w+)/))?void 0:a.groups.name)??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>o,Ns:()=>l});var r=n(67294),a=n(723),i=n(52263);function o(e,t){const n=e=>{var t;return null==(t=!e||e.endsWith("/")?e:`${e}/`)?void 0:t.toLowerCase()};return n(e)===n(t)}function l(){const{baseUrl:e}=(0,i.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d,o5:()=>p});var r=n(67294),a=n(10412),i=n(72389),o=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new o.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),i=(0,o.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();i(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[i,n,...t])}function p(){const e=u(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>null==n.current?void 0:n.current()))})),{blockElementScrollPositionUntilNextRender:a}}function f(){const e=(0,r.useRef)(null),t=(0,i.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>null==e.current?void 0:e.current()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(52263);const r="default";function a(e,t){return`docs-${e}-${t}`}},50012:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>c});var r=n(67294),a=n(61688);const i="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const i=document.createEvent("StorageEvent");i.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(i)}function l(e){if(void 0===e&&(e=i),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const u={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=l(null==t?void 0:t.persistence);return null===n?u:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?u:c(e,t))).current(),i=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(i,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(52263),a=n(76775);function i(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:i}}=(0,r.Z)(),{pathname:o}=(0,a.TH)(),l=i===n?e:e.replace(`/${i}/`,"/"),s=o.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>o});var r=n(67294),a=n(76775),i=n(902);function o(e){const t=(0,a.TH)(),n=(0,i.D9)(t),o=(0,i.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&o({location:t,previousLocation:n})}),[o,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(52263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),i="/"===a||a===r?a:(o=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(o):function(e){return e.endsWith("/")?e.slice(0,-1):e}(o));var o;return e.replace(a,i)}},54143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},18780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var i=n(54143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},80311:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294),a=n(86010);const i={loadingRing:"loadingRing_RJI3","loading-ring":"loading-ring_FB5o"};function o(e){let{className:t}=e;return r.createElement("div",{className:(0,a.Z)(i.loadingRing,t)},r.createElement("div",null),r.createElement("div",null),r.createElement("div",null),r.createElement("div",null))}},90022:(e,t,n)=>{"use strict";n.d(t,{w:()=>o});var r=n(31336),a=n.n(r),i=n(61029);async function o(e){{const t=await(await fetch(`${e}${i.J}`)).json(),n=t.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),r=t.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:n,zhDictionary:Array.from(r)}}}},98202:(e,t,n)=>{"use strict";n.d(t,{v:()=>s});var r=n(31336),a=n.n(r);var i=n(61029);function o(e){return l(e).concat(l(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function l(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}function s(e,t,n){return function(r,l){const s=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,i.dK);if(0===s.length)return void l([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const i=r[0];if(/\p{Unified_Ideograph}/u.test(i)){const n=function(e,t){const n=[];return function e(r,a){let i=0,o=!1;for(const l of t)if(r.substr(0,l.length)===l){const t={missed:a.missed,term:a.term.concat({value:l})};r.length>l.length?e(r.substr(l.length),t):n.push(t),o=!0}else for(let t=l.length-1;t>i;t-=1){const s=l.substr(0,t);if(r.substr(0,t)===s){i=t;const l={missed:a.missed,term:a.term.concat({value:s,trailing:!0})};r.length>t?e(r.substr(t),l):n.push(l),o=!0;break}}o||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(i,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:i});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const o of i.dK)if("en"===o)i._k||r.unshift(a().stopWordFilter);else{const e=a()[o];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let l;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);l=[];const t=[];for(const r of n){const n=e(r);l.push(n),n.length0&&t.push(n)}n.push(...t)}else l=n.slice();const s=[];for(const a of l)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)s.push(a.slice(0,e).concat(a.slice(e+1)));return o(n).concat(o(s))}(s,t),c=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:i,type:o}of e)if(c.push(...i.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:o,page:0!==o&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,a=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===a&&(a=n.index),r===a?0===t.type?-1:0===n.type?1:t.index-n.index:r-a}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{e:()=>r})},21690:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{X:()=>r})},91073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{m:()=>r})},82539:(e,t,n)=>{"use strict";n.d(t,{C:()=>a});var r=n(21690);function a(e,t,n){const i=[];for(const o of t){const n=e.toLowerCase().indexOf(o);if(n>=0){n>0&&i.push(a(e.substr(0,n),t)),i.push(`${(0,r.X)(e.substr(n,o.length))}`);const l=n+o.length;l${(0,r.X)(e)}`:(0,r.X)(e):i.join("")}},10726:(e,t,n)=>{"use strict";n.d(t,{o:()=>s});var r=n(21690),a=n(82539);const i=/\w+|\p{Unified_Ideograph}/u;function o(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(i);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var l=n(61029);function s(e,t,n,i){void 0===i&&(i=l.Hk);const{chunkIndex:s,chunks:u}=function(e,t,n){const i=[];let l=0,s=0,u=-1;for(;ls){const t=o(e.substring(s,c)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)i.push(e)}-1===u&&(u=i.length),s=c+d,i.push({html:(0,a.C)(e.substring(c,s),n,!0),textLength:d})}}if(s({html:(0,r.X)(e),textLength:e.length})));for(const e of t)i.push(e)}return{chunkIndex:u,chunks:i}}(e,t,n),c=u.slice(0,s),d=u[s],p=[d.html],f=u.slice(s+1);let m=d.textLength,h=0,g=0,b=!1,v=!1;for(;m0){const e=c.pop();m+e.textLength<=i?(p.unshift(e.html),h+=e.textLength,m+=e.textLength):(b=!0,c.length=0)}else{if(!(f.length>0))break;{const e=f.shift();m+e.textLength<=i?(p.push(e.html),g+=e.textLength,m+=e.textLength):(v=!0,f.length=0)}}return(b||c.length>0)&&p.unshift("\u2026"),(v||f.length>0)&&p.push("\u2026"),p.join("")}},61029:(e,t,n)=>{"use strict";n.d(t,{vc:()=>i,gQ:()=>p,H6:()=>u,l9:()=>f,dK:()=>r,_k:()=>a,AY:()=>c,t_:()=>d,J:()=>o,Hk:()=>s,qo:()=>l});n(31336);const r=["en"],a=!1,i=null,o="search-index.json?_=1199592f",l=8,s=50,u=!1,c=!0,d=!0,p=void 0,f=!0},86010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>P,Ep:()=>p});var r=n(87462);function a(e){return"/"===e.charAt(0)}function i(e,t){for(var n=t,r=n+1,a=e.length;r=0;p--){var f=o[p];"."===f?i(o,p):".."===f?(i(o,p),d++):d&&(i(o,p),d--)}if(!u)for(;d--;d)o.unshift("..");!u||""===o[0]||o[0]&&a(o[0])||o.unshift("");var m=o.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(2177);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var i;"string"==typeof e?(i=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),i.state=t):(void 0===(i=(0,r.Z)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(i.key=n),a?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=o(i.pathname,a.pathname)):i.pathname=a.pathname:i.pathname||(i.pathname="/"),i}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,a):a(!0):a(!1!==i)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(59864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?o:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=o;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var o=c(n);d&&(o=o.concat(d(n)));for(var l=s(t),h=s(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,i,o,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,i,o,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},31336:(e,t,n)=>{var r,a;!function(){var i,o,l,s,u,c,d,p,f,m,h,g,b,v,y,w,k,E,x,S,_,C,T,P,L,A,R,O,N,I,D=function(e){var t=new D.Builder;return t.pipeline.add(D.trimmer,D.stopWordFilter,D.stemmer),t.searchPipeline.add(D.stemmer),e.call(t,t),t.build()};D.version="2.3.9",D.utils={},D.utils.warn=(i=this,function(e){i.console&&console.warn&&console.warn(e)}),D.utils.asString=function(e){return null==e?"":e.toString()},D.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var s=D.utils.clone(t)||{};s.position=[o,l],s.index=a.length,a.push(new D.Token(n.slice(o,i),s))}o=i+1}}return a},D.tokenizer.separator=/[\s\-]+/,D.Pipeline=function(){this._stack=[]},D.Pipeline.registeredFunctions=Object.create(null),D.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&D.utils.warn("Overwriting existing registered function: "+t),e.label=t,D.Pipeline.registeredFunctions[e.label]=e},D.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||D.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},D.Pipeline.load=function(e){var t=new D.Pipeline;return e.forEach((function(e){var n=D.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},D.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){D.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},D.Pipeline.prototype.after=function(e,t){D.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},D.Pipeline.prototype.before=function(e,t){D.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},D.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},D.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(ie&&(n=a),i!=e);)r=n-t,a=t+Math.floor(r/2),i=this.elements[2*a];return i==e||i>e?2*a:il?u+=2:o==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},D.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},D.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var i,o=a.str.charAt(0);o in a.node.edges?i=a.node.edges[o]:(i=new D.TokenSet,a.node.edges[o]=i),1==a.str.length&&(i.final=!0),r.push({node:i,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new D.TokenSet;a.node.edges["*"]=l}if(0==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new D.TokenSet;a.node.edges["*"]=s}1==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var u,c=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?u=a.node.edges[d]:(u=new D.TokenSet,a.node.edges[d]=u),1==a.str.length&&(u.final=!0),r.push({node:u,editsRemaining:a.editsRemaining-1,str:c+a.str.slice(2)})}}}return n},D.TokenSet.fromString=function(e){for(var t=new D.TokenSet,n=t,r=0,a=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},D.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},D.Index.prototype.search=function(e){return this.query((function(t){new D.QueryParser(e,t).parse()}))},D.Index.prototype.query=function(e){for(var t=new D.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),i=Object.create(null),o=Object.create(null),l=0;l1?1:e},D.Builder.prototype.k1=function(e){this._k1=e},D.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a=this.length)return D.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},D.QueryLexer.prototype.width=function(){return this.pos-this.start},D.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},D.QueryLexer.prototype.backup=function(){this.pos-=1},D.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=D.QueryLexer.EOS&&this.backup()},D.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(D.QueryLexer.TERM)),e.ignore(),e.more())return D.QueryLexer.lexText},D.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(D.QueryLexer.EDIT_DISTANCE),D.QueryLexer.lexText},D.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(D.QueryLexer.BOOST),D.QueryLexer.lexText},D.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(D.QueryLexer.TERM)},D.QueryLexer.termSeparator=D.tokenizer.separator,D.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==D.QueryLexer.EOS)return D.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return D.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(D.QueryLexer.TERM),D.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(D.QueryLexer.TERM),D.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(D.QueryLexer.PRESENCE),D.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(D.QueryLexer.PRESENCE),D.QueryLexer.lexText;if(t.match(D.QueryLexer.termSeparator))return D.QueryLexer.lexTerm}else e.escapeCharacter()}},D.QueryParser=function(e,t){this.lexer=new D.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},D.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=D.QueryParser.parseClause;e;)e=e(this);return this.query},D.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},D.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},D.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},D.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case D.QueryLexer.PRESENCE:return D.QueryParser.parsePresence;case D.QueryLexer.FIELD:return D.QueryParser.parseField;case D.QueryLexer.TERM:return D.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new D.QueryParseError(n,t.start,t.end)}},D.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=D.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=D.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new D.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new D.QueryParseError(n,t.start,t.end)}switch(r.type){case D.QueryLexer.FIELD:return D.QueryParser.parseField;case D.QueryLexer.TERM:return D.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new D.QueryParseError(n,r.start,r.end)}}},D.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new D.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new D.QueryParseError(r,t.start,t.end)}if(a.type===D.QueryLexer.TERM)return D.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new D.QueryParseError(r,a.start,a.end)}},D.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case D.QueryLexer.TERM:return e.nextClause(),D.QueryParser.parseTerm;case D.QueryLexer.FIELD:return e.nextClause(),D.QueryParser.parseField;case D.QueryLexer.EDIT_DISTANCE:return D.QueryParser.parseEditDistance;case D.QueryLexer.BOOST:return D.QueryParser.parseBoost;case D.QueryLexer.PRESENCE:return e.nextClause(),D.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new D.QueryParseError(r,n.start,n.end)}else e.nextClause()}},D.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new D.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case D.QueryLexer.TERM:return e.nextClause(),D.QueryParser.parseTerm;case D.QueryLexer.FIELD:return e.nextClause(),D.QueryParser.parseField;case D.QueryLexer.EDIT_DISTANCE:return D.QueryParser.parseEditDistance;case D.QueryLexer.BOOST:return D.QueryParser.parseBoost;case D.QueryLexer.PRESENCE:return e.nextClause(),D.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new D.QueryParseError(r,a.start,a.end)}else e.nextClause()}},D.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new D.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case D.QueryLexer.TERM:return e.nextClause(),D.QueryParser.parseTerm;case D.QueryLexer.FIELD:return e.nextClause(),D.QueryParser.parseField;case D.QueryLexer.EDIT_DISTANCE:return D.QueryParser.parseEditDistance;case D.QueryLexer.BOOST:return D.QueryParser.parseBoost;case D.QueryLexer.PRESENCE:return e.nextClause(),D.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new D.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return D})?r.call(t,n,t,e):r)||(e.exports=a)}()},32497:(e,t,n)=>{"use strict";n.r(t)},52295:(e,t,n)=>{"use strict";n.r(t)},74865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function i(e){return 100*(-1+e)}function o(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var i=n.render(!t),u=i.querySelector(r.barSelector),c=r.speed,d=r.easing;return i.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,o(e,c,d)),1===e?(s(i,{transition:"none",opacity:1}),i.offsetWidth,setTimeout((function(){s(i,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,o=t.querySelector(r.barSelector),l=e?"-100":i(n.status||0),u=document.querySelector(r.parent);return s(o,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+i)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function i(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&i(e,n,r);else i(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var i,o,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s{var r=n(5826);e.exports=f,e.exports.parse=i,e.exports.compile=function(e,t){return l(i(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function i(e,t){for(var n,r=[],i=0,o=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(o,f),o=f+d.length,p)l+=p[1];else{var m=e[o],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,E="+"===y||"*"===y,x="?"===y||"*"===y,S=n[2]||c,_=b||v;r.push({name:g||i++,prefix:h||"",delimiter:S,optional:x,repeat:E,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(S)+"]+?"})}}return o{"use strict";n.d(t,{Z:()=>i});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);x+=E.value.length,E=E.next){var S=E.value;if(t.length>e.length)return;if(!(S instanceof a)){var _,C=1;if(v){if(!(_=i(k,x,e,b))||_.index>=e.length)break;var T=_.index,P=_.index+_[0].length,L=x;for(L+=E.value.length;T>=L;)L+=(E=E.next).value.length;if(x=L-=E.value.length,E.value instanceof a)continue;for(var A=E;A!==t.tail&&(Ld.reach&&(d.reach=I);var D=E.prev;if(O&&(D=s(t,D,O),x+=O.length),u(t,D,C),E=s(t,D,new a(p,g?r.tokenize(R,g):R,y,R)),N&&s(t,E,N),C>1){var M={cause:p+","+m,reach:I};o(e,t,n,E.prev,x,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a"+i.content+""},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var i={};i[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",i)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=r.variable[1].inside,o=0;o]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),i=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function o(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+i+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:o(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:o(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:o(i),lookbehind:!0,greedy:!0},number:{pattern:o(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),i=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+i+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+i+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s=0&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],i=r.pattern.source;function o(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var i=e.tokenize(t,n);if(3===i.length){var o=[1,1];o.push.apply(o,s(i[1],e.languages.javascript,"javascript")),i.splice.apply(i,o)}return new e.Token("interpolation",i,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(i),lookbehind:!0}}),o=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(o++,r)););return c[n]=a,n})).join(""),n,r),p=Object.keys(c);return o=0,function e(t){for(var n=0;n=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=p[o],i="string"==typeof r?r:r.content,l=i.indexOf(a);if(-1!==l){++o;var s=i.substring(0,l),d=u(c[a]),f=i.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[o("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),o("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),o("svg",/\bsvg/.source),o("markdown",/\b(?:markdown|md)/.source),o("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),o("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function i(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=i(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=i(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:i(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:i(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var o=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(o).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===o(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:o(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:i=!0),(i||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=o(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=o(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,i){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof i&&!i(e))return e;for(var a,l=o.length;-1!==n.code.indexOf(a=t(r,l));)++l;return o[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,i=Object.keys(n.tokenStack);!function o(l){for(var s=0;s=i.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=i[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,o([h])),v.push(g),b&&v.push.apply(v,o([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&o(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const i=a},29901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(29901),a=n(39642),i=new Set;function o(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...i,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(o.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),i.add(e)}))}o.silent=!1,e.exports=o},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=6726},16500:(e,t,n)=>{var r={"./":2885};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=16500},39642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var o in a(t,i),l[t]=!0,n[t])l[o]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,i.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(i,o,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var i=r[a];t[a]="string"==typeof i?{title:i}:i}}return t}(i),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var i=e[a];t(i&&i.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);o=o.map(u),l=(l||[]).map(u);var c=n(o),d=n(l);o.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;a(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in f(b))if(v in c){p[b]=!0;break}for(var y in m=p)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var i=a?a.series:void 0,o=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=o(c.map((function(e){var t=u(e);return delete s[e],t})));i?a=i(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return o(d)}(f,c,t,n)}};return w}}();e.exports=t},92703:(e,t,n)=>{"use strict";var r=n(50414);function a(){}function i(){}i.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,i,o){if(o!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:a};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var r=n(67294),a=n(27418),i=n(63840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n