From f8001520d9a1a32a973c910b325f4ed6b8b85467 Mon Sep 17 00:00:00 2001 From: Clownxz Date: Fri, 18 Aug 2023 19:08:46 -0400 Subject: [PATCH] Built and published by Moonwave --- 404.html | 8 +++--- api/Future/index.html | 28 ++++--------------- api/Result/index.html | 8 +++--- api/index.html | 8 +++--- assets/js/02fae9b5.6c7b408e.js | 1 - assets/js/02fae9b5.dbce98a8.js | 1 + assets/js/12ed32e7.059f67c2.js | 1 + assets/js/12ed32e7.9dd9e2ab.js | 1 - ...c4992.365586fd.js => 204c4992.49d46c85.js} | 2 +- assets/js/759b88ee.4e57b43f.js | 1 + assets/js/759b88ee.e6332051.js | 1 - .../js/{main.fdbba97b.js => main.c3afe4f0.js} | 4 +-- ...CENSE.txt => main.c3afe4f0.js.LICENSE.txt} | 0 assets/js/runtime~main.618a2f27.js | 1 - assets/js/runtime~main.d7ad647b.js | 1 + index.html | 26 +++++++++++------ lunr-index-1686896456391.json | 1 - lunr-index-1692400117890.json | 1 + lunr-index.json | 2 +- ...6391.json => search-doc-1692400117890.json | 2 +- search-doc.json | 2 +- 21 files changed, 45 insertions(+), 55 deletions(-) delete mode 100644 assets/js/02fae9b5.6c7b408e.js create mode 100644 assets/js/02fae9b5.dbce98a8.js create mode 100644 assets/js/12ed32e7.059f67c2.js delete mode 100644 assets/js/12ed32e7.9dd9e2ab.js rename assets/js/{204c4992.365586fd.js => 204c4992.49d46c85.js} (87%) create mode 100644 assets/js/759b88ee.4e57b43f.js delete mode 100644 assets/js/759b88ee.e6332051.js rename assets/js/{main.fdbba97b.js => main.c3afe4f0.js} (99%) rename assets/js/{main.fdbba97b.js.LICENSE.txt => main.c3afe4f0.js.LICENSE.txt} (100%) delete mode 100644 assets/js/runtime~main.618a2f27.js create mode 100644 assets/js/runtime~main.d7ad647b.js delete mode 100644 lunr-index-1686896456391.json create mode 100644 lunr-index-1692400117890.json rename search-doc-1686896456391.json => search-doc-1692400117890.json (79%) diff --git a/404.html b/404.html index 4e6ffae..9e16856 100644 --- a/404.html +++ b/404.html @@ -4,13 +4,13 @@ Page Not Found | Luau-Future - - + +
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/api/Future/index.html b/api/Future/index.html index e5e06ca..c44cf2e 100644 --- a/api/Future/index.html +++ b/api/Future/index.html @@ -106,8 +106,8 @@ Your Future could no longer be Pending but not return anything, in which case ``output()`` will return ``nil``. :::"> - - + +
@@ -168,8 +168,6 @@
Polls the Future and returns true if the Future is pending.

isReady

</>
Future:isReady() → boolean

Polls the Future and returns true if the Future is ready.

-

output

</>
Future:output() → ...T?
-

If the Future is ready, returns the results ...T. Otherwise, returns nil.

output

</>
Future:output() → Result

When the Result of the Future is ready, calling output will return a Result.

Show raw api
{
@@ -206,22 +204,6 @@ 
- - +}
+ + \ No newline at end of file diff --git a/api/Result/index.html b/api/Result/index.html index 8868481..c7030ae 100644 --- a/api/Result/index.html +++ b/api/Result/index.html @@ -34,8 +34,8 @@ warn(result()) end ```"> - - + +
@@ -101,7 +101,7 @@

Checking the Result

"path": "lib/Result.lua" } }
- - + + \ No newline at end of file diff --git a/api/index.html b/api/index.html index 91c5c74..5c280a7 100644 --- a/api/index.html +++ b/api/index.html @@ -4,13 +4,13 @@ Luau-Future - - + +
- - + + \ No newline at end of file diff --git a/assets/js/02fae9b5.6c7b408e.js b/assets/js/02fae9b5.6c7b408e.js deleted file mode 100644 index e81fff1..0000000 --- a/assets/js/02fae9b5.6c7b408e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[331],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(67294);function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(u[n]=e[n]);return u}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(u[n]=e[n])}return u}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,u=e.mdxType,a=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(n),m=u,d=c["".concat(i,".").concat(m)]||c[m]||h[m]||a;return n?r.createElement(d,o(o({ref:t},p),{},{components:n})):r.createElement(d,o({ref:t},p))}));function d(e,t){var n=arguments,u=t&&t.mdxType;if("string"==typeof e||u){var a=n.length,o=new Array(a);o[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[c]="string"==typeof e?e:u,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>i});var r=n(87462),u=(n(67294),n(3905));const a={},o="Future",l={type:"mdx",permalink:"/Luau-Future/",source:"@site/pages/index.md",title:"Future",description:"View Docs",frontMatter:{}},i=[{value:"Luau Futures",id:"luau-futures",level:2},{value:"Why use this?",id:"why-use-this",level:3},{value:"Why I use Luau Futures",id:"why-i-use-luau-futures",level:3},{value:"Basic Usage",id:"basic-usage",level:3},{value:"Installing with Wally",id:"installing-with-wally",level:3},{value:"Building with Rojo",id:"building-with-rojo",level:3}],s={toc:i},p="wrapper";function c(e){let{components:t,...n}=e;return(0,u.kt)(p,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,u.kt)("h1",{id:"future"},"Future"),(0,u.kt)("p",null,(0,u.kt)("strong",{parentName:"p"},(0,u.kt)("a",{parentName:"strong",href:"https://yetanotherclown.github.io/Luau-Future/"},"View Docs"))),(0,u.kt)("blockquote",null,(0,u.kt)("p",{parentName:"blockquote"},"A Minimal, Typed Future Implementation inspired by the concept of Futures from the Rust Ecosystem.")),(0,u.kt)("h2",{id:"luau-futures"},"Luau Futures"),(0,u.kt)("p",null,"Futures represent a value that does not exist quite yet, similar to Promises. This makes\nFutures or Promises perfect to use when handling asynchronous calls."),(0,u.kt)("hr",null),(0,u.kt)("h3",{id:"why-use-this"},"Why use this?"),(0,u.kt)("p",null,"Don't. Use Promises. You shouldn't need to use this and shouldn't unless it fits a certain use case."),(0,u.kt)("p",null,"Promises have Chaining, Joining, Cancellation, and many more features that Futures don't have."),(0,u.kt)("p",null,"Futures are simply\nbuilt to be performant, unlike Promises. Even then, the performance gains you may see will be so insignificant\nyou'd only be hurting yourself by using Futures."),(0,u.kt)("blockquote",null,(0,u.kt)("p",{parentName:"blockquote"},"See ",(0,u.kt)("a",{parentName:"p",href:"https://eryn.io/roblox-lua-promise/"},"Roblox Lua Promise"),"\nand ",(0,u.kt)("a",{parentName:"p",href:"https://eryn.io/roblox-lua-promise/docs/WhyUsePromises"},"Why Use Promises?")," by Evaera")),(0,u.kt)("h3",{id:"why-i-use-luau-futures"},"Why I use Luau Futures"),(0,u.kt)("p",null,"I needed to represent dozens of values from asynchronous calls within a single frame, each frame. Promises proved to not be performant and full of unnecessary features I had no need of, this is where Luau Futures comes in."),(0,u.kt)("p",null,"I built Luau Futures to be used within systems that run every frame, built for a library such as ",(0,u.kt)("a",{parentName:"p",href:"https://github.com/evaera/matter"},"Matter"),", which had no built-in method for handling Asynchronous Calls."),(0,u.kt)("p",null,"With minimal features and with use of my ",(0,u.kt)("a",{parentName:"p",href:"https://github.com/YetAnotherClown/ThreadPool"},"ThreadPool")," library, I created a minimal and performant alternative to promises fit for my use case."),(0,u.kt)("hr",null),(0,u.kt)("h3",{id:"basic-usage"},"Basic Usage"),(0,u.kt)("pre",null,(0,u.kt)("code",{parentName:"pre",className:"language-lua"},'local Future = require(path.to.module)\n\n-- Create a future\nlocal myFuture = Future(function(...)\n -- Something that yields\nend, ...)\n\n-- Poll the Future to see if it is ready.\nif myFuture:isReady() then\n local ... = myFuture:output()\n \n -- Do something\nend\n\n-- Poll the Future to see if it is still pending.\nif myFuture:isPending() then\n warn("Future is still pending!")\nend\n')),(0,u.kt)("p",null,"In a ",(0,u.kt)("a",{parentName:"p",href:"https://github.com/evaera/matter"},"Matter")," System:"),(0,u.kt)("pre",null,(0,u.kt)("code",{parentName:"pre",className:"language-lua"},"-- Basic concept of Futures in a Matter System\nlocal function exampleSystem(world)\n\n -- Create Futures\n for id in world:query():without(Future) do\n world:insert(id, Future {\n future = Future(function()\n -- Something that yields\n end)\n })\n end\n\n -- Poll Futures\n for id, future in world:query(Future) do\n local future = future.future\n\n if future:isReady() then\n local result = myFuture:output()\n\n if result:ok() then\n local returnedValues = result()\n -- Do something\n elseif result:error() then\n warn(result())\n end\n\n world:remove(id, Future)\n end\n end\nend\n")),(0,u.kt)("hr",null),(0,u.kt)("h3",{id:"installing-with-wally"},"Installing with Wally"),(0,u.kt)("pre",null,(0,u.kt)("code",{parentName:"pre",className:"language-toml"},'[dependencies]\nFuture = "yetanotherclown/future@1.0.0"\n')),(0,u.kt)("p",null,"Note: Wally does not export types automatically and will display a type-error in one of the Dependencies.\nTo fix this, see ",(0,u.kt)("a",{parentName:"p",href:"https://github.com/JohnnyMorganz/wally-package-types"},"https://github.com/JohnnyMorganz/wally-package-types"),"."),(0,u.kt)("h3",{id:"building-with-rojo"},"Building with Rojo"),(0,u.kt)("p",null,"To build yourself, use: "),(0,u.kt)("pre",null,(0,u.kt)("code",{parentName:"pre",className:"language-bash"},'rojo build -o "Future.rbxm"\n')),(0,u.kt)("p",null,"For more help, check out ",(0,u.kt)("a",{parentName:"p",href:"https://rojo.space/docs"},"the Rojo documentation"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/02fae9b5.dbce98a8.js b/assets/js/02fae9b5.dbce98a8.js new file mode 100644 index 0000000..9f85e2e --- /dev/null +++ b/assets/js/02fae9b5.dbce98a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[331],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,u=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(n),d=a,m=c["".concat(i,".").concat(d)]||c[d]||h[d]||u;return n?r.createElement(m,o(o({ref:t},p),{},{components:n})):r.createElement(m,o({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var u=n.length,o=new Array(u);o[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[c]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{contentTitle:()=>o,default:()=>c,frontMatter:()=>u,metadata:()=>l,toc:()=>i});var r=n(87462),a=(n(67294),n(3905));const u={},o="Future",l={type:"mdx",permalink:"/Luau-Future/",source:"@site/pages/index.md",title:"Future",description:"View Docs",frontMatter:{}},i=[{value:"Luau Futures",id:"luau-futures",level:2},{value:"Why use this?",id:"why-use-this",level:3},{value:"Why I use Luau Futures",id:"why-i-use-luau-futures",level:3},{value:"Basic Usage",id:"basic-usage",level:3},{value:"Installing with Wally",id:"installing-with-wally",level:3},{value:"Building with Rojo",id:"building-with-rojo",level:3}],s={toc:i},p="wrapper";function c(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"future"},"Future"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("a",{parentName:"strong",href:"https://yetanotherclown.github.io/Luau-Future/"},"View Docs"))),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"A Minimal, Typed Future Implementation inspired by the concept of Futures from the Rust Ecosystem.")),(0,a.kt)("h2",{id:"luau-futures"},"Luau Futures"),(0,a.kt)("p",null,"Futures are a Data-Driven approach to asynchronous calls, what this means is that Futures\nrepresent a value that does not exist quite yet, similar to Promises."),(0,a.kt)("p",null,"Unlike Promises, Futures take on a Data-Driven approach as opposed to a Event-Driven approach.\nFutures have no events for you to react to, there is no ",(0,a.kt)("inlineCode",{parentName:"p"},"andThen")," or any other event-like methods\nor functions for Futures. "),(0,a.kt)("p",null,"In order to use Futures, you must do something called polling, you can call ",(0,a.kt)("inlineCode",{parentName:"p"},"isReady")," to see if the\nfuture has a result ready, and then you can call ",(0,a.kt)("inlineCode",{parentName:"p"},"output")," to receive a result.\nThe future can either be ok or an error, you can use the ",(0,a.kt)("inlineCode",{parentName:"p"},"ok")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"error")," methods respectively to check.\nTo get the value ",(0,a.kt)("inlineCode",{parentName:"p"},"T")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"Error")," you can call the result as a function."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"why-use-this"},"Why use this?"),(0,a.kt)("p",null,"Don't. Use Promises. You shouldn't need to use this and shouldn't unless it fits a certain use case.\nPromises have Chaining, Joining, Cancellation, and many more features that Futures don't have."),(0,a.kt)("p",null,"Futures are simply a lightweight alternative to Promises that uses long polling. Any gains you may get from\nusing Futures will be so insignificant you'd only be hurting yourself by using them in most cases."),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"See ",(0,a.kt)("a",{parentName:"p",href:"https://eryn.io/roblox-lua-promise/"},"Roblox Lua Promise"),"\nand ",(0,a.kt)("a",{parentName:"p",href:"https://eryn.io/roblox-lua-promise/docs/WhyUsePromises"},"Why Use Promises?")," by Evaera")),(0,a.kt)("h3",{id:"why-i-use-luau-futures"},"Why I use Luau Futures"),(0,a.kt)("p",null,"When writing code that ran every frame I found myself needing to represent yielding asynchronous calls in a way where\nI could store the future value and use it in a future frame. Promises felt like a good first step, but it just felt like\nthey did not fit the Data-Driven architecture I was going for, with Promises being Event-Driven."),(0,a.kt)("p",null,"So here comes Luau Futures, a Data-Driven Approach to handling asynchronous code,\nbuilt for a library such as ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/evaera/matter"},"Matter"),", which had no built-in method for handling Asynchronous Calls."),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"basic-usage"},"Basic Usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'local Future = require(path.to.module)\n\n-- Create a future\nlocal myFuture = Future(function(...)\n -- Something that yields\nend, ...)\n\n-- Poll the Future to see if it is ready.\nif myFuture:isReady() then\n local result = myFuture:output()\n local ... = result()\n \n -- Do something\nend\n\n-- Poll the Future to see if it is still pending.\nif myFuture:isPending() then\n warn("Future is still pending!")\nend\n')),(0,a.kt)("p",null,"In a ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/evaera/matter"},"Matter")," System:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"-- Basic concept of Futures in a Matter System\nlocal function exampleSystem(world)\n\n -- Create Futures\n for id in world:query():without(Future) do\n world:insert(id, Future {\n future = Future(function()\n -- Something that yields\n end)\n })\n end\n\n -- Poll Futures\n for id, future in world:query(Future) do\n local future = future.future\n\n if future:isReady() then\n local result = myFuture:output()\n\n if result:ok() then\n local returnedValues = result()\n -- Do something\n elseif result:error() then\n warn(result())\n end\n\n world:remove(id, Future)\n end\n end\nend\n")),(0,a.kt)("hr",null),(0,a.kt)("h3",{id:"installing-with-wally"},"Installing with Wally"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-toml"},'[dependencies]\nFuture = "yetanotherclown/future@1.0.0"\n')),(0,a.kt)("p",null,"Note: Wally does not export types automatically and will display a type-error in one of the Dependencies.\nTo fix this, see ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/JohnnyMorganz/wally-package-types"},"https://github.com/JohnnyMorganz/wally-package-types"),"."),(0,a.kt)("h3",{id:"building-with-rojo"},"Building with Rojo"),(0,a.kt)("p",null,"To build yourself, use: "),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},'rojo build -o "Future.rbxm"\n')),(0,a.kt)("p",null,"For more help, check out ",(0,a.kt)("a",{parentName:"p",href:"https://rojo.space/docs"},"the Rojo documentation"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/12ed32e7.059f67c2.js b/assets/js/12ed32e7.059f67c2.js new file mode 100644 index 0000000..cf10090 --- /dev/null +++ b/assets/js/12ed32e7.059f67c2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[997],{48153:e=>{e.exports=JSON.parse('{"functions":[{"name":"isPending","desc":"Polls the Future and returns ``true`` if the Future is pending.","params":[],"returns":[{"desc":"","lua_type":"boolean"}],"function_type":"method","source":{"line":97,"path":"lib/init.lua"}},{"name":"isReady","desc":"Polls the Future and returns ``true`` if the Future is ready.","params":[],"returns":[{"desc":"","lua_type":"boolean"}],"function_type":"method","source":{"line":109,"path":"lib/init.lua"}},{"name":"output","desc":"When the Result of the Future is ready, calling ``output`` will return a [Result](https://yetanotherclown.github.io/Luau-Future/api/Result).","params":[],"returns":[{"desc":"","lua_type":"Result"}],"function_type":"method","source":{"line":13,"path":"lib/Output.lua"}}],"properties":[],"types":[],"name":"Future","desc":"A Minimal, Typed Future Implementation inspired by the concept of Futures from the Rust Ecosystem.\\n\\n### Creating a Future\\n\\nTo create a Future, call the Library as a function and provide a yielding function as a parameter.\\n```lua\\nlocal Future = require(path.to.module)\\n\\nlocal myFuture = Future(function(...)\\n\\t-- Something that yields\\nend, ...)\\n```\\n\\n### Polling a Future\\n\\nTo check if a Future is ready with it\'s results, you poll it! You can either call ``isReady()`` or ``isPending``\\nto check whether or not the Future is ready.\\n```lua\\n-- Poll the Future to see if it is ready.\\nif myFuture:isReady() then\\n\\t-- Do something\\nend\\n\\n-- Poll the Future to see if it is pending.\\nif myFuture:isPending() then\\n\\t-- Future is still pending!\\nend\\n```\\n\\n### Retrieving Output\\n\\nTo retrieve the Output of a Future, call ``output()`` on the Future when it is ready.\\n```lua\\nif myFuture:isReady() then\\n\\tlocal result = myFuture:output()\\n\\n\\tif result:ok() then\\n\\t\\tlocal a, b, c... = result()\\n\\n\\t\\t-- Do something\\n\\telseif result:error() then\\n\\t\\twarn(result())\\n\\tend\\nend\\n```\\n\\n:::warning\\nIt is important to Poll a Future first instead of just calling ``output()``!\\n\\nYour Future could no longer be Pending but not return anything, in which case\\n``output()`` will return ``nil``.\\n:::","source":{"line":76,"path":"lib/init.lua"}}')}}]); \ No newline at end of file diff --git a/assets/js/12ed32e7.9dd9e2ab.js b/assets/js/12ed32e7.9dd9e2ab.js deleted file mode 100644 index cb29583..0000000 --- a/assets/js/12ed32e7.9dd9e2ab.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[997],{48153:e=>{e.exports=JSON.parse('{"functions":[{"name":"isPending","desc":"Polls the Future and returns ``true`` if the Future is pending.","params":[],"returns":[{"desc":"","lua_type":"boolean"}],"function_type":"method","source":{"line":97,"path":"lib/init.lua"}},{"name":"isReady","desc":"Polls the Future and returns ``true`` if the Future is ready.","params":[],"returns":[{"desc":"","lua_type":"boolean"}],"function_type":"method","source":{"line":109,"path":"lib/init.lua"}},{"name":"output","desc":"If the Future is ready, returns the results ``...T``. Otherwise, returns ``nil``.","params":[],"returns":[{"desc":"","lua_type":"...T?"}],"function_type":"method","source":{"line":121,"path":"lib/init.lua"}},{"name":"output","desc":"When the Result of the Future is ready, calling ``output`` will return a [Result](https://yetanotherclown.github.io/Luau-Future/api/Result).","params":[],"returns":[{"desc":"","lua_type":"Result"}],"function_type":"method","source":{"line":13,"path":"lib/Output.lua"}}],"properties":[],"types":[],"name":"Future","desc":"A Minimal, Typed Future Implementation inspired by the concept of Futures from the Rust Ecosystem.\\n\\n### Creating a Future\\n\\nTo create a Future, call the Library as a function and provide a yielding function as a parameter.\\n```lua\\nlocal Future = require(path.to.module)\\n\\nlocal myFuture = Future(function(...)\\n\\t-- Something that yields\\nend, ...)\\n```\\n\\n### Polling a Future\\n\\nTo check if a Future is ready with it\'s results, you poll it! You can either call ``isReady()`` or ``isPending``\\nto check whether or not the Future is ready.\\n```lua\\n-- Poll the Future to see if it is ready.\\nif myFuture:isReady() then\\n\\t-- Do something\\nend\\n\\n-- Poll the Future to see if it is pending.\\nif myFuture:isPending() then\\n\\t-- Future is still pending!\\nend\\n```\\n\\n### Retrieving Output\\n\\nTo retrieve the Output of a Future, call ``output()`` on the Future when it is ready.\\n```lua\\nif myFuture:isReady() then\\n\\tlocal result = myFuture:output()\\n\\n\\tif result:ok() then\\n\\t\\tlocal a, b, c... = result()\\n\\n\\t\\t-- Do something\\n\\telseif result:error() then\\n\\t\\twarn(result())\\n\\tend\\nend\\n```\\n\\n:::warning\\nIt is important to Poll a Future first instead of just calling ``output()``!\\n\\nYour Future could no longer be Pending but not return anything, in which case\\n``output()`` will return ``nil``.\\n:::","source":{"line":76,"path":"lib/init.lua"}}')}}]); \ No newline at end of file diff --git a/assets/js/204c4992.365586fd.js b/assets/js/204c4992.49d46c85.js similarity index 87% rename from assets/js/204c4992.365586fd.js rename to assets/js/204c4992.49d46c85.js index d57f35d..08ba0fe 100644 --- a/assets/js/204c4992.365586fd.js +++ b/assets/js/204c4992.49d46c85.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[465],{83659:e=>{e.exports=JSON.parse('[{"value":"Types","id":"types","level":2},{"value":"Properties","id":"properties","level":2},{"value":"Functions","id":"functions","level":2},{"value":":isPending","id":"isPending","level":3},{"value":":isReady","id":"isReady","level":3},{"value":":output","id":"output","level":3},{"value":":output","id":"output","level":3}]')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[465],{83659:e=>{e.exports=JSON.parse('[{"value":"Types","id":"types","level":2},{"value":"Properties","id":"properties","level":2},{"value":"Functions","id":"functions","level":2},{"value":":isPending","id":"isPending","level":3},{"value":":isReady","id":"isReady","level":3},{"value":":output","id":"output","level":3}]')}}]); \ No newline at end of file diff --git a/assets/js/759b88ee.4e57b43f.js b/assets/js/759b88ee.4e57b43f.js new file mode 100644 index 0000000..be44561 --- /dev/null +++ b/assets/js/759b88ee.4e57b43f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[914],{85492:e=>{e.exports=JSON.parse('{"Instance":"https://developer.roblox.com/en-us/api-reference/datatype/Instance","Accoutrement":"https://developer.roblox.com/en-us/api-reference/class/Accoutrement","Accessory":"https://developer.roblox.com/en-us/api-reference/class/Accessory","Hat":"https://developer.roblox.com/en-us/api-reference/class/Hat","AdPortal":"https://developer.roblox.com/en-us/api-reference/class/AdPortal","AdService":"https://developer.roblox.com/en-us/api-reference/class/AdService","AdvancedDragger":"https://developer.roblox.com/en-us/api-reference/class/AdvancedDragger","AnalyticsService":"https://developer.roblox.com/en-us/api-reference/class/AnalyticsService","Animation":"https://developer.roblox.com/en-us/api-reference/class/Animation","AnimationClip":"https://developer.roblox.com/en-us/api-reference/class/AnimationClip","CurveAnimation":"https://developer.roblox.com/en-us/api-reference/class/CurveAnimation","KeyframeSequence":"https://developer.roblox.com/en-us/api-reference/class/KeyframeSequence","AnimationClipProvider":"https://developer.roblox.com/en-us/api-reference/class/AnimationClipProvider","AnimationController":"https://developer.roblox.com/en-us/api-reference/class/AnimationController","AnimationFromVideoCreatorService":"https://developer.roblox.com/en-us/api-reference/class/AnimationFromVideoCreatorService","AnimationFromVideoCreatorStudioService":"https://developer.roblox.com/en-us/api-reference/class/AnimationFromVideoCreatorStudioService","AnimationRigData":"https://developer.roblox.com/en-us/api-reference/class/AnimationRigData","AnimationStreamTrack":"https://developer.roblox.com/en-us/api-reference/class/AnimationStreamTrack","AnimationTrack":"https://developer.roblox.com/en-us/api-reference/class/AnimationTrack","Animator":"https://developer.roblox.com/en-us/api-reference/class/Animator","AppUpdateService":"https://developer.roblox.com/en-us/api-reference/class/AppUpdateService","AssetCounterService":"https://developer.roblox.com/en-us/api-reference/class/AssetCounterService","AssetDeliveryProxy":"https://developer.roblox.com/en-us/api-reference/class/AssetDeliveryProxy","AssetImportService":"https://developer.roblox.com/en-us/api-reference/class/AssetImportService","AssetImportSession":"https://developer.roblox.com/en-us/api-reference/class/AssetImportSession","AssetManagerService":"https://developer.roblox.com/en-us/api-reference/class/AssetManagerService","AssetPatchSettings":"https://developer.roblox.com/en-us/api-reference/class/AssetPatchSettings","AssetService":"https://developer.roblox.com/en-us/api-reference/class/AssetService","Atmosphere":"https://developer.roblox.com/en-us/api-reference/class/Atmosphere","Attachment":"https://developer.roblox.com/en-us/api-reference/class/Attachment","Bone":"https://developer.roblox.com/en-us/api-reference/class/Bone","AudioAnalyzer":"https://developer.roblox.com/en-us/api-reference/class/AudioAnalyzer","AudioChorus":"https://developer.roblox.com/en-us/api-reference/class/AudioChorus","AudioCompressor":"https://developer.roblox.com/en-us/api-reference/class/AudioCompressor","AudioDeviceInput":"https://developer.roblox.com/en-us/api-reference/class/AudioDeviceInput","AudioDeviceOutput":"https://developer.roblox.com/en-us/api-reference/class/AudioDeviceOutput","AudioDistortion":"https://developer.roblox.com/en-us/api-reference/class/AudioDistortion","AudioEcho":"https://developer.roblox.com/en-us/api-reference/class/AudioEcho","AudioEmitter":"https://developer.roblox.com/en-us/api-reference/class/AudioEmitter","AudioEqualizer":"https://developer.roblox.com/en-us/api-reference/class/AudioEqualizer","AudioFader":"https://developer.roblox.com/en-us/api-reference/class/AudioFader","AudioFlanger":"https://developer.roblox.com/en-us/api-reference/class/AudioFlanger","AudioListener":"https://developer.roblox.com/en-us/api-reference/class/AudioListener","AudioPitchShifter":"https://developer.roblox.com/en-us/api-reference/class/AudioPitchShifter","AudioPlayer":"https://developer.roblox.com/en-us/api-reference/class/AudioPlayer","AudioReverb":"https://developer.roblox.com/en-us/api-reference/class/AudioReverb","AudioSearchParams":"https://developer.roblox.com/en-us/api-reference/class/AudioSearchParams","AvatarChatService":"https://developer.roblox.com/en-us/api-reference/class/AvatarChatService","AvatarEditorService":"https://developer.roblox.com/en-us/api-reference/class/AvatarEditorService","AvatarImportService":"https://developer.roblox.com/en-us/api-reference/class/AvatarImportService","Backpack":"https://developer.roblox.com/en-us/api-reference/class/Backpack","BadgeService":"https://developer.roblox.com/en-us/api-reference/class/BadgeService","BaseImportData":"https://developer.roblox.com/en-us/api-reference/class/BaseImportData","AnimationImportData":"https://developer.roblox.com/en-us/api-reference/class/AnimationImportData","FacsImportData":"https://developer.roblox.com/en-us/api-reference/class/FacsImportData","GroupImportData":"https://developer.roblox.com/en-us/api-reference/class/GroupImportData","JointImportData":"https://developer.roblox.com/en-us/api-reference/class/JointImportData","MaterialImportData":"https://developer.roblox.com/en-us/api-reference/class/MaterialImportData","MeshImportData":"https://developer.roblox.com/en-us/api-reference/class/MeshImportData","RootImportData":"https://developer.roblox.com/en-us/api-reference/class/RootImportData","BasePlayerGui":"https://developer.roblox.com/en-us/api-reference/class/BasePlayerGui","CoreGui":"https://developer.roblox.com/en-us/api-reference/class/CoreGui","PlayerGui":"https://developer.roblox.com/en-us/api-reference/class/PlayerGui","StarterGui":"https://developer.roblox.com/en-us/api-reference/class/StarterGui","BaseWrap":"https://developer.roblox.com/en-us/api-reference/class/BaseWrap","WrapLayer":"https://developer.roblox.com/en-us/api-reference/class/WrapLayer","WrapTarget":"https://developer.roblox.com/en-us/api-reference/class/WrapTarget","Beam":"https://developer.roblox.com/en-us/api-reference/class/Beam","BindableEvent":"https://developer.roblox.com/en-us/api-reference/class/BindableEvent","BindableFunction":"https://developer.roblox.com/en-us/api-reference/class/BindableFunction","BodyMover":"https://developer.roblox.com/en-us/api-reference/class/BodyMover","BodyAngularVelocity":"https://developer.roblox.com/en-us/api-reference/class/BodyAngularVelocity","BodyForce":"https://developer.roblox.com/en-us/api-reference/class/BodyForce","BodyGyro":"https://developer.roblox.com/en-us/api-reference/class/BodyGyro","BodyPosition":"https://developer.roblox.com/en-us/api-reference/class/BodyPosition","BodyThrust":"https://developer.roblox.com/en-us/api-reference/class/BodyThrust","BodyVelocity":"https://developer.roblox.com/en-us/api-reference/class/BodyVelocity","RocketPropulsion":"https://developer.roblox.com/en-us/api-reference/class/RocketPropulsion","Breakpoint":"https://developer.roblox.com/en-us/api-reference/class/Breakpoint","BrowserService":"https://developer.roblox.com/en-us/api-reference/class/BrowserService","BubbleChatMessageProperties":"https://developer.roblox.com/en-us/api-reference/class/BubbleChatMessageProperties","BulkImportService":"https://developer.roblox.com/en-us/api-reference/class/BulkImportService","CacheableContentProvider":"https://developer.roblox.com/en-us/api-reference/class/CacheableContentProvider","HSRDataContentProvider":"https://developer.roblox.com/en-us/api-reference/class/HSRDataContentProvider","MeshContentProvider":"https://developer.roblox.com/en-us/api-reference/class/MeshContentProvider","SolidModelContentProvider":"https://developer.roblox.com/en-us/api-reference/class/SolidModelContentProvider","CalloutService":"https://developer.roblox.com/en-us/api-reference/class/CalloutService","Camera":"https://developer.roblox.com/en-us/api-reference/class/Camera","CaptureService":"https://developer.roblox.com/en-us/api-reference/class/CaptureService","ChangeHistoryService":"https://developer.roblox.com/en-us/api-reference/class/ChangeHistoryService","CharacterAppearance":"https://developer.roblox.com/en-us/api-reference/class/CharacterAppearance","BodyColors":"https://developer.roblox.com/en-us/api-reference/class/BodyColors","CharacterMesh":"https://developer.roblox.com/en-us/api-reference/class/CharacterMesh","Clothing":"https://developer.roblox.com/en-us/api-reference/class/Clothing","Pants":"https://developer.roblox.com/en-us/api-reference/class/Pants","Shirt":"https://developer.roblox.com/en-us/api-reference/class/Shirt","ShirtGraphic":"https://developer.roblox.com/en-us/api-reference/class/ShirtGraphic","Skin":"https://developer.roblox.com/en-us/api-reference/class/Skin","Chat":"https://developer.roblox.com/en-us/api-reference/class/Chat","ChatbotUIService":"https://developer.roblox.com/en-us/api-reference/class/ChatbotUIService","ClickDetector":"https://developer.roblox.com/en-us/api-reference/class/ClickDetector","DragDetector":"https://developer.roblox.com/en-us/api-reference/class/DragDetector","Clouds":"https://developer.roblox.com/en-us/api-reference/class/Clouds","ClusterPacketCache":"https://developer.roblox.com/en-us/api-reference/class/ClusterPacketCache","Collaborator":"https://developer.roblox.com/en-us/api-reference/class/Collaborator","CollaboratorsService":"https://developer.roblox.com/en-us/api-reference/class/CollaboratorsService","CollectionService":"https://developer.roblox.com/en-us/api-reference/class/CollectionService","CommandInstance":"https://developer.roblox.com/en-us/api-reference/class/CommandInstance","CommandService":"https://developer.roblox.com/en-us/api-reference/class/CommandService","Configuration":"https://developer.roblox.com/en-us/api-reference/class/Configuration","ConfigureServerService":"https://developer.roblox.com/en-us/api-reference/class/ConfigureServerService","Constraint":"https://developer.roblox.com/en-us/api-reference/class/Constraint","AlignOrientation":"https://developer.roblox.com/en-us/api-reference/class/AlignOrientation","AlignPosition":"https://developer.roblox.com/en-us/api-reference/class/AlignPosition","AngularVelocity":"https://developer.roblox.com/en-us/api-reference/class/AngularVelocity","AnimationConstraint":"https://developer.roblox.com/en-us/api-reference/class/AnimationConstraint","BallSocketConstraint":"https://developer.roblox.com/en-us/api-reference/class/BallSocketConstraint","HingeConstraint":"https://developer.roblox.com/en-us/api-reference/class/HingeConstraint","LineForce":"https://developer.roblox.com/en-us/api-reference/class/LineForce","LinearVelocity":"https://developer.roblox.com/en-us/api-reference/class/LinearVelocity","PlaneConstraint":"https://developer.roblox.com/en-us/api-reference/class/PlaneConstraint","Plane":"https://developer.roblox.com/en-us/api-reference/class/Plane","RigidConstraint":"https://developer.roblox.com/en-us/api-reference/class/RigidConstraint","RodConstraint":"https://developer.roblox.com/en-us/api-reference/class/RodConstraint","RopeConstraint":"https://developer.roblox.com/en-us/api-reference/class/RopeConstraint","SlidingBallConstraint":"https://developer.roblox.com/en-us/api-reference/class/SlidingBallConstraint","CylindricalConstraint":"https://developer.roblox.com/en-us/api-reference/class/CylindricalConstraint","PrismaticConstraint":"https://developer.roblox.com/en-us/api-reference/class/PrismaticConstraint","SpringConstraint":"https://developer.roblox.com/en-us/api-reference/class/SpringConstraint","Torque":"https://developer.roblox.com/en-us/api-reference/class/Torque","TorsionSpringConstraint":"https://developer.roblox.com/en-us/api-reference/class/TorsionSpringConstraint","UniversalConstraint":"https://developer.roblox.com/en-us/api-reference/class/UniversalConstraint","VectorForce":"https://developer.roblox.com/en-us/api-reference/class/VectorForce","ContentProvider":"https://developer.roblox.com/en-us/api-reference/class/ContentProvider","ContextActionService":"https://developer.roblox.com/en-us/api-reference/class/ContextActionService","Controller":"https://developer.roblox.com/en-us/api-reference/class/Controller","HumanoidController":"https://developer.roblox.com/en-us/api-reference/class/HumanoidController","SkateboardController":"https://developer.roblox.com/en-us/api-reference/class/SkateboardController","VehicleController":"https://developer.roblox.com/en-us/api-reference/class/VehicleController","ControllerBase":"https://developer.roblox.com/en-us/api-reference/class/ControllerBase","AirController":"https://developer.roblox.com/en-us/api-reference/class/AirController","ClimbController":"https://developer.roblox.com/en-us/api-reference/class/ClimbController","GroundController":"https://developer.roblox.com/en-us/api-reference/class/GroundController","SwimController":"https://developer.roblox.com/en-us/api-reference/class/SwimController","ControllerManager":"https://developer.roblox.com/en-us/api-reference/class/ControllerManager","ControllerService":"https://developer.roblox.com/en-us/api-reference/class/ControllerService","CookiesService":"https://developer.roblox.com/en-us/api-reference/class/CookiesService","CorePackages":"https://developer.roblox.com/en-us/api-reference/class/CorePackages","CoreScriptDebuggingManagerHelper":"https://developer.roblox.com/en-us/api-reference/class/CoreScriptDebuggingManagerHelper","CoreScriptSyncService":"https://developer.roblox.com/en-us/api-reference/class/CoreScriptSyncService","CrossDMScriptChangeListener":"https://developer.roblox.com/en-us/api-reference/class/CrossDMScriptChangeListener","CustomEvent":"https://developer.roblox.com/en-us/api-reference/class/CustomEvent","CustomEventReceiver":"https://developer.roblox.com/en-us/api-reference/class/CustomEventReceiver","DataModelMesh":"https://developer.roblox.com/en-us/api-reference/class/DataModelMesh","BevelMesh":"https://developer.roblox.com/en-us/api-reference/class/BevelMesh","BlockMesh":"https://developer.roblox.com/en-us/api-reference/class/BlockMesh","CylinderMesh":"https://developer.roblox.com/en-us/api-reference/class/CylinderMesh","DynamicMesh":"https://developer.roblox.com/en-us/api-reference/class/DynamicMesh","FileMesh":"https://developer.roblox.com/en-us/api-reference/class/FileMesh","SpecialMesh":"https://developer.roblox.com/en-us/api-reference/class/SpecialMesh","DataModelPatchService":"https://developer.roblox.com/en-us/api-reference/class/DataModelPatchService","DataModelSession":"https://developer.roblox.com/en-us/api-reference/class/DataModelSession","DataStoreIncrementOptions":"https://developer.roblox.com/en-us/api-reference/class/DataStoreIncrementOptions","DataStoreInfo":"https://developer.roblox.com/en-us/api-reference/class/DataStoreInfo","DataStoreKey":"https://developer.roblox.com/en-us/api-reference/class/DataStoreKey","DataStoreKeyInfo":"https://developer.roblox.com/en-us/api-reference/class/DataStoreKeyInfo","DataStoreObjectVersionInfo":"https://developer.roblox.com/en-us/api-reference/class/DataStoreObjectVersionInfo","DataStoreOptions":"https://developer.roblox.com/en-us/api-reference/class/DataStoreOptions","DataStoreService":"https://developer.roblox.com/en-us/api-reference/class/DataStoreService","DataStoreSetOptions":"https://developer.roblox.com/en-us/api-reference/class/DataStoreSetOptions","Debris":"https://developer.roblox.com/en-us/api-reference/class/Debris","DebugSettings":"https://developer.roblox.com/en-us/api-reference/class/DebugSettings","DebuggablePluginWatcher":"https://developer.roblox.com/en-us/api-reference/class/DebuggablePluginWatcher","DebuggerBreakpoint":"https://developer.roblox.com/en-us/api-reference/class/DebuggerBreakpoint","DebuggerConnection":"https://developer.roblox.com/en-us/api-reference/class/DebuggerConnection","LocalDebuggerConnection":"https://developer.roblox.com/en-us/api-reference/class/LocalDebuggerConnection","DebuggerConnectionManager":"https://developer.roblox.com/en-us/api-reference/class/DebuggerConnectionManager","DebuggerLuaResponse":"https://developer.roblox.com/en-us/api-reference/class/DebuggerLuaResponse","DebuggerManager":"https://developer.roblox.com/en-us/api-reference/class/DebuggerManager","DebuggerUIService":"https://developer.roblox.com/en-us/api-reference/class/DebuggerUIService","DebuggerVariable":"https://developer.roblox.com/en-us/api-reference/class/DebuggerVariable","DebuggerWatch":"https://developer.roblox.com/en-us/api-reference/class/DebuggerWatch","DeviceIdService":"https://developer.roblox.com/en-us/api-reference/class/DeviceIdService","Dialog":"https://developer.roblox.com/en-us/api-reference/class/Dialog","DialogChoice":"https://developer.roblox.com/en-us/api-reference/class/DialogChoice","DraftsService":"https://developer.roblox.com/en-us/api-reference/class/DraftsService","Dragger":"https://developer.roblox.com/en-us/api-reference/class/Dragger","DraggerService":"https://developer.roblox.com/en-us/api-reference/class/DraggerService","DynamicImage":"https://developer.roblox.com/en-us/api-reference/class/DynamicImage","EulerRotationCurve":"https://developer.roblox.com/en-us/api-reference/class/EulerRotationCurve","EventIngestService":"https://developer.roblox.com/en-us/api-reference/class/EventIngestService","ExperienceAuthService":"https://developer.roblox.com/en-us/api-reference/class/ExperienceAuthService","ExperienceInviteOptions":"https://developer.roblox.com/en-us/api-reference/class/ExperienceInviteOptions","ExperienceNotificationService":"https://developer.roblox.com/en-us/api-reference/class/ExperienceNotificationService","Explosion":"https://developer.roblox.com/en-us/api-reference/class/Explosion","FaceAnimatorService":"https://developer.roblox.com/en-us/api-reference/class/FaceAnimatorService","FaceControls":"https://developer.roblox.com/en-us/api-reference/class/FaceControls","FaceInstance":"https://developer.roblox.com/en-us/api-reference/class/FaceInstance","Decal":"https://developer.roblox.com/en-us/api-reference/class/Decal","Texture":"https://developer.roblox.com/en-us/api-reference/class/Texture","FacialAnimationRecordingService":"https://developer.roblox.com/en-us/api-reference/class/FacialAnimationRecordingService","FacialAnimationStreamingServiceStats":"https://developer.roblox.com/en-us/api-reference/class/FacialAnimationStreamingServiceStats","FacialAnimationStreamingServiceV2":"https://developer.roblox.com/en-us/api-reference/class/FacialAnimationStreamingServiceV2","FacialAnimationStreamingSubsessionStats":"https://developer.roblox.com/en-us/api-reference/class/FacialAnimationStreamingSubsessionStats","Feature":"https://developer.roblox.com/en-us/api-reference/class/Feature","Hole":"https://developer.roblox.com/en-us/api-reference/class/Hole","MotorFeature":"https://developer.roblox.com/en-us/api-reference/class/MotorFeature","File":"https://developer.roblox.com/en-us/api-reference/class/File","Fire":"https://developer.roblox.com/en-us/api-reference/class/Fire","FlagStandService":"https://developer.roblox.com/en-us/api-reference/class/FlagStandService","FloatCurve":"https://developer.roblox.com/en-us/api-reference/class/FloatCurve","FlyweightService":"https://developer.roblox.com/en-us/api-reference/class/FlyweightService","CSGDictionaryService":"https://developer.roblox.com/en-us/api-reference/class/CSGDictionaryService","NonReplicatedCSGDictionaryService":"https://developer.roblox.com/en-us/api-reference/class/NonReplicatedCSGDictionaryService","Folder":"https://developer.roblox.com/en-us/api-reference/class/Folder","ForceField":"https://developer.roblox.com/en-us/api-reference/class/ForceField","FriendService":"https://developer.roblox.com/en-us/api-reference/class/FriendService","FunctionalTest":"https://developer.roblox.com/en-us/api-reference/class/FunctionalTest","GamePassService":"https://developer.roblox.com/en-us/api-reference/class/GamePassService","GameSettings":"https://developer.roblox.com/en-us/api-reference/class/GameSettings","GamepadService":"https://developer.roblox.com/en-us/api-reference/class/GamepadService","Geometry":"https://developer.roblox.com/en-us/api-reference/class/Geometry","GeometryService":"https://developer.roblox.com/en-us/api-reference/class/GeometryService","GetTextBoundsParams":"https://developer.roblox.com/en-us/api-reference/class/GetTextBoundsParams","GlobalDataStore":"https://developer.roblox.com/en-us/api-reference/class/GlobalDataStore","DataStore":"https://developer.roblox.com/en-us/api-reference/class/DataStore","OrderedDataStore":"https://developer.roblox.com/en-us/api-reference/class/OrderedDataStore","GoogleAnalyticsConfiguration":"https://developer.roblox.com/en-us/api-reference/class/GoogleAnalyticsConfiguration","GroupService":"https://developer.roblox.com/en-us/api-reference/class/GroupService","GuiBase":"https://developer.roblox.com/en-us/api-reference/class/GuiBase","GuiBase2d":"https://developer.roblox.com/en-us/api-reference/class/GuiBase2d","GuiObject":"https://developer.roblox.com/en-us/api-reference/class/GuiObject","CanvasGroup":"https://developer.roblox.com/en-us/api-reference/class/CanvasGroup","Frame":"https://developer.roblox.com/en-us/api-reference/class/Frame","GuiButton":"https://developer.roblox.com/en-us/api-reference/class/GuiButton","ImageButton":"https://developer.roblox.com/en-us/api-reference/class/ImageButton","TextButton":"https://developer.roblox.com/en-us/api-reference/class/TextButton","GuiLabel":"https://developer.roblox.com/en-us/api-reference/class/GuiLabel","ImageLabel":"https://developer.roblox.com/en-us/api-reference/class/ImageLabel","TextLabel":"https://developer.roblox.com/en-us/api-reference/class/TextLabel","ScrollingFrame":"https://developer.roblox.com/en-us/api-reference/class/ScrollingFrame","TextBox":"https://developer.roblox.com/en-us/api-reference/class/TextBox","VideoFrame":"https://developer.roblox.com/en-us/api-reference/class/VideoFrame","ViewportFrame":"https://developer.roblox.com/en-us/api-reference/class/ViewportFrame","LayerCollector":"https://developer.roblox.com/en-us/api-reference/class/LayerCollector","BillboardGui":"https://developer.roblox.com/en-us/api-reference/class/BillboardGui","PluginGui":"https://developer.roblox.com/en-us/api-reference/class/PluginGui","DockWidgetPluginGui":"https://developer.roblox.com/en-us/api-reference/class/DockWidgetPluginGui","QWidgetPluginGui":"https://developer.roblox.com/en-us/api-reference/class/QWidgetPluginGui","ScreenGui":"https://developer.roblox.com/en-us/api-reference/class/ScreenGui","GuiMain":"https://developer.roblox.com/en-us/api-reference/class/GuiMain","SurfaceGuiBase":"https://developer.roblox.com/en-us/api-reference/class/SurfaceGuiBase","AdGui":"https://developer.roblox.com/en-us/api-reference/class/AdGui","SurfaceGui":"https://developer.roblox.com/en-us/api-reference/class/SurfaceGui","GuiBase3d":"https://developer.roblox.com/en-us/api-reference/class/GuiBase3d","FloorWire":"https://developer.roblox.com/en-us/api-reference/class/FloorWire","InstanceAdornment":"https://developer.roblox.com/en-us/api-reference/class/InstanceAdornment","SelectionBox":"https://developer.roblox.com/en-us/api-reference/class/SelectionBox","PVAdornment":"https://developer.roblox.com/en-us/api-reference/class/PVAdornment","HandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/HandleAdornment","BoxHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/BoxHandleAdornment","ConeHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/ConeHandleAdornment","CylinderHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/CylinderHandleAdornment","ImageHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/ImageHandleAdornment","LineHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/LineHandleAdornment","SphereHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/SphereHandleAdornment","WireframeHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/WireframeHandleAdornment","ParabolaAdornment":"https://developer.roblox.com/en-us/api-reference/class/ParabolaAdornment","SelectionSphere":"https://developer.roblox.com/en-us/api-reference/class/SelectionSphere","PartAdornment":"https://developer.roblox.com/en-us/api-reference/class/PartAdornment","HandlesBase":"https://developer.roblox.com/en-us/api-reference/class/HandlesBase","ArcHandles":"https://developer.roblox.com/en-us/api-reference/class/ArcHandles","Handles":"https://developer.roblox.com/en-us/api-reference/class/Handles","SurfaceSelection":"https://developer.roblox.com/en-us/api-reference/class/SurfaceSelection","SelectionLasso":"https://developer.roblox.com/en-us/api-reference/class/SelectionLasso","SelectionPartLasso":"https://developer.roblox.com/en-us/api-reference/class/SelectionPartLasso","SelectionPointLasso":"https://developer.roblox.com/en-us/api-reference/class/SelectionPointLasso","GuiService":"https://developer.roblox.com/en-us/api-reference/class/GuiService","GuidRegistryService":"https://developer.roblox.com/en-us/api-reference/class/GuidRegistryService","HapticService":"https://developer.roblox.com/en-us/api-reference/class/HapticService","HeightmapImporterService":"https://developer.roblox.com/en-us/api-reference/class/HeightmapImporterService","HiddenSurfaceRemovalAsset":"https://developer.roblox.com/en-us/api-reference/class/HiddenSurfaceRemovalAsset","Highlight":"https://developer.roblox.com/en-us/api-reference/class/Highlight","Hopper":"https://developer.roblox.com/en-us/api-reference/class/Hopper","HttpRbxApiService":"https://developer.roblox.com/en-us/api-reference/class/HttpRbxApiService","HttpRequest":"https://developer.roblox.com/en-us/api-reference/class/HttpRequest","HttpService":"https://developer.roblox.com/en-us/api-reference/class/HttpService","Humanoid":"https://developer.roblox.com/en-us/api-reference/class/Humanoid","HumanoidDescription":"https://developer.roblox.com/en-us/api-reference/class/HumanoidDescription","IKControl":"https://developer.roblox.com/en-us/api-reference/class/IKControl","ILegacyStudioBridge":"https://developer.roblox.com/en-us/api-reference/class/ILegacyStudioBridge","LegacyStudioBridge":"https://developer.roblox.com/en-us/api-reference/class/LegacyStudioBridge","IXPService":"https://developer.roblox.com/en-us/api-reference/class/IXPService","IncrementalPatchBuilder":"https://developer.roblox.com/en-us/api-reference/class/IncrementalPatchBuilder","InputObject":"https://developer.roblox.com/en-us/api-reference/class/InputObject","InsertService":"https://developer.roblox.com/en-us/api-reference/class/InsertService","JointInstance":"https://developer.roblox.com/en-us/api-reference/class/JointInstance","DynamicRotate":"https://developer.roblox.com/en-us/api-reference/class/DynamicRotate","RotateP":"https://developer.roblox.com/en-us/api-reference/class/RotateP","RotateV":"https://developer.roblox.com/en-us/api-reference/class/RotateV","Glue":"https://developer.roblox.com/en-us/api-reference/class/Glue","ManualSurfaceJointInstance":"https://developer.roblox.com/en-us/api-reference/class/ManualSurfaceJointInstance","ManualGlue":"https://developer.roblox.com/en-us/api-reference/class/ManualGlue","ManualWeld":"https://developer.roblox.com/en-us/api-reference/class/ManualWeld","Motor":"https://developer.roblox.com/en-us/api-reference/class/Motor","Motor6D":"https://developer.roblox.com/en-us/api-reference/class/Motor6D","Rotate":"https://developer.roblox.com/en-us/api-reference/class/Rotate","Snap":"https://developer.roblox.com/en-us/api-reference/class/Snap","VelocityMotor":"https://developer.roblox.com/en-us/api-reference/class/VelocityMotor","Weld":"https://developer.roblox.com/en-us/api-reference/class/Weld","JointsService":"https://developer.roblox.com/en-us/api-reference/class/JointsService","KeyboardService":"https://developer.roblox.com/en-us/api-reference/class/KeyboardService","Keyframe":"https://developer.roblox.com/en-us/api-reference/class/Keyframe","KeyframeMarker":"https://developer.roblox.com/en-us/api-reference/class/KeyframeMarker","KeyframeSequenceProvider":"https://developer.roblox.com/en-us/api-reference/class/KeyframeSequenceProvider","LSPFileSyncService":"https://developer.roblox.com/en-us/api-reference/class/LSPFileSyncService","LanguageService":"https://developer.roblox.com/en-us/api-reference/class/LanguageService","Light":"https://developer.roblox.com/en-us/api-reference/class/Light","PointLight":"https://developer.roblox.com/en-us/api-reference/class/PointLight","SpotLight":"https://developer.roblox.com/en-us/api-reference/class/SpotLight","SurfaceLight":"https://developer.roblox.com/en-us/api-reference/class/SurfaceLight","Lighting":"https://developer.roblox.com/en-us/api-reference/class/Lighting","LiveScriptingService":"https://developer.roblox.com/en-us/api-reference/class/LiveScriptingService","LocalStorageService":"https://developer.roblox.com/en-us/api-reference/class/LocalStorageService","AppStorageService":"https://developer.roblox.com/en-us/api-reference/class/AppStorageService","UserStorageService":"https://developer.roblox.com/en-us/api-reference/class/UserStorageService","LocalizationService":"https://developer.roblox.com/en-us/api-reference/class/LocalizationService","LocalizationTable":"https://developer.roblox.com/en-us/api-reference/class/LocalizationTable","CloudLocalizationTable":"https://developer.roblox.com/en-us/api-reference/class/CloudLocalizationTable","LodDataEntity":"https://developer.roblox.com/en-us/api-reference/class/LodDataEntity","LodDataService":"https://developer.roblox.com/en-us/api-reference/class/LodDataService","LogService":"https://developer.roblox.com/en-us/api-reference/class/LogService","LoginService":"https://developer.roblox.com/en-us/api-reference/class/LoginService","LuaSettings":"https://developer.roblox.com/en-us/api-reference/class/LuaSettings","LuaSourceContainer":"https://developer.roblox.com/en-us/api-reference/class/LuaSourceContainer","BaseScript":"https://developer.roblox.com/en-us/api-reference/class/BaseScript","CoreScript":"https://developer.roblox.com/en-us/api-reference/class/CoreScript","Script":"https://developer.roblox.com/en-us/api-reference/class/Script","LocalScript":"https://developer.roblox.com/en-us/api-reference/class/LocalScript","ModuleScript":"https://developer.roblox.com/en-us/api-reference/class/ModuleScript","LuaWebService":"https://developer.roblox.com/en-us/api-reference/class/LuaWebService","LuauScriptAnalyzerService":"https://developer.roblox.com/en-us/api-reference/class/LuauScriptAnalyzerService","MarkerCurve":"https://developer.roblox.com/en-us/api-reference/class/MarkerCurve","MarketplaceService":"https://developer.roblox.com/en-us/api-reference/class/MarketplaceService","MaterialGenerationService":"https://developer.roblox.com/en-us/api-reference/class/MaterialGenerationService","MaterialGenerationSession":"https://developer.roblox.com/en-us/api-reference/class/MaterialGenerationSession","MaterialService":"https://developer.roblox.com/en-us/api-reference/class/MaterialService","MaterialVariant":"https://developer.roblox.com/en-us/api-reference/class/MaterialVariant","MemStorageConnection":"https://developer.roblox.com/en-us/api-reference/class/MemStorageConnection","MemStorageService":"https://developer.roblox.com/en-us/api-reference/class/MemStorageService","MemoryStoreQueue":"https://developer.roblox.com/en-us/api-reference/class/MemoryStoreQueue","MemoryStoreService":"https://developer.roblox.com/en-us/api-reference/class/MemoryStoreService","MemoryStoreSortedMap":"https://developer.roblox.com/en-us/api-reference/class/MemoryStoreSortedMap","Message":"https://developer.roblox.com/en-us/api-reference/class/Message","Hint":"https://developer.roblox.com/en-us/api-reference/class/Hint","MessageBusConnection":"https://developer.roblox.com/en-us/api-reference/class/MessageBusConnection","MessageBusService":"https://developer.roblox.com/en-us/api-reference/class/MessageBusService","MessagingService":"https://developer.roblox.com/en-us/api-reference/class/MessagingService","MetaBreakpoint":"https://developer.roblox.com/en-us/api-reference/class/MetaBreakpoint","MetaBreakpointContext":"https://developer.roblox.com/en-us/api-reference/class/MetaBreakpointContext","MetaBreakpointManager":"https://developer.roblox.com/en-us/api-reference/class/MetaBreakpointManager","Mouse":"https://developer.roblox.com/en-us/api-reference/class/Mouse","PlayerMouse":"https://developer.roblox.com/en-us/api-reference/class/PlayerMouse","PluginMouse":"https://developer.roblox.com/en-us/api-reference/class/PluginMouse","MouseService":"https://developer.roblox.com/en-us/api-reference/class/MouseService","MultipleDocumentInterfaceInstance":"https://developer.roblox.com/en-us/api-reference/class/MultipleDocumentInterfaceInstance","NetworkMarker":"https://developer.roblox.com/en-us/api-reference/class/NetworkMarker","NetworkPeer":"https://developer.roblox.com/en-us/api-reference/class/NetworkPeer","NetworkClient":"https://developer.roblox.com/en-us/api-reference/class/NetworkClient","NetworkServer":"https://developer.roblox.com/en-us/api-reference/class/NetworkServer","NetworkReplicator":"https://developer.roblox.com/en-us/api-reference/class/NetworkReplicator","ClientReplicator":"https://developer.roblox.com/en-us/api-reference/class/ClientReplicator","ServerReplicator":"https://developer.roblox.com/en-us/api-reference/class/ServerReplicator","NetworkSettings":"https://developer.roblox.com/en-us/api-reference/class/NetworkSettings","NoCollisionConstraint":"https://developer.roblox.com/en-us/api-reference/class/NoCollisionConstraint","NotificationService":"https://developer.roblox.com/en-us/api-reference/class/NotificationService","OmniRecommendationsService":"https://developer.roblox.com/en-us/api-reference/class/OmniRecommendationsService","OpenCloudApiV1":"https://developer.roblox.com/en-us/api-reference/class/OpenCloudApiV1","OpenCloudService":"https://developer.roblox.com/en-us/api-reference/class/OpenCloudService","PVInstance":"https://developer.roblox.com/en-us/api-reference/class/PVInstance","BasePart":"https://developer.roblox.com/en-us/api-reference/class/BasePart","CornerWedgePart":"https://developer.roblox.com/en-us/api-reference/class/CornerWedgePart","FormFactorPart":"https://developer.roblox.com/en-us/api-reference/class/FormFactorPart","Part":"https://developer.roblox.com/en-us/api-reference/class/Part","FlagStand":"https://developer.roblox.com/en-us/api-reference/class/FlagStand","Platform":"https://developer.roblox.com/en-us/api-reference/enum/Platform","Seat":"https://developer.roblox.com/en-us/api-reference/class/Seat","SkateboardPlatform":"https://developer.roblox.com/en-us/api-reference/class/SkateboardPlatform","SpawnLocation":"https://developer.roblox.com/en-us/api-reference/class/SpawnLocation","WedgePart":"https://developer.roblox.com/en-us/api-reference/class/WedgePart","Terrain":"https://developer.roblox.com/en-us/api-reference/class/Terrain","TriangleMeshPart":"https://developer.roblox.com/en-us/api-reference/class/TriangleMeshPart","MeshPart":"https://developer.roblox.com/en-us/api-reference/class/MeshPart","PartOperation":"https://developer.roblox.com/en-us/api-reference/class/PartOperation","IntersectOperation":"https://developer.roblox.com/en-us/api-reference/class/IntersectOperation","NegateOperation":"https://developer.roblox.com/en-us/api-reference/class/NegateOperation","UnionOperation":"https://developer.roblox.com/en-us/api-reference/class/UnionOperation","TrussPart":"https://developer.roblox.com/en-us/api-reference/class/TrussPart","VehicleSeat":"https://developer.roblox.com/en-us/api-reference/class/VehicleSeat","Model":"https://developer.roblox.com/en-us/api-reference/class/Model","Actor":"https://developer.roblox.com/en-us/api-reference/class/Actor","BackpackItem":"https://developer.roblox.com/en-us/api-reference/class/BackpackItem","HopperBin":"https://developer.roblox.com/en-us/api-reference/class/HopperBin","Tool":"https://developer.roblox.com/en-us/api-reference/class/Tool","Flag":"https://developer.roblox.com/en-us/api-reference/class/Flag","Status":"https://developer.roblox.com/en-us/api-reference/enum/Status","WorldRoot":"https://developer.roblox.com/en-us/api-reference/class/WorldRoot","Workspace":"https://developer.roblox.com/en-us/api-reference/class/Workspace","WorldModel":"https://developer.roblox.com/en-us/api-reference/class/WorldModel","PackageLink":"https://developer.roblox.com/en-us/api-reference/class/PackageLink","PackageService":"https://developer.roblox.com/en-us/api-reference/class/PackageService","PackageUIService":"https://developer.roblox.com/en-us/api-reference/class/PackageUIService","Pages":"https://developer.roblox.com/en-us/api-reference/class/Pages","AudioPages":"https://developer.roblox.com/en-us/api-reference/class/AudioPages","CatalogPages":"https://developer.roblox.com/en-us/api-reference/class/CatalogPages","DataStoreKeyPages":"https://developer.roblox.com/en-us/api-reference/class/DataStoreKeyPages","DataStoreListingPages":"https://developer.roblox.com/en-us/api-reference/class/DataStoreListingPages","DataStorePages":"https://developer.roblox.com/en-us/api-reference/class/DataStorePages","DataStoreVersionPages":"https://developer.roblox.com/en-us/api-reference/class/DataStoreVersionPages","FriendPages":"https://developer.roblox.com/en-us/api-reference/class/FriendPages","InventoryPages":"https://developer.roblox.com/en-us/api-reference/class/InventoryPages","EmotesPages":"https://developer.roblox.com/en-us/api-reference/class/EmotesPages","OutfitPages":"https://developer.roblox.com/en-us/api-reference/class/OutfitPages","StandardPages":"https://developer.roblox.com/en-us/api-reference/class/StandardPages","PartOperationAsset":"https://developer.roblox.com/en-us/api-reference/class/PartOperationAsset","ParticleEmitter":"https://developer.roblox.com/en-us/api-reference/class/ParticleEmitter","PatchBundlerFileWatch":"https://developer.roblox.com/en-us/api-reference/class/PatchBundlerFileWatch","PatchMapping":"https://developer.roblox.com/en-us/api-reference/class/PatchMapping","Path":"https://developer.roblox.com/en-us/api-reference/class/Path","PathfindingLink":"https://developer.roblox.com/en-us/api-reference/class/PathfindingLink","PathfindingModifier":"https://developer.roblox.com/en-us/api-reference/class/PathfindingModifier","PathfindingService":"https://developer.roblox.com/en-us/api-reference/class/PathfindingService","PausedState":"https://developer.roblox.com/en-us/api-reference/class/PausedState","PausedStateBreakpoint":"https://developer.roblox.com/en-us/api-reference/class/PausedStateBreakpoint","PausedStateException":"https://developer.roblox.com/en-us/api-reference/class/PausedStateException","PermissionsService":"https://developer.roblox.com/en-us/api-reference/class/PermissionsService","PhysicsService":"https://developer.roblox.com/en-us/api-reference/class/PhysicsService","PhysicsSettings":"https://developer.roblox.com/en-us/api-reference/class/PhysicsSettings","PlaceStatsService":"https://developer.roblox.com/en-us/api-reference/class/PlaceStatsService","PlacesService":"https://developer.roblox.com/en-us/api-reference/class/PlacesService","PlatformFriendsService":"https://developer.roblox.com/en-us/api-reference/class/PlatformFriendsService","Player":"https://developer.roblox.com/en-us/api-reference/class/Player","PlayerEmulatorService":"https://developer.roblox.com/en-us/api-reference/class/PlayerEmulatorService","PlayerScripts":"https://developer.roblox.com/en-us/api-reference/class/PlayerScripts","Players":"https://developer.roblox.com/en-us/api-reference/class/Players","Plugin":"https://developer.roblox.com/en-us/api-reference/class/Plugin","PluginAction":"https://developer.roblox.com/en-us/api-reference/class/PluginAction","PluginCapabilities":"https://developer.roblox.com/en-us/api-reference/class/PluginCapabilities","PluginDebugService":"https://developer.roblox.com/en-us/api-reference/class/PluginDebugService","PluginDragEvent":"https://developer.roblox.com/en-us/api-reference/class/PluginDragEvent","PluginGuiService":"https://developer.roblox.com/en-us/api-reference/class/PluginGuiService","PluginManagementService":"https://developer.roblox.com/en-us/api-reference/class/PluginManagementService","PluginManager":"https://developer.roblox.com/en-us/api-reference/class/PluginManager","PluginManagerInterface":"https://developer.roblox.com/en-us/api-reference/class/PluginManagerInterface","PluginMenu":"https://developer.roblox.com/en-us/api-reference/class/PluginMenu","PluginPolicyService":"https://developer.roblox.com/en-us/api-reference/class/PluginPolicyService","PluginToolbar":"https://developer.roblox.com/en-us/api-reference/class/PluginToolbar","PluginToolbarButton":"https://developer.roblox.com/en-us/api-reference/class/PluginToolbarButton","PointsService":"https://developer.roblox.com/en-us/api-reference/class/PointsService","PolicyService":"https://developer.roblox.com/en-us/api-reference/class/PolicyService","PoseBase":"https://developer.roblox.com/en-us/api-reference/class/PoseBase","NumberPose":"https://developer.roblox.com/en-us/api-reference/class/NumberPose","Pose":"https://developer.roblox.com/en-us/api-reference/class/Pose","PostEffect":"https://developer.roblox.com/en-us/api-reference/class/PostEffect","BloomEffect":"https://developer.roblox.com/en-us/api-reference/class/BloomEffect","BlurEffect":"https://developer.roblox.com/en-us/api-reference/class/BlurEffect","ColorCorrectionEffect":"https://developer.roblox.com/en-us/api-reference/class/ColorCorrectionEffect","DepthOfFieldEffect":"https://developer.roblox.com/en-us/api-reference/class/DepthOfFieldEffect","SunRaysEffect":"https://developer.roblox.com/en-us/api-reference/class/SunRaysEffect","ProcessInstancePhysicsService":"https://developer.roblox.com/en-us/api-reference/class/ProcessInstancePhysicsService","ProximityPrompt":"https://developer.roblox.com/en-us/api-reference/class/ProximityPrompt","ProximityPromptService":"https://developer.roblox.com/en-us/api-reference/class/ProximityPromptService","PublishService":"https://developer.roblox.com/en-us/api-reference/class/PublishService","RbxAnalyticsService":"https://developer.roblox.com/en-us/api-reference/class/RbxAnalyticsService","ReflectionMetadata":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadata","ReflectionMetadataCallbacks":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataCallbacks","ReflectionMetadataClasses":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataClasses","ReflectionMetadataEnums":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataEnums","ReflectionMetadataEvents":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataEvents","ReflectionMetadataFunctions":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataFunctions","ReflectionMetadataItem":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataItem","ReflectionMetadataClass":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataClass","ReflectionMetadataEnum":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataEnum","ReflectionMetadataEnumItem":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataEnumItem","ReflectionMetadataMember":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataMember","ReflectionMetadataProperties":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataProperties","ReflectionMetadataYieldFunctions":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataYieldFunctions","RemoteCursorService":"https://developer.roblox.com/en-us/api-reference/class/RemoteCursorService","RemoteDebuggerServer":"https://developer.roblox.com/en-us/api-reference/class/RemoteDebuggerServer","RemoteEvent":"https://developer.roblox.com/en-us/api-reference/class/RemoteEvent","RemoteFunction":"https://developer.roblox.com/en-us/api-reference/class/RemoteFunction","RenderSettings":"https://developer.roblox.com/en-us/api-reference/class/RenderSettings","RenderingTest":"https://developer.roblox.com/en-us/api-reference/class/RenderingTest","ReplicatedFirst":"https://developer.roblox.com/en-us/api-reference/class/ReplicatedFirst","ReplicatedStorage":"https://developer.roblox.com/en-us/api-reference/class/ReplicatedStorage","RobloxPluginGuiService":"https://developer.roblox.com/en-us/api-reference/class/RobloxPluginGuiService","RobloxReplicatedStorage":"https://developer.roblox.com/en-us/api-reference/class/RobloxReplicatedStorage","RobloxServerStorage":"https://developer.roblox.com/en-us/api-reference/class/RobloxServerStorage","RomarkService":"https://developer.roblox.com/en-us/api-reference/class/RomarkService","RotationCurve":"https://developer.roblox.com/en-us/api-reference/class/RotationCurve","RtMessagingService":"https://developer.roblox.com/en-us/api-reference/class/RtMessagingService","RunService":"https://developer.roblox.com/en-us/api-reference/class/RunService","RuntimeScriptService":"https://developer.roblox.com/en-us/api-reference/class/RuntimeScriptService","SafetyService":"https://developer.roblox.com/en-us/api-reference/class/SafetyService","ScreenshotHud":"https://developer.roblox.com/en-us/api-reference/class/ScreenshotHud","ScriptBuilder":"https://developer.roblox.com/en-us/api-reference/class/ScriptBuilder","SyncScriptBuilder":"https://developer.roblox.com/en-us/api-reference/class/SyncScriptBuilder","ScriptChangeService":"https://developer.roblox.com/en-us/api-reference/class/ScriptChangeService","ScriptCloneWatcher":"https://developer.roblox.com/en-us/api-reference/class/ScriptCloneWatcher","ScriptCloneWatcherHelper":"https://developer.roblox.com/en-us/api-reference/class/ScriptCloneWatcherHelper","ScriptCommitService":"https://developer.roblox.com/en-us/api-reference/class/ScriptCommitService","ScriptContext":"https://developer.roblox.com/en-us/api-reference/class/ScriptContext","ScriptDebugger":"https://developer.roblox.com/en-us/api-reference/class/ScriptDebugger","ScriptDocument":"https://developer.roblox.com/en-us/api-reference/class/ScriptDocument","ScriptEditorService":"https://developer.roblox.com/en-us/api-reference/class/ScriptEditorService","ScriptRegistrationService":"https://developer.roblox.com/en-us/api-reference/class/ScriptRegistrationService","ScriptRuntime":"https://developer.roblox.com/en-us/api-reference/class/ScriptRuntime","ScriptService":"https://developer.roblox.com/en-us/api-reference/class/ScriptService","Selection":"https://developer.roblox.com/en-us/api-reference/class/Selection","SelectionHighlightManager":"https://developer.roblox.com/en-us/api-reference/class/SelectionHighlightManager","SensorBase":"https://developer.roblox.com/en-us/api-reference/class/SensorBase","BuoyancySensor":"https://developer.roblox.com/en-us/api-reference/class/BuoyancySensor","ControllerSensor":"https://developer.roblox.com/en-us/api-reference/class/ControllerSensor","ControllerPartSensor":"https://developer.roblox.com/en-us/api-reference/class/ControllerPartSensor","ServerScriptService":"https://developer.roblox.com/en-us/api-reference/class/ServerScriptService","ServerStorage":"https://developer.roblox.com/en-us/api-reference/class/ServerStorage","ServiceProvider":"https://developer.roblox.com/en-us/api-reference/class/ServiceProvider","DataModel":"https://developer.roblox.com/en-us/api-reference/class/DataModel","GenericSettings":"https://developer.roblox.com/en-us/api-reference/class/GenericSettings","AnalysticsSettings":"https://developer.roblox.com/en-us/api-reference/class/AnalysticsSettings","GlobalSettings":"https://developer.roblox.com/en-us/api-reference/class/GlobalSettings","UserSettings":"https://developer.roblox.com/en-us/api-reference/class/UserSettings","ServiceVisibilityService":"https://developer.roblox.com/en-us/api-reference/class/ServiceVisibilityService","SessionService":"https://developer.roblox.com/en-us/api-reference/class/SessionService","SharedTableRegistry":"https://developer.roblox.com/en-us/api-reference/class/SharedTableRegistry","ShorelineUpgraderService":"https://developer.roblox.com/en-us/api-reference/class/ShorelineUpgraderService","Sky":"https://developer.roblox.com/en-us/api-reference/class/Sky","Smoke":"https://developer.roblox.com/en-us/api-reference/class/Smoke","SmoothVoxelsUpgraderService":"https://developer.roblox.com/en-us/api-reference/class/SmoothVoxelsUpgraderService","SnippetService":"https://developer.roblox.com/en-us/api-reference/class/SnippetService","SocialService":"https://developer.roblox.com/en-us/api-reference/class/SocialService","Sound":"https://developer.roblox.com/en-us/api-reference/class/Sound","SoundEffect":"https://developer.roblox.com/en-us/api-reference/class/SoundEffect","ChorusSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/ChorusSoundEffect","CompressorSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/CompressorSoundEffect","CustomSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/CustomSoundEffect","AssetSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/AssetSoundEffect","ChannelSelectorSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/ChannelSelectorSoundEffect","DistortionSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/DistortionSoundEffect","EchoSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/EchoSoundEffect","EqualizerSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/EqualizerSoundEffect","FlangeSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/FlangeSoundEffect","PitchShiftSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/PitchShiftSoundEffect","ReverbSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/ReverbSoundEffect","TremoloSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/TremoloSoundEffect","SoundGroup":"https://developer.roblox.com/en-us/api-reference/class/SoundGroup","SoundService":"https://developer.roblox.com/en-us/api-reference/class/SoundService","Sparkles":"https://developer.roblox.com/en-us/api-reference/class/Sparkles","SpawnerService":"https://developer.roblox.com/en-us/api-reference/class/SpawnerService","StackFrame":"https://developer.roblox.com/en-us/api-reference/class/StackFrame","StandalonePluginScripts":"https://developer.roblox.com/en-us/api-reference/class/StandalonePluginScripts","StarterGear":"https://developer.roblox.com/en-us/api-reference/class/StarterGear","StarterPack":"https://developer.roblox.com/en-us/api-reference/class/StarterPack","StarterPlayer":"https://developer.roblox.com/en-us/api-reference/class/StarterPlayer","StarterPlayerScripts":"https://developer.roblox.com/en-us/api-reference/class/StarterPlayerScripts","StarterCharacterScripts":"https://developer.roblox.com/en-us/api-reference/class/StarterCharacterScripts","Stats":"https://developer.roblox.com/en-us/api-reference/class/Stats","StatsItem":"https://developer.roblox.com/en-us/api-reference/class/StatsItem","RunningAverageItemDouble":"https://developer.roblox.com/en-us/api-reference/class/RunningAverageItemDouble","RunningAverageItemInt":"https://developer.roblox.com/en-us/api-reference/class/RunningAverageItemInt","RunningAverageTimeIntervalItem":"https://developer.roblox.com/en-us/api-reference/class/RunningAverageTimeIntervalItem","TotalCountTimeIntervalItem":"https://developer.roblox.com/en-us/api-reference/class/TotalCountTimeIntervalItem","StopWatchReporter":"https://developer.roblox.com/en-us/api-reference/class/StopWatchReporter","StreamingService":"https://developer.roblox.com/en-us/api-reference/class/StreamingService","Studio":"https://developer.roblox.com/en-us/api-reference/class/Studio","StudioAssetService":"https://developer.roblox.com/en-us/api-reference/class/StudioAssetService","StudioCallout":"https://developer.roblox.com/en-us/api-reference/class/StudioCallout","StudioData":"https://developer.roblox.com/en-us/api-reference/class/StudioData","StudioDeviceEmulatorService":"https://developer.roblox.com/en-us/api-reference/class/StudioDeviceEmulatorService","StudioObjectBase":"https://developer.roblox.com/en-us/api-reference/class/StudioObjectBase","StudioWidget":"https://developer.roblox.com/en-us/api-reference/class/StudioWidget","StudioPublishService":"https://developer.roblox.com/en-us/api-reference/class/StudioPublishService","StudioScriptDebugEventListener":"https://developer.roblox.com/en-us/api-reference/class/StudioScriptDebugEventListener","StudioSdkService":"https://developer.roblox.com/en-us/api-reference/class/StudioSdkService","StudioService":"https://developer.roblox.com/en-us/api-reference/class/StudioService","StudioTheme":"https://developer.roblox.com/en-us/api-reference/class/StudioTheme","StyleBase":"https://developer.roblox.com/en-us/api-reference/class/StyleBase","StyleRule":"https://developer.roblox.com/en-us/api-reference/class/StyleRule","StyleSheet":"https://developer.roblox.com/en-us/api-reference/class/StyleSheet","StyleDerive":"https://developer.roblox.com/en-us/api-reference/class/StyleDerive","StyleLink":"https://developer.roblox.com/en-us/api-reference/class/StyleLink","StylingService":"https://developer.roblox.com/en-us/api-reference/class/StylingService","SurfaceAppearance":"https://developer.roblox.com/en-us/api-reference/class/SurfaceAppearance","TaskScheduler":"https://developer.roblox.com/en-us/api-reference/class/TaskScheduler","Team":"https://developer.roblox.com/en-us/api-reference/class/Team","TeamCreateData":"https://developer.roblox.com/en-us/api-reference/class/TeamCreateData","TeamCreatePublishService":"https://developer.roblox.com/en-us/api-reference/class/TeamCreatePublishService","TeamCreateService":"https://developer.roblox.com/en-us/api-reference/class/TeamCreateService","Teams":"https://developer.roblox.com/en-us/api-reference/class/Teams","TeleportAsyncResult":"https://developer.roblox.com/en-us/api-reference/class/TeleportAsyncResult","TeleportOptions":"https://developer.roblox.com/en-us/api-reference/class/TeleportOptions","TeleportService":"https://developer.roblox.com/en-us/api-reference/class/TeleportService","TemporaryCageMeshProvider":"https://developer.roblox.com/en-us/api-reference/class/TemporaryCageMeshProvider","TemporaryScriptService":"https://developer.roblox.com/en-us/api-reference/class/TemporaryScriptService","TerrainDetail":"https://developer.roblox.com/en-us/api-reference/class/TerrainDetail","TerrainRegion":"https://developer.roblox.com/en-us/api-reference/class/TerrainRegion","TestService":"https://developer.roblox.com/en-us/api-reference/class/TestService","TextBoxService":"https://developer.roblox.com/en-us/api-reference/class/TextBoxService","TextChannel":"https://developer.roblox.com/en-us/api-reference/class/TextChannel","TextChatCommand":"https://developer.roblox.com/en-us/api-reference/class/TextChatCommand","TextChatConfigurations":"https://developer.roblox.com/en-us/api-reference/class/TextChatConfigurations","BubbleChatConfiguration":"https://developer.roblox.com/en-us/api-reference/class/BubbleChatConfiguration","ChatInputBarConfiguration":"https://developer.roblox.com/en-us/api-reference/class/ChatInputBarConfiguration","ChatWindowConfiguration":"https://developer.roblox.com/en-us/api-reference/class/ChatWindowConfiguration","TextChatMessage":"https://developer.roblox.com/en-us/api-reference/class/TextChatMessage","TextChatMessageProperties":"https://developer.roblox.com/en-us/api-reference/class/TextChatMessageProperties","TextChatService":"https://developer.roblox.com/en-us/api-reference/class/TextChatService","TextFilterResult":"https://developer.roblox.com/en-us/api-reference/class/TextFilterResult","TextFilterTranslatedResult":"https://developer.roblox.com/en-us/api-reference/class/TextFilterTranslatedResult","TextService":"https://developer.roblox.com/en-us/api-reference/class/TextService","TextSource":"https://developer.roblox.com/en-us/api-reference/class/TextSource","ThirdPartyUserService":"https://developer.roblox.com/en-us/api-reference/class/ThirdPartyUserService","ThreadState":"https://developer.roblox.com/en-us/api-reference/class/ThreadState","TimerService":"https://developer.roblox.com/en-us/api-reference/class/TimerService","ToastNotificationService":"https://developer.roblox.com/en-us/api-reference/class/ToastNotificationService","TouchInputService":"https://developer.roblox.com/en-us/api-reference/class/TouchInputService","TouchTransmitter":"https://developer.roblox.com/en-us/api-reference/class/TouchTransmitter","TracerService":"https://developer.roblox.com/en-us/api-reference/class/TracerService","TrackerLodController":"https://developer.roblox.com/en-us/api-reference/class/TrackerLodController","TrackerStreamAnimation":"https://developer.roblox.com/en-us/api-reference/class/TrackerStreamAnimation","Trail":"https://developer.roblox.com/en-us/api-reference/class/Trail","Translator":"https://developer.roblox.com/en-us/api-reference/class/Translator","TutorialService":"https://developer.roblox.com/en-us/api-reference/class/TutorialService","TweenBase":"https://developer.roblox.com/en-us/api-reference/class/TweenBase","Tween":"https://developer.roblox.com/en-us/api-reference/class/Tween","TweenService":"https://developer.roblox.com/en-us/api-reference/class/TweenService","UGCAvatarService":"https://developer.roblox.com/en-us/api-reference/class/UGCAvatarService","UGCValidationService":"https://developer.roblox.com/en-us/api-reference/class/UGCValidationService","UIBase":"https://developer.roblox.com/en-us/api-reference/class/UIBase","UIComponent":"https://developer.roblox.com/en-us/api-reference/class/UIComponent","UIConstraint":"https://developer.roblox.com/en-us/api-reference/class/UIConstraint","UIAspectRatioConstraint":"https://developer.roblox.com/en-us/api-reference/class/UIAspectRatioConstraint","UISizeConstraint":"https://developer.roblox.com/en-us/api-reference/class/UISizeConstraint","UITextSizeConstraint":"https://developer.roblox.com/en-us/api-reference/class/UITextSizeConstraint","UICorner":"https://developer.roblox.com/en-us/api-reference/class/UICorner","UIGradient":"https://developer.roblox.com/en-us/api-reference/class/UIGradient","UILayout":"https://developer.roblox.com/en-us/api-reference/class/UILayout","UIGridStyleLayout":"https://developer.roblox.com/en-us/api-reference/class/UIGridStyleLayout","UIGridLayout":"https://developer.roblox.com/en-us/api-reference/class/UIGridLayout","UIListLayout":"https://developer.roblox.com/en-us/api-reference/class/UIListLayout","UIPageLayout":"https://developer.roblox.com/en-us/api-reference/class/UIPageLayout","UITableLayout":"https://developer.roblox.com/en-us/api-reference/class/UITableLayout","UIPadding":"https://developer.roblox.com/en-us/api-reference/class/UIPadding","UIScale":"https://developer.roblox.com/en-us/api-reference/class/UIScale","UIStroke":"https://developer.roblox.com/en-us/api-reference/class/UIStroke","UnvalidatedAssetService":"https://developer.roblox.com/en-us/api-reference/class/UnvalidatedAssetService","UserGameSettings":"https://developer.roblox.com/en-us/api-reference/class/UserGameSettings","UserInputService":"https://developer.roblox.com/en-us/api-reference/class/UserInputService","UserNotification":"https://developer.roblox.com/en-us/api-reference/class/UserNotification","UserNotificationPayload":"https://developer.roblox.com/en-us/api-reference/class/UserNotificationPayload","UserNotificationPayloadAnalyticsData":"https://developer.roblox.com/en-us/api-reference/class/UserNotificationPayloadAnalyticsData","UserNotificationPayloadJoinExperience":"https://developer.roblox.com/en-us/api-reference/class/UserNotificationPayloadJoinExperience","UserNotificationPayloadParameterValue":"https://developer.roblox.com/en-us/api-reference/class/UserNotificationPayloadParameterValue","UserService":"https://developer.roblox.com/en-us/api-reference/class/UserService","VRService":"https://developer.roblox.com/en-us/api-reference/class/VRService","VRStatusService":"https://developer.roblox.com/en-us/api-reference/class/VRStatusService","ValueBase":"https://developer.roblox.com/en-us/api-reference/class/ValueBase","BinaryStringValue":"https://developer.roblox.com/en-us/api-reference/class/BinaryStringValue","BoolValue":"https://developer.roblox.com/en-us/api-reference/class/BoolValue","BrickColorValue":"https://developer.roblox.com/en-us/api-reference/class/BrickColorValue","CFrameValue":"https://developer.roblox.com/en-us/api-reference/class/CFrameValue","Color3Value":"https://developer.roblox.com/en-us/api-reference/class/Color3Value","DoubleConstrainedValue":"https://developer.roblox.com/en-us/api-reference/class/DoubleConstrainedValue","IntConstrainedValue":"https://developer.roblox.com/en-us/api-reference/class/IntConstrainedValue","IntValue":"https://developer.roblox.com/en-us/api-reference/class/IntValue","NumberValue":"https://developer.roblox.com/en-us/api-reference/class/NumberValue","ObjectValue":"https://developer.roblox.com/en-us/api-reference/class/ObjectValue","RayValue":"https://developer.roblox.com/en-us/api-reference/class/RayValue","StringValue":"https://developer.roblox.com/en-us/api-reference/class/StringValue","Vector3Value":"https://developer.roblox.com/en-us/api-reference/class/Vector3Value","Vector3Curve":"https://developer.roblox.com/en-us/api-reference/class/Vector3Curve","VersionControlService":"https://developer.roblox.com/en-us/api-reference/class/VersionControlService","VideoCaptureService":"https://developer.roblox.com/en-us/api-reference/class/VideoCaptureService","VideoService":"https://developer.roblox.com/en-us/api-reference/class/VideoService","VirtualInputManager":"https://developer.roblox.com/en-us/api-reference/class/VirtualInputManager","VirtualUser":"https://developer.roblox.com/en-us/api-reference/class/VirtualUser","VisibilityCheckDispatcher":"https://developer.roblox.com/en-us/api-reference/class/VisibilityCheckDispatcher","VisibilityService":"https://developer.roblox.com/en-us/api-reference/class/VisibilityService","Visit":"https://developer.roblox.com/en-us/api-reference/class/Visit","VoiceChatInternal":"https://developer.roblox.com/en-us/api-reference/class/VoiceChatInternal","VoiceChatService":"https://developer.roblox.com/en-us/api-reference/class/VoiceChatService","WeldConstraint":"https://developer.roblox.com/en-us/api-reference/class/WeldConstraint","Wire":"https://developer.roblox.com/en-us/api-reference/class/Wire","AccessModifierType":"https://developer.roblox.com/en-us/api-reference/enum/AccessModifierType","AccessoryType":"https://developer.roblox.com/en-us/api-reference/enum/AccessoryType","ActionType":"https://developer.roblox.com/en-us/api-reference/enum/ActionType","ActuatorRelativeTo":"https://developer.roblox.com/en-us/api-reference/enum/ActuatorRelativeTo","ActuatorType":"https://developer.roblox.com/en-us/api-reference/enum/ActuatorType","AdShape":"https://developer.roblox.com/en-us/api-reference/enum/AdShape","AdTeleportMethod":"https://developer.roblox.com/en-us/api-reference/enum/AdTeleportMethod","AdUnitStatus":"https://developer.roblox.com/en-us/api-reference/enum/AdUnitStatus","AdornCullingMode":"https://developer.roblox.com/en-us/api-reference/enum/AdornCullingMode","AlignType":"https://developer.roblox.com/en-us/api-reference/enum/AlignType","AlphaMode":"https://developer.roblox.com/en-us/api-reference/enum/AlphaMode","AnalyticsEconomyAction":"https://developer.roblox.com/en-us/api-reference/enum/AnalyticsEconomyAction","AnalyticsLogLevel":"https://developer.roblox.com/en-us/api-reference/enum/AnalyticsLogLevel","AnalyticsProgressionStatus":"https://developer.roblox.com/en-us/api-reference/enum/AnalyticsProgressionStatus","AnimationPriority":"https://developer.roblox.com/en-us/api-reference/enum/AnimationPriority","AnimatorRetargetingMode":"https://developer.roblox.com/en-us/api-reference/enum/AnimatorRetargetingMode","AppShellActionType":"https://developer.roblox.com/en-us/api-reference/enum/AppShellActionType","AppShellFeature":"https://developer.roblox.com/en-us/api-reference/enum/AppShellFeature","AppUpdateStatus":"https://developer.roblox.com/en-us/api-reference/enum/AppUpdateStatus","ApplyStrokeMode":"https://developer.roblox.com/en-us/api-reference/enum/ApplyStrokeMode","AspectType":"https://developer.roblox.com/en-us/api-reference/enum/AspectType","AssetFetchStatus":"https://developer.roblox.com/en-us/api-reference/enum/AssetFetchStatus","AssetType":"https://developer.roblox.com/en-us/api-reference/enum/AssetType","AssetTypeVerification":"https://developer.roblox.com/en-us/api-reference/enum/AssetTypeVerification","AudioSubType":"https://developer.roblox.com/en-us/api-reference/enum/AudioSubType","AudioWindowSize":"https://developer.roblox.com/en-us/api-reference/enum/AudioWindowSize","AutoIndentRule":"https://developer.roblox.com/en-us/api-reference/enum/AutoIndentRule","AutomaticSize":"https://developer.roblox.com/en-us/api-reference/enum/AutomaticSize","AvatarAssetType":"https://developer.roblox.com/en-us/api-reference/enum/AvatarAssetType","AvatarChatServiceFeature":"https://developer.roblox.com/en-us/api-reference/enum/AvatarChatServiceFeature","AvatarContextMenuOption":"https://developer.roblox.com/en-us/api-reference/enum/AvatarContextMenuOption","AvatarItemType":"https://developer.roblox.com/en-us/api-reference/enum/AvatarItemType","AvatarJointUpgrade":"https://developer.roblox.com/en-us/api-reference/enum/AvatarJointUpgrade","AvatarPromptResult":"https://developer.roblox.com/en-us/api-reference/enum/AvatarPromptResult","AvatarThumbnailCustomizationType":"https://developer.roblox.com/en-us/api-reference/enum/AvatarThumbnailCustomizationType","AvatarUnificationMode":"https://developer.roblox.com/en-us/api-reference/enum/AvatarUnificationMode","Axis":"https://developer.roblox.com/en-us/api-reference/enum/Axis","BinType":"https://developer.roblox.com/en-us/api-reference/enum/BinType","BodyPart":"https://developer.roblox.com/en-us/api-reference/enum/BodyPart","BodyPartR15":"https://developer.roblox.com/en-us/api-reference/enum/BodyPartR15","BorderMode":"https://developer.roblox.com/en-us/api-reference/enum/BorderMode","BreakReason":"https://developer.roblox.com/en-us/api-reference/enum/BreakReason","BreakpointRemoveReason":"https://developer.roblox.com/en-us/api-reference/enum/BreakpointRemoveReason","BulkMoveMode":"https://developer.roblox.com/en-us/api-reference/enum/BulkMoveMode","BundleType":"https://developer.roblox.com/en-us/api-reference/enum/BundleType","Button":"https://developer.roblox.com/en-us/api-reference/enum/Button","ButtonStyle":"https://developer.roblox.com/en-us/api-reference/enum/ButtonStyle","CageType":"https://developer.roblox.com/en-us/api-reference/enum/CageType","CameraMode":"https://developer.roblox.com/en-us/api-reference/enum/CameraMode","CameraPanMode":"https://developer.roblox.com/en-us/api-reference/enum/CameraPanMode","CameraType":"https://developer.roblox.com/en-us/api-reference/enum/CameraType","CatalogCategoryFilter":"https://developer.roblox.com/en-us/api-reference/enum/CatalogCategoryFilter","CatalogSortAggregation":"https://developer.roblox.com/en-us/api-reference/enum/CatalogSortAggregation","CatalogSortType":"https://developer.roblox.com/en-us/api-reference/enum/CatalogSortType","CellBlock":"https://developer.roblox.com/en-us/api-reference/enum/CellBlock","CellMaterial":"https://developer.roblox.com/en-us/api-reference/enum/CellMaterial","CellOrientation":"https://developer.roblox.com/en-us/api-reference/enum/CellOrientation","CenterDialogType":"https://developer.roblox.com/en-us/api-reference/enum/CenterDialogType","ChatCallbackType":"https://developer.roblox.com/en-us/api-reference/enum/ChatCallbackType","ChatColor":"https://developer.roblox.com/en-us/api-reference/enum/ChatColor","ChatMode":"https://developer.roblox.com/en-us/api-reference/enum/ChatMode","ChatPrivacyMode":"https://developer.roblox.com/en-us/api-reference/enum/ChatPrivacyMode","ChatStyle":"https://developer.roblox.com/en-us/api-reference/enum/ChatStyle","ChatVersion":"https://developer.roblox.com/en-us/api-reference/enum/ChatVersion","ClientAnimatorThrottlingMode":"https://developer.roblox.com/en-us/api-reference/enum/ClientAnimatorThrottlingMode","CollaboratorStatus":"https://developer.roblox.com/en-us/api-reference/enum/CollaboratorStatus","CollisionFidelity":"https://developer.roblox.com/en-us/api-reference/enum/CollisionFidelity","CommandPermission":"https://developer.roblox.com/en-us/api-reference/enum/CommandPermission","CompileTarget":"https://developer.roblox.com/en-us/api-reference/enum/CompileTarget","CompletionItemKind":"https://developer.roblox.com/en-us/api-reference/enum/CompletionItemKind","CompletionItemTag":"https://developer.roblox.com/en-us/api-reference/enum/CompletionItemTag","CompletionTriggerKind":"https://developer.roblox.com/en-us/api-reference/enum/CompletionTriggerKind","ComputerCameraMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/ComputerCameraMovementMode","ComputerMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/ComputerMovementMode","ConnectionError":"https://developer.roblox.com/en-us/api-reference/enum/ConnectionError","ConnectionState":"https://developer.roblox.com/en-us/api-reference/enum/ConnectionState","ContextActionPriority":"https://developer.roblox.com/en-us/api-reference/enum/ContextActionPriority","ContextActionResult":"https://developer.roblox.com/en-us/api-reference/enum/ContextActionResult","ControlMode":"https://developer.roblox.com/en-us/api-reference/enum/ControlMode","CoreGuiType":"https://developer.roblox.com/en-us/api-reference/enum/CoreGuiType","CreateOutfitFailure":"https://developer.roblox.com/en-us/api-reference/enum/CreateOutfitFailure","CreatorType":"https://developer.roblox.com/en-us/api-reference/enum/CreatorType","CreatorTypeFilter":"https://developer.roblox.com/en-us/api-reference/enum/CreatorTypeFilter","CurrencyType":"https://developer.roblox.com/en-us/api-reference/enum/CurrencyType","CustomCameraMode":"https://developer.roblox.com/en-us/api-reference/enum/CustomCameraMode","DataStoreRequestType":"https://developer.roblox.com/en-us/api-reference/enum/DataStoreRequestType","DeathStyle":"https://developer.roblox.com/en-us/api-reference/enum/DeathStyle","DebuggerEndReason":"https://developer.roblox.com/en-us/api-reference/enum/DebuggerEndReason","DebuggerExceptionBreakMode":"https://developer.roblox.com/en-us/api-reference/enum/DebuggerExceptionBreakMode","DebuggerFrameType":"https://developer.roblox.com/en-us/api-reference/enum/DebuggerFrameType","DebuggerPauseReason":"https://developer.roblox.com/en-us/api-reference/enum/DebuggerPauseReason","DebuggerStatus":"https://developer.roblox.com/en-us/api-reference/enum/DebuggerStatus","DevCameraOcclusionMode":"https://developer.roblox.com/en-us/api-reference/enum/DevCameraOcclusionMode","DevComputerCameraMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/DevComputerCameraMovementMode","DevComputerMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/DevComputerMovementMode","DevTouchCameraMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/DevTouchCameraMovementMode","DevTouchMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/DevTouchMovementMode","DeveloperMemoryTag":"https://developer.roblox.com/en-us/api-reference/enum/DeveloperMemoryTag","DeviceType":"https://developer.roblox.com/en-us/api-reference/enum/DeviceType","DialogBehaviorType":"https://developer.roblox.com/en-us/api-reference/enum/DialogBehaviorType","DialogPurpose":"https://developer.roblox.com/en-us/api-reference/enum/DialogPurpose","DialogTone":"https://developer.roblox.com/en-us/api-reference/enum/DialogTone","DominantAxis":"https://developer.roblox.com/en-us/api-reference/enum/DominantAxis","DraftStatusCode":"https://developer.roblox.com/en-us/api-reference/enum/DraftStatusCode","DragDetectorDragStyle":"https://developer.roblox.com/en-us/api-reference/enum/DragDetectorDragStyle","DragDetectorResponseStyle":"https://developer.roblox.com/en-us/api-reference/enum/DragDetectorResponseStyle","DraggerCoordinateSpace":"https://developer.roblox.com/en-us/api-reference/enum/DraggerCoordinateSpace","DraggerMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/DraggerMovementMode","EasingDirection":"https://developer.roblox.com/en-us/api-reference/enum/EasingDirection","EasingStyle":"https://developer.roblox.com/en-us/api-reference/enum/EasingStyle","ElasticBehavior":"https://developer.roblox.com/en-us/api-reference/enum/ElasticBehavior","EnviromentalPhysicsThrottle":"https://developer.roblox.com/en-us/api-reference/enum/EnviromentalPhysicsThrottle","ExperienceAuthScope":"https://developer.roblox.com/en-us/api-reference/enum/ExperienceAuthScope","ExplosionType":"https://developer.roblox.com/en-us/api-reference/enum/ExplosionType","FacialAnimationStreamingState":"https://developer.roblox.com/en-us/api-reference/enum/FacialAnimationStreamingState","FieldOfViewMode":"https://developer.roblox.com/en-us/api-reference/enum/FieldOfViewMode","FillDirection":"https://developer.roblox.com/en-us/api-reference/enum/FillDirection","FilterResult":"https://developer.roblox.com/en-us/api-reference/enum/FilterResult","FinishRecordingOperation":"https://developer.roblox.com/en-us/api-reference/enum/FinishRecordingOperation","FluidForces":"https://developer.roblox.com/en-us/api-reference/enum/FluidForces","Font":"https://developer.roblox.com/en-us/api-reference/enum/Font","FontSize":"https://developer.roblox.com/en-us/api-reference/enum/FontSize","FontStyle":"https://developer.roblox.com/en-us/api-reference/enum/FontStyle","FontWeight":"https://developer.roblox.com/en-us/api-reference/enum/FontWeight","ForceLimitMode":"https://developer.roblox.com/en-us/api-reference/enum/ForceLimitMode","FormFactor":"https://developer.roblox.com/en-us/api-reference/enum/FormFactor","FrameStyle":"https://developer.roblox.com/en-us/api-reference/enum/FrameStyle","FramerateManagerMode":"https://developer.roblox.com/en-us/api-reference/enum/FramerateManagerMode","FriendRequestEvent":"https://developer.roblox.com/en-us/api-reference/enum/FriendRequestEvent","FriendStatus":"https://developer.roblox.com/en-us/api-reference/enum/FriendStatus","FunctionalTestResult":"https://developer.roblox.com/en-us/api-reference/enum/FunctionalTestResult","GameAvatarType":"https://developer.roblox.com/en-us/api-reference/enum/GameAvatarType","GearGenreSetting":"https://developer.roblox.com/en-us/api-reference/enum/GearGenreSetting","GearType":"https://developer.roblox.com/en-us/api-reference/enum/GearType","Genre":"https://developer.roblox.com/en-us/api-reference/enum/Genre","GraphicsMode":"https://developer.roblox.com/en-us/api-reference/enum/GraphicsMode","GuiState":"https://developer.roblox.com/en-us/api-reference/enum/GuiState","GuiType":"https://developer.roblox.com/en-us/api-reference/enum/GuiType","HandlesStyle":"https://developer.roblox.com/en-us/api-reference/enum/HandlesStyle","HighlightDepthMode":"https://developer.roblox.com/en-us/api-reference/enum/HighlightDepthMode","HorizontalAlignment":"https://developer.roblox.com/en-us/api-reference/enum/HorizontalAlignment","HoverAnimateSpeed":"https://developer.roblox.com/en-us/api-reference/enum/HoverAnimateSpeed","HttpCachePolicy":"https://developer.roblox.com/en-us/api-reference/enum/HttpCachePolicy","HttpContentType":"https://developer.roblox.com/en-us/api-reference/enum/HttpContentType","HttpError":"https://developer.roblox.com/en-us/api-reference/enum/HttpError","HttpRequestType":"https://developer.roblox.com/en-us/api-reference/enum/HttpRequestType","HumanoidCollisionType":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidCollisionType","HumanoidDisplayDistanceType":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidDisplayDistanceType","HumanoidHealthDisplayType":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidHealthDisplayType","HumanoidOnlySetCollisionsOnStateChange":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidOnlySetCollisionsOnStateChange","HumanoidRigType":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidRigType","HumanoidStateMachineMode":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidStateMachineMode","HumanoidStateType":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidStateType","IKCollisionsMode":"https://developer.roblox.com/en-us/api-reference/enum/IKCollisionsMode","IKControlConstraintSupport":"https://developer.roblox.com/en-us/api-reference/enum/IKControlConstraintSupport","IKControlType":"https://developer.roblox.com/en-us/api-reference/enum/IKControlType","IXPLoadingStatus":"https://developer.roblox.com/en-us/api-reference/enum/IXPLoadingStatus","InOut":"https://developer.roblox.com/en-us/api-reference/enum/InOut","InfoType":"https://developer.roblox.com/en-us/api-reference/enum/InfoType","InitialDockState":"https://developer.roblox.com/en-us/api-reference/enum/InitialDockState","InputType":"https://developer.roblox.com/en-us/api-reference/enum/InputType","InterpolationThrottlingMode":"https://developer.roblox.com/en-us/api-reference/enum/InterpolationThrottlingMode","JointCreationMode":"https://developer.roblox.com/en-us/api-reference/enum/JointCreationMode","KeyCode":"https://developer.roblox.com/en-us/api-reference/enum/KeyCode","KeyInterpolationMode":"https://developer.roblox.com/en-us/api-reference/enum/KeyInterpolationMode","KeywordFilterType":"https://developer.roblox.com/en-us/api-reference/enum/KeywordFilterType","Language":"https://developer.roblox.com/en-us/api-reference/enum/Language","LeftRight":"https://developer.roblox.com/en-us/api-reference/enum/LeftRight","Limb":"https://developer.roblox.com/en-us/api-reference/enum/Limb","LineJoinMode":"https://developer.roblox.com/en-us/api-reference/enum/LineJoinMode","ListDisplayMode":"https://developer.roblox.com/en-us/api-reference/enum/ListDisplayMode","ListenerType":"https://developer.roblox.com/en-us/api-reference/enum/ListenerType","LoadCharacterLayeredClothing":"https://developer.roblox.com/en-us/api-reference/enum/LoadCharacterLayeredClothing","LoadDynamicHeads":"https://developer.roblox.com/en-us/api-reference/enum/LoadDynamicHeads","MarkupKind":"https://developer.roblox.com/en-us/api-reference/enum/MarkupKind","Material":"https://developer.roblox.com/en-us/api-reference/enum/Material","MaterialPattern":"https://developer.roblox.com/en-us/api-reference/enum/MaterialPattern","MembershipType":"https://developer.roblox.com/en-us/api-reference/enum/MembershipType","MeshPartDetailLevel":"https://developer.roblox.com/en-us/api-reference/enum/MeshPartDetailLevel","MeshPartHeadsAndAccessories":"https://developer.roblox.com/en-us/api-reference/enum/MeshPartHeadsAndAccessories","MeshScaleUnit":"https://developer.roblox.com/en-us/api-reference/enum/MeshScaleUnit","MeshType":"https://developer.roblox.com/en-us/api-reference/enum/MeshType","MessageType":"https://developer.roblox.com/en-us/api-reference/enum/MessageType","ModelLevelOfDetail":"https://developer.roblox.com/en-us/api-reference/enum/ModelLevelOfDetail","ModelStreamingBehavior":"https://developer.roblox.com/en-us/api-reference/enum/ModelStreamingBehavior","ModelStreamingMode":"https://developer.roblox.com/en-us/api-reference/enum/ModelStreamingMode","ModifierKey":"https://developer.roblox.com/en-us/api-reference/enum/ModifierKey","MouseBehavior":"https://developer.roblox.com/en-us/api-reference/enum/MouseBehavior","MoveState":"https://developer.roblox.com/en-us/api-reference/enum/MoveState","MuteState":"https://developer.roblox.com/en-us/api-reference/enum/MuteState","NameOcclusion":"https://developer.roblox.com/en-us/api-reference/enum/NameOcclusion","NetworkOwnership":"https://developer.roblox.com/en-us/api-reference/enum/NetworkOwnership","NormalId":"https://developer.roblox.com/en-us/api-reference/enum/NormalId","OrientationAlignmentMode":"https://developer.roblox.com/en-us/api-reference/enum/OrientationAlignmentMode","OutfitSource":"https://developer.roblox.com/en-us/api-reference/enum/OutfitSource","OutfitType":"https://developer.roblox.com/en-us/api-reference/enum/OutfitType","OutputLayoutMode":"https://developer.roblox.com/en-us/api-reference/enum/OutputLayoutMode","OverrideMouseIconBehavior":"https://developer.roblox.com/en-us/api-reference/enum/OverrideMouseIconBehavior","PackagePermission":"https://developer.roblox.com/en-us/api-reference/enum/PackagePermission","PartType":"https://developer.roblox.com/en-us/api-reference/enum/PartType","ParticleEmitterShape":"https://developer.roblox.com/en-us/api-reference/enum/ParticleEmitterShape","ParticleEmitterShapeInOut":"https://developer.roblox.com/en-us/api-reference/enum/ParticleEmitterShapeInOut","ParticleEmitterShapeStyle":"https://developer.roblox.com/en-us/api-reference/enum/ParticleEmitterShapeStyle","ParticleFlipbookLayout":"https://developer.roblox.com/en-us/api-reference/enum/ParticleFlipbookLayout","ParticleFlipbookMode":"https://developer.roblox.com/en-us/api-reference/enum/ParticleFlipbookMode","ParticleFlipbookTextureCompatible":"https://developer.roblox.com/en-us/api-reference/enum/ParticleFlipbookTextureCompatible","ParticleOrientation":"https://developer.roblox.com/en-us/api-reference/enum/ParticleOrientation","PathStatus":"https://developer.roblox.com/en-us/api-reference/enum/PathStatus","PathWaypointAction":"https://developer.roblox.com/en-us/api-reference/enum/PathWaypointAction","PermissionLevelShown":"https://developer.roblox.com/en-us/api-reference/enum/PermissionLevelShown","PhysicsSimulationRate":"https://developer.roblox.com/en-us/api-reference/enum/PhysicsSimulationRate","PhysicsSteppingMethod":"https://developer.roblox.com/en-us/api-reference/enum/PhysicsSteppingMethod","PlaybackState":"https://developer.roblox.com/en-us/api-reference/enum/PlaybackState","PlayerActions":"https://developer.roblox.com/en-us/api-reference/enum/PlayerActions","PlayerChatType":"https://developer.roblox.com/en-us/api-reference/enum/PlayerChatType","PoseEasingDirection":"https://developer.roblox.com/en-us/api-reference/enum/PoseEasingDirection","PoseEasingStyle":"https://developer.roblox.com/en-us/api-reference/enum/PoseEasingStyle","PositionAlignmentMode":"https://developer.roblox.com/en-us/api-reference/enum/PositionAlignmentMode","PrivilegeType":"https://developer.roblox.com/en-us/api-reference/enum/PrivilegeType","ProductLocationRestriction":"https://developer.roblox.com/en-us/api-reference/enum/ProductLocationRestriction","ProductPurchaseDecision":"https://developer.roblox.com/en-us/api-reference/enum/ProductPurchaseDecision","PromptCreateAssetResult":"https://developer.roblox.com/en-us/api-reference/enum/PromptCreateAssetResult","PromptPublishAssetResult":"https://developer.roblox.com/en-us/api-reference/enum/PromptPublishAssetResult","PropertyStatus":"https://developer.roblox.com/en-us/api-reference/enum/PropertyStatus","ProximityPromptExclusivity":"https://developer.roblox.com/en-us/api-reference/enum/ProximityPromptExclusivity","ProximityPromptInputType":"https://developer.roblox.com/en-us/api-reference/enum/ProximityPromptInputType","ProximityPromptStyle":"https://developer.roblox.com/en-us/api-reference/enum/ProximityPromptStyle","QualityLevel":"https://developer.roblox.com/en-us/api-reference/enum/QualityLevel","R15CollisionType":"https://developer.roblox.com/en-us/api-reference/enum/R15CollisionType","RaycastFilterType":"https://developer.roblox.com/en-us/api-reference/enum/RaycastFilterType","RejectCharacterDeletions":"https://developer.roblox.com/en-us/api-reference/enum/RejectCharacterDeletions","RenderFidelity":"https://developer.roblox.com/en-us/api-reference/enum/RenderFidelity","RenderPriority":"https://developer.roblox.com/en-us/api-reference/enum/RenderPriority","RenderingTestComparisonMethod":"https://developer.roblox.com/en-us/api-reference/enum/RenderingTestComparisonMethod","ReplicateInstanceDestroySetting":"https://developer.roblox.com/en-us/api-reference/enum/ReplicateInstanceDestroySetting","ResamplerMode":"https://developer.roblox.com/en-us/api-reference/enum/ResamplerMode","ReservedHighlightId":"https://developer.roblox.com/en-us/api-reference/enum/ReservedHighlightId","RestPose":"https://developer.roblox.com/en-us/api-reference/enum/RestPose","ReturnKeyType":"https://developer.roblox.com/en-us/api-reference/enum/ReturnKeyType","ReverbType":"https://developer.roblox.com/en-us/api-reference/enum/ReverbType","RibbonTool":"https://developer.roblox.com/en-us/api-reference/enum/RibbonTool","RigScale":"https://developer.roblox.com/en-us/api-reference/enum/RigScale","RigType":"https://developer.roblox.com/en-us/api-reference/enum/RigType","RollOffMode":"https://developer.roblox.com/en-us/api-reference/enum/RollOffMode","RotationOrder":"https://developer.roblox.com/en-us/api-reference/enum/RotationOrder","RotationType":"https://developer.roblox.com/en-us/api-reference/enum/RotationType","RtlTextSupport":"https://developer.roblox.com/en-us/api-reference/enum/RtlTextSupport","RunContext":"https://developer.roblox.com/en-us/api-reference/enum/RunContext","RuntimeUndoBehavior":"https://developer.roblox.com/en-us/api-reference/enum/RuntimeUndoBehavior","SafeAreaCompatibility":"https://developer.roblox.com/en-us/api-reference/enum/SafeAreaCompatibility","SalesTypeFilter":"https://developer.roblox.com/en-us/api-reference/enum/SalesTypeFilter","SaveAvatarThumbnailCustomizationFailure":"https://developer.roblox.com/en-us/api-reference/enum/SaveAvatarThumbnailCustomizationFailure","SaveFilter":"https://developer.roblox.com/en-us/api-reference/enum/SaveFilter","SavedQualitySetting":"https://developer.roblox.com/en-us/api-reference/enum/SavedQualitySetting","ScaleType":"https://developer.roblox.com/en-us/api-reference/enum/ScaleType","ScopeCheckResult":"https://developer.roblox.com/en-us/api-reference/enum/ScopeCheckResult","ScreenInsets":"https://developer.roblox.com/en-us/api-reference/enum/ScreenInsets","ScreenOrientation":"https://developer.roblox.com/en-us/api-reference/enum/ScreenOrientation","ScrollBarInset":"https://developer.roblox.com/en-us/api-reference/enum/ScrollBarInset","ScrollingDirection":"https://developer.roblox.com/en-us/api-reference/enum/ScrollingDirection","SelectionBehavior":"https://developer.roblox.com/en-us/api-reference/enum/SelectionBehavior","SelectionRenderMode":"https://developer.roblox.com/en-us/api-reference/enum/SelectionRenderMode","SelfViewPosition":"https://developer.roblox.com/en-us/api-reference/enum/SelfViewPosition","SensorMode":"https://developer.roblox.com/en-us/api-reference/enum/SensorMode","SensorUpdateType":"https://developer.roblox.com/en-us/api-reference/enum/SensorUpdateType","ServerAudioBehavior":"https://developer.roblox.com/en-us/api-reference/enum/ServerAudioBehavior","ServiceVisibility":"https://developer.roblox.com/en-us/api-reference/enum/ServiceVisibility","Severity":"https://developer.roblox.com/en-us/api-reference/enum/Severity","SignalBehavior":"https://developer.roblox.com/en-us/api-reference/enum/SignalBehavior","SizeConstraint":"https://developer.roblox.com/en-us/api-reference/enum/SizeConstraint","SolverConvergenceVisualizationMode":"https://developer.roblox.com/en-us/api-reference/enum/SolverConvergenceVisualizationMode","SortDirection":"https://developer.roblox.com/en-us/api-reference/enum/SortDirection","SortOrder":"https://developer.roblox.com/en-us/api-reference/enum/SortOrder","SpecialKey":"https://developer.roblox.com/en-us/api-reference/enum/SpecialKey","StartCorner":"https://developer.roblox.com/en-us/api-reference/enum/StartCorner","StreamOutBehavior":"https://developer.roblox.com/en-us/api-reference/enum/StreamOutBehavior","StreamingIntegrityMode":"https://developer.roblox.com/en-us/api-reference/enum/StreamingIntegrityMode","StreamingPauseMode":"https://developer.roblox.com/en-us/api-reference/enum/StreamingPauseMode","StudioCloseMode":"https://developer.roblox.com/en-us/api-reference/enum/StudioCloseMode","StudioDataModelType":"https://developer.roblox.com/en-us/api-reference/enum/StudioDataModelType","StudioScriptEditorColorCategories":"https://developer.roblox.com/en-us/api-reference/enum/StudioScriptEditorColorCategories","StudioScriptEditorColorPresets":"https://developer.roblox.com/en-us/api-reference/enum/StudioScriptEditorColorPresets","StudioStyleGuideColor":"https://developer.roblox.com/en-us/api-reference/enum/StudioStyleGuideColor","StudioStyleGuideModifier":"https://developer.roblox.com/en-us/api-reference/enum/StudioStyleGuideModifier","Style":"https://developer.roblox.com/en-us/api-reference/enum/Style","SurfaceConstraint":"https://developer.roblox.com/en-us/api-reference/enum/SurfaceConstraint","SurfaceGuiShape":"https://developer.roblox.com/en-us/api-reference/enum/SurfaceGuiShape","SurfaceGuiSizingMode":"https://developer.roblox.com/en-us/api-reference/enum/SurfaceGuiSizingMode","SurfaceType":"https://developer.roblox.com/en-us/api-reference/enum/SurfaceType","SwipeDirection":"https://developer.roblox.com/en-us/api-reference/enum/SwipeDirection","TableMajorAxis":"https://developer.roblox.com/en-us/api-reference/enum/TableMajorAxis","Technology":"https://developer.roblox.com/en-us/api-reference/enum/Technology","TeleportMethod":"https://developer.roblox.com/en-us/api-reference/enum/TeleportMethod","TeleportResult":"https://developer.roblox.com/en-us/api-reference/enum/TeleportResult","TeleportState":"https://developer.roblox.com/en-us/api-reference/enum/TeleportState","TeleportType":"https://developer.roblox.com/en-us/api-reference/enum/TeleportType","TerrainAcquisitionMethod":"https://developer.roblox.com/en-us/api-reference/enum/TerrainAcquisitionMethod","TerrainFace":"https://developer.roblox.com/en-us/api-reference/enum/TerrainFace","TextChatMessageStatus":"https://developer.roblox.com/en-us/api-reference/enum/TextChatMessageStatus","TextDirection":"https://developer.roblox.com/en-us/api-reference/enum/TextDirection","TextFilterContext":"https://developer.roblox.com/en-us/api-reference/enum/TextFilterContext","TextInputType":"https://developer.roblox.com/en-us/api-reference/enum/TextInputType","TextTruncate":"https://developer.roblox.com/en-us/api-reference/enum/TextTruncate","TextXAlignment":"https://developer.roblox.com/en-us/api-reference/enum/TextXAlignment","TextYAlignment":"https://developer.roblox.com/en-us/api-reference/enum/TextYAlignment","TextureMode":"https://developer.roblox.com/en-us/api-reference/enum/TextureMode","TextureQueryType":"https://developer.roblox.com/en-us/api-reference/enum/TextureQueryType","ThreadPoolConfig":"https://developer.roblox.com/en-us/api-reference/enum/ThreadPoolConfig","ThrottlingPriority":"https://developer.roblox.com/en-us/api-reference/enum/ThrottlingPriority","ThumbnailSize":"https://developer.roblox.com/en-us/api-reference/enum/ThumbnailSize","ThumbnailType":"https://developer.roblox.com/en-us/api-reference/enum/ThumbnailType","TickCountSampleMethod":"https://developer.roblox.com/en-us/api-reference/enum/TickCountSampleMethod","TopBottom":"https://developer.roblox.com/en-us/api-reference/enum/TopBottom","TouchCameraMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/TouchCameraMovementMode","TouchMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/TouchMovementMode","TrackerError":"https://developer.roblox.com/en-us/api-reference/enum/TrackerError","TrackerExtrapolationFlagMode":"https://developer.roblox.com/en-us/api-reference/enum/TrackerExtrapolationFlagMode","TrackerLodFlagMode":"https://developer.roblox.com/en-us/api-reference/enum/TrackerLodFlagMode","TrackerLodValueMode":"https://developer.roblox.com/en-us/api-reference/enum/TrackerLodValueMode","TrackerMode":"https://developer.roblox.com/en-us/api-reference/enum/TrackerMode","TrackerPromptEvent":"https://developer.roblox.com/en-us/api-reference/enum/TrackerPromptEvent","TriStateBoolean":"https://developer.roblox.com/en-us/api-reference/enum/TriStateBoolean","TweenStatus":"https://developer.roblox.com/en-us/api-reference/enum/TweenStatus","UITheme":"https://developer.roblox.com/en-us/api-reference/enum/UITheme","UiMessageType":"https://developer.roblox.com/en-us/api-reference/enum/UiMessageType","UsageContext":"https://developer.roblox.com/en-us/api-reference/enum/UsageContext","UserCFrame":"https://developer.roblox.com/en-us/api-reference/enum/UserCFrame","UserInputState":"https://developer.roblox.com/en-us/api-reference/enum/UserInputState","UserInputType":"https://developer.roblox.com/en-us/api-reference/enum/UserInputType","VRSafetyBubbleMode":"https://developer.roblox.com/en-us/api-reference/enum/VRSafetyBubbleMode","VRScaling":"https://developer.roblox.com/en-us/api-reference/enum/VRScaling","VRSessionState":"https://developer.roblox.com/en-us/api-reference/enum/VRSessionState","VRTouchpad":"https://developer.roblox.com/en-us/api-reference/enum/VRTouchpad","VRTouchpadMode":"https://developer.roblox.com/en-us/api-reference/enum/VRTouchpadMode","VelocityConstraintMode":"https://developer.roblox.com/en-us/api-reference/enum/VelocityConstraintMode","VerticalAlignment":"https://developer.roblox.com/en-us/api-reference/enum/VerticalAlignment","VerticalScrollBarPosition":"https://developer.roblox.com/en-us/api-reference/enum/VerticalScrollBarPosition","VibrationMotor":"https://developer.roblox.com/en-us/api-reference/enum/VibrationMotor","ViewMode":"https://developer.roblox.com/en-us/api-reference/enum/ViewMode","VirtualCursorMode":"https://developer.roblox.com/en-us/api-reference/enum/VirtualCursorMode","VirtualInputMode":"https://developer.roblox.com/en-us/api-reference/enum/VirtualInputMode","VoiceChatState":"https://developer.roblox.com/en-us/api-reference/enum/VoiceChatState","VolumetricAudio":"https://developer.roblox.com/en-us/api-reference/enum/VolumetricAudio","WaterDirection":"https://developer.roblox.com/en-us/api-reference/enum/WaterDirection","WaterForce":"https://developer.roblox.com/en-us/api-reference/enum/WaterForce","WeldConstraintPreserve":"https://developer.roblox.com/en-us/api-reference/enum/WeldConstraintPreserve","WrapLayerAutoSkin":"https://developer.roblox.com/en-us/api-reference/enum/WrapLayerAutoSkin","WrapLayerDebugMode":"https://developer.roblox.com/en-us/api-reference/enum/WrapLayerDebugMode","WrapTargetDebugMode":"https://developer.roblox.com/en-us/api-reference/enum/WrapTargetDebugMode","ZIndexBehavior":"https://developer.roblox.com/en-us/api-reference/enum/ZIndexBehavior","Axes":"https://developer.roblox.com/en-us/api-reference/datatype/Axes","BrickColor":"https://developer.roblox.com/en-us/api-reference/datatype/BrickColor","CFrame":"https://developer.roblox.com/en-us/api-reference/datatype/CFrame","Color3":"https://developer.roblox.com/en-us/api-reference/datatype/Color3","ColorSequence":"https://developer.roblox.com/en-us/api-reference/datatype/ColorSequence","ColorSequenceKeypoint":"https://developer.roblox.com/en-us/api-reference/datatype/ColorSequenceKeypoint","DockWidgetPluginGuiInfo":"https://developer.roblox.com/en-us/api-reference/datatype/DockWidgetPluginGuiInfo","Enum":"https://developer.roblox.com/en-us/api-reference/datatype/Enum","EnumItem":"https://developer.roblox.com/en-us/api-reference/datatype/EnumItem","Enums":"https://developer.roblox.com/en-us/api-reference/datatype/Enums","Faces":"https://developer.roblox.com/en-us/api-reference/datatype/Faces","NumberRange":"https://developer.roblox.com/en-us/api-reference/datatype/NumberRange","NumberSequence":"https://developer.roblox.com/en-us/api-reference/datatype/NumberSequence","NumberSequenceKeypoint":"https://developer.roblox.com/en-us/api-reference/datatype/NumberSequenceKeypoint","PathWaypoint":"https://developer.roblox.com/en-us/api-reference/datatype/PathWaypoint","PhysicalProperties":"https://developer.roblox.com/en-us/api-reference/datatype/PhysicalProperties","Random":"https://developer.roblox.com/en-us/api-reference/datatype/Random","Ray":"https://developer.roblox.com/en-us/api-reference/datatype/Ray","RBXScriptConnection":"https://developer.roblox.com/en-us/api-reference/datatype/RBXScriptConnection","RBXScriptSignal":"https://developer.roblox.com/en-us/api-reference/datatype/RBXScriptSignal","Rect":"https://developer.roblox.com/en-us/api-reference/datatype/Rect","Region3":"https://developer.roblox.com/en-us/api-reference/datatype/Region3","Region3int16":"https://developer.roblox.com/en-us/api-reference/datatype/Region3int16","TweenInfo":"https://developer.roblox.com/en-us/api-reference/datatype/TweenInfo","UDim":"https://developer.roblox.com/en-us/api-reference/datatype/UDim","UDim2":"https://developer.roblox.com/en-us/api-reference/datatype/UDim2","Vector2":"https://developer.roblox.com/en-us/api-reference/datatype/Vector2","Vector2int16":"https://developer.roblox.com/en-us/api-reference/datatype/Vector2int16","Vector3":"https://developer.roblox.com/en-us/api-reference/datatype/Vector3","Vector3int16":"https://developer.roblox.com/en-us/api-reference/datatype/Vector3int16","Future":"/Luau-Future/api/Future","Result":"/Luau-Future/api/Result"}')}}]); \ No newline at end of file diff --git a/assets/js/759b88ee.e6332051.js b/assets/js/759b88ee.e6332051.js deleted file mode 100644 index f722be1..0000000 --- a/assets/js/759b88ee.e6332051.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[914],{85492:e=>{e.exports=JSON.parse('{"Instance":"https://developer.roblox.com/en-us/api-reference/datatype/Instance","Accoutrement":"https://developer.roblox.com/en-us/api-reference/class/Accoutrement","Accessory":"https://developer.roblox.com/en-us/api-reference/class/Accessory","Hat":"https://developer.roblox.com/en-us/api-reference/class/Hat","AdPortal":"https://developer.roblox.com/en-us/api-reference/class/AdPortal","AdService":"https://developer.roblox.com/en-us/api-reference/class/AdService","AdvancedDragger":"https://developer.roblox.com/en-us/api-reference/class/AdvancedDragger","AnalyticsService":"https://developer.roblox.com/en-us/api-reference/class/AnalyticsService","Animation":"https://developer.roblox.com/en-us/api-reference/class/Animation","AnimationClip":"https://developer.roblox.com/en-us/api-reference/class/AnimationClip","CurveAnimation":"https://developer.roblox.com/en-us/api-reference/class/CurveAnimation","KeyframeSequence":"https://developer.roblox.com/en-us/api-reference/class/KeyframeSequence","AnimationClipProvider":"https://developer.roblox.com/en-us/api-reference/class/AnimationClipProvider","AnimationController":"https://developer.roblox.com/en-us/api-reference/class/AnimationController","AnimationFromVideoCreatorService":"https://developer.roblox.com/en-us/api-reference/class/AnimationFromVideoCreatorService","AnimationFromVideoCreatorStudioService":"https://developer.roblox.com/en-us/api-reference/class/AnimationFromVideoCreatorStudioService","AnimationRigData":"https://developer.roblox.com/en-us/api-reference/class/AnimationRigData","AnimationStreamTrack":"https://developer.roblox.com/en-us/api-reference/class/AnimationStreamTrack","AnimationTrack":"https://developer.roblox.com/en-us/api-reference/class/AnimationTrack","Animator":"https://developer.roblox.com/en-us/api-reference/class/Animator","AppUpdateService":"https://developer.roblox.com/en-us/api-reference/class/AppUpdateService","AssetCounterService":"https://developer.roblox.com/en-us/api-reference/class/AssetCounterService","AssetDeliveryProxy":"https://developer.roblox.com/en-us/api-reference/class/AssetDeliveryProxy","AssetImportService":"https://developer.roblox.com/en-us/api-reference/class/AssetImportService","AssetImportSession":"https://developer.roblox.com/en-us/api-reference/class/AssetImportSession","AssetManagerService":"https://developer.roblox.com/en-us/api-reference/class/AssetManagerService","AssetPatchSettings":"https://developer.roblox.com/en-us/api-reference/class/AssetPatchSettings","AssetService":"https://developer.roblox.com/en-us/api-reference/class/AssetService","Atmosphere":"https://developer.roblox.com/en-us/api-reference/class/Atmosphere","Attachment":"https://developer.roblox.com/en-us/api-reference/class/Attachment","Bone":"https://developer.roblox.com/en-us/api-reference/class/Bone","AudioSearchParams":"https://developer.roblox.com/en-us/api-reference/class/AudioSearchParams","AvatarChatService":"https://developer.roblox.com/en-us/api-reference/class/AvatarChatService","AvatarEditorService":"https://developer.roblox.com/en-us/api-reference/class/AvatarEditorService","AvatarImportService":"https://developer.roblox.com/en-us/api-reference/class/AvatarImportService","Backpack":"https://developer.roblox.com/en-us/api-reference/class/Backpack","BadgeService":"https://developer.roblox.com/en-us/api-reference/class/BadgeService","BaseImportData":"https://developer.roblox.com/en-us/api-reference/class/BaseImportData","AnimationImportData":"https://developer.roblox.com/en-us/api-reference/class/AnimationImportData","FacsImportData":"https://developer.roblox.com/en-us/api-reference/class/FacsImportData","GroupImportData":"https://developer.roblox.com/en-us/api-reference/class/GroupImportData","JointImportData":"https://developer.roblox.com/en-us/api-reference/class/JointImportData","MaterialImportData":"https://developer.roblox.com/en-us/api-reference/class/MaterialImportData","MeshImportData":"https://developer.roblox.com/en-us/api-reference/class/MeshImportData","RootImportData":"https://developer.roblox.com/en-us/api-reference/class/RootImportData","BasePlayerGui":"https://developer.roblox.com/en-us/api-reference/class/BasePlayerGui","CoreGui":"https://developer.roblox.com/en-us/api-reference/class/CoreGui","PlayerGui":"https://developer.roblox.com/en-us/api-reference/class/PlayerGui","StarterGui":"https://developer.roblox.com/en-us/api-reference/class/StarterGui","BaseWrap":"https://developer.roblox.com/en-us/api-reference/class/BaseWrap","WrapLayer":"https://developer.roblox.com/en-us/api-reference/class/WrapLayer","WrapTarget":"https://developer.roblox.com/en-us/api-reference/class/WrapTarget","Beam":"https://developer.roblox.com/en-us/api-reference/class/Beam","BindableEvent":"https://developer.roblox.com/en-us/api-reference/class/BindableEvent","BindableFunction":"https://developer.roblox.com/en-us/api-reference/class/BindableFunction","BodyMover":"https://developer.roblox.com/en-us/api-reference/class/BodyMover","BodyAngularVelocity":"https://developer.roblox.com/en-us/api-reference/class/BodyAngularVelocity","BodyForce":"https://developer.roblox.com/en-us/api-reference/class/BodyForce","BodyGyro":"https://developer.roblox.com/en-us/api-reference/class/BodyGyro","BodyPosition":"https://developer.roblox.com/en-us/api-reference/class/BodyPosition","BodyThrust":"https://developer.roblox.com/en-us/api-reference/class/BodyThrust","BodyVelocity":"https://developer.roblox.com/en-us/api-reference/class/BodyVelocity","RocketPropulsion":"https://developer.roblox.com/en-us/api-reference/class/RocketPropulsion","Breakpoint":"https://developer.roblox.com/en-us/api-reference/class/Breakpoint","BrowserService":"https://developer.roblox.com/en-us/api-reference/class/BrowserService","BulkImportService":"https://developer.roblox.com/en-us/api-reference/class/BulkImportService","CacheableContentProvider":"https://developer.roblox.com/en-us/api-reference/class/CacheableContentProvider","HSRDataContentProvider":"https://developer.roblox.com/en-us/api-reference/class/HSRDataContentProvider","MeshContentProvider":"https://developer.roblox.com/en-us/api-reference/class/MeshContentProvider","SolidModelContentProvider":"https://developer.roblox.com/en-us/api-reference/class/SolidModelContentProvider","CalloutService":"https://developer.roblox.com/en-us/api-reference/class/CalloutService","Camera":"https://developer.roblox.com/en-us/api-reference/class/Camera","CaptureService":"https://developer.roblox.com/en-us/api-reference/class/CaptureService","ChangeHistoryService":"https://developer.roblox.com/en-us/api-reference/class/ChangeHistoryService","CharacterAppearance":"https://developer.roblox.com/en-us/api-reference/class/CharacterAppearance","BodyColors":"https://developer.roblox.com/en-us/api-reference/class/BodyColors","CharacterMesh":"https://developer.roblox.com/en-us/api-reference/class/CharacterMesh","Clothing":"https://developer.roblox.com/en-us/api-reference/class/Clothing","Pants":"https://developer.roblox.com/en-us/api-reference/class/Pants","Shirt":"https://developer.roblox.com/en-us/api-reference/class/Shirt","ShirtGraphic":"https://developer.roblox.com/en-us/api-reference/class/ShirtGraphic","Skin":"https://developer.roblox.com/en-us/api-reference/class/Skin","Chat":"https://developer.roblox.com/en-us/api-reference/class/Chat","ClickDetector":"https://developer.roblox.com/en-us/api-reference/class/ClickDetector","DragDetector":"https://developer.roblox.com/en-us/api-reference/class/DragDetector","Clouds":"https://developer.roblox.com/en-us/api-reference/class/Clouds","ClusterPacketCache":"https://developer.roblox.com/en-us/api-reference/class/ClusterPacketCache","CollectionService":"https://developer.roblox.com/en-us/api-reference/class/CollectionService","CommandInstance":"https://developer.roblox.com/en-us/api-reference/class/CommandInstance","CommandService":"https://developer.roblox.com/en-us/api-reference/class/CommandService","Configuration":"https://developer.roblox.com/en-us/api-reference/class/Configuration","ConfigureServerService":"https://developer.roblox.com/en-us/api-reference/class/ConfigureServerService","Constraint":"https://developer.roblox.com/en-us/api-reference/class/Constraint","AlignOrientation":"https://developer.roblox.com/en-us/api-reference/class/AlignOrientation","AlignPosition":"https://developer.roblox.com/en-us/api-reference/class/AlignPosition","AngularVelocity":"https://developer.roblox.com/en-us/api-reference/class/AngularVelocity","AnimationConstraint":"https://developer.roblox.com/en-us/api-reference/class/AnimationConstraint","BallSocketConstraint":"https://developer.roblox.com/en-us/api-reference/class/BallSocketConstraint","HingeConstraint":"https://developer.roblox.com/en-us/api-reference/class/HingeConstraint","LineForce":"https://developer.roblox.com/en-us/api-reference/class/LineForce","LinearVelocity":"https://developer.roblox.com/en-us/api-reference/class/LinearVelocity","PlaneConstraint":"https://developer.roblox.com/en-us/api-reference/class/PlaneConstraint","Plane":"https://developer.roblox.com/en-us/api-reference/class/Plane","RigidConstraint":"https://developer.roblox.com/en-us/api-reference/class/RigidConstraint","RodConstraint":"https://developer.roblox.com/en-us/api-reference/class/RodConstraint","RopeConstraint":"https://developer.roblox.com/en-us/api-reference/class/RopeConstraint","SlidingBallConstraint":"https://developer.roblox.com/en-us/api-reference/class/SlidingBallConstraint","CylindricalConstraint":"https://developer.roblox.com/en-us/api-reference/class/CylindricalConstraint","PrismaticConstraint":"https://developer.roblox.com/en-us/api-reference/class/PrismaticConstraint","SpringConstraint":"https://developer.roblox.com/en-us/api-reference/class/SpringConstraint","Torque":"https://developer.roblox.com/en-us/api-reference/class/Torque","TorsionSpringConstraint":"https://developer.roblox.com/en-us/api-reference/class/TorsionSpringConstraint","UniversalConstraint":"https://developer.roblox.com/en-us/api-reference/class/UniversalConstraint","VectorForce":"https://developer.roblox.com/en-us/api-reference/class/VectorForce","ContentProvider":"https://developer.roblox.com/en-us/api-reference/class/ContentProvider","ContextActionService":"https://developer.roblox.com/en-us/api-reference/class/ContextActionService","Controller":"https://developer.roblox.com/en-us/api-reference/class/Controller","HumanoidController":"https://developer.roblox.com/en-us/api-reference/class/HumanoidController","SkateboardController":"https://developer.roblox.com/en-us/api-reference/class/SkateboardController","VehicleController":"https://developer.roblox.com/en-us/api-reference/class/VehicleController","ControllerBase":"https://developer.roblox.com/en-us/api-reference/class/ControllerBase","AirController":"https://developer.roblox.com/en-us/api-reference/class/AirController","ClimbController":"https://developer.roblox.com/en-us/api-reference/class/ClimbController","GroundController":"https://developer.roblox.com/en-us/api-reference/class/GroundController","SwimController":"https://developer.roblox.com/en-us/api-reference/class/SwimController","ControllerManager":"https://developer.roblox.com/en-us/api-reference/class/ControllerManager","ControllerService":"https://developer.roblox.com/en-us/api-reference/class/ControllerService","CookiesService":"https://developer.roblox.com/en-us/api-reference/class/CookiesService","CorePackages":"https://developer.roblox.com/en-us/api-reference/class/CorePackages","CoreScriptDebuggingManagerHelper":"https://developer.roblox.com/en-us/api-reference/class/CoreScriptDebuggingManagerHelper","CoreScriptSyncService":"https://developer.roblox.com/en-us/api-reference/class/CoreScriptSyncService","CrossDMScriptChangeListener":"https://developer.roblox.com/en-us/api-reference/class/CrossDMScriptChangeListener","CustomEvent":"https://developer.roblox.com/en-us/api-reference/class/CustomEvent","CustomEventReceiver":"https://developer.roblox.com/en-us/api-reference/class/CustomEventReceiver","DataModelMesh":"https://developer.roblox.com/en-us/api-reference/class/DataModelMesh","BevelMesh":"https://developer.roblox.com/en-us/api-reference/class/BevelMesh","BlockMesh":"https://developer.roblox.com/en-us/api-reference/class/BlockMesh","CylinderMesh":"https://developer.roblox.com/en-us/api-reference/class/CylinderMesh","FileMesh":"https://developer.roblox.com/en-us/api-reference/class/FileMesh","SpecialMesh":"https://developer.roblox.com/en-us/api-reference/class/SpecialMesh","DataModelPatchService":"https://developer.roblox.com/en-us/api-reference/class/DataModelPatchService","DataModelSession":"https://developer.roblox.com/en-us/api-reference/class/DataModelSession","DataStoreIncrementOptions":"https://developer.roblox.com/en-us/api-reference/class/DataStoreIncrementOptions","DataStoreInfo":"https://developer.roblox.com/en-us/api-reference/class/DataStoreInfo","DataStoreKey":"https://developer.roblox.com/en-us/api-reference/class/DataStoreKey","DataStoreKeyInfo":"https://developer.roblox.com/en-us/api-reference/class/DataStoreKeyInfo","DataStoreObjectVersionInfo":"https://developer.roblox.com/en-us/api-reference/class/DataStoreObjectVersionInfo","DataStoreOptions":"https://developer.roblox.com/en-us/api-reference/class/DataStoreOptions","DataStoreService":"https://developer.roblox.com/en-us/api-reference/class/DataStoreService","DataStoreSetOptions":"https://developer.roblox.com/en-us/api-reference/class/DataStoreSetOptions","Debris":"https://developer.roblox.com/en-us/api-reference/class/Debris","DebugSettings":"https://developer.roblox.com/en-us/api-reference/class/DebugSettings","DebuggablePluginWatcher":"https://developer.roblox.com/en-us/api-reference/class/DebuggablePluginWatcher","DebuggerBreakpoint":"https://developer.roblox.com/en-us/api-reference/class/DebuggerBreakpoint","DebuggerConnection":"https://developer.roblox.com/en-us/api-reference/class/DebuggerConnection","LocalDebuggerConnection":"https://developer.roblox.com/en-us/api-reference/class/LocalDebuggerConnection","DebuggerConnectionManager":"https://developer.roblox.com/en-us/api-reference/class/DebuggerConnectionManager","DebuggerLuaResponse":"https://developer.roblox.com/en-us/api-reference/class/DebuggerLuaResponse","DebuggerManager":"https://developer.roblox.com/en-us/api-reference/class/DebuggerManager","DebuggerUIService":"https://developer.roblox.com/en-us/api-reference/class/DebuggerUIService","DebuggerVariable":"https://developer.roblox.com/en-us/api-reference/class/DebuggerVariable","DebuggerWatch":"https://developer.roblox.com/en-us/api-reference/class/DebuggerWatch","DeviceIdService":"https://developer.roblox.com/en-us/api-reference/class/DeviceIdService","Dialog":"https://developer.roblox.com/en-us/api-reference/class/Dialog","DialogChoice":"https://developer.roblox.com/en-us/api-reference/class/DialogChoice","DraftsService":"https://developer.roblox.com/en-us/api-reference/class/DraftsService","Dragger":"https://developer.roblox.com/en-us/api-reference/class/Dragger","DraggerService":"https://developer.roblox.com/en-us/api-reference/class/DraggerService","EulerRotationCurve":"https://developer.roblox.com/en-us/api-reference/class/EulerRotationCurve","EventIngestService":"https://developer.roblox.com/en-us/api-reference/class/EventIngestService","ExperienceAuthService":"https://developer.roblox.com/en-us/api-reference/class/ExperienceAuthService","ExperienceInviteOptions":"https://developer.roblox.com/en-us/api-reference/class/ExperienceInviteOptions","Explosion":"https://developer.roblox.com/en-us/api-reference/class/Explosion","FaceAnimatorService":"https://developer.roblox.com/en-us/api-reference/class/FaceAnimatorService","FaceControls":"https://developer.roblox.com/en-us/api-reference/class/FaceControls","FaceInstance":"https://developer.roblox.com/en-us/api-reference/class/FaceInstance","Decal":"https://developer.roblox.com/en-us/api-reference/class/Decal","Texture":"https://developer.roblox.com/en-us/api-reference/class/Texture","FacialAnimationRecordingService":"https://developer.roblox.com/en-us/api-reference/class/FacialAnimationRecordingService","FacialAnimationStreamingServiceStats":"https://developer.roblox.com/en-us/api-reference/class/FacialAnimationStreamingServiceStats","FacialAnimationStreamingServiceV2":"https://developer.roblox.com/en-us/api-reference/class/FacialAnimationStreamingServiceV2","FacialAnimationStreamingSubsessionStats":"https://developer.roblox.com/en-us/api-reference/class/FacialAnimationStreamingSubsessionStats","Feature":"https://developer.roblox.com/en-us/api-reference/class/Feature","Hole":"https://developer.roblox.com/en-us/api-reference/class/Hole","MotorFeature":"https://developer.roblox.com/en-us/api-reference/class/MotorFeature","File":"https://developer.roblox.com/en-us/api-reference/class/File","Fire":"https://developer.roblox.com/en-us/api-reference/class/Fire","FlagStandService":"https://developer.roblox.com/en-us/api-reference/class/FlagStandService","FloatCurve":"https://developer.roblox.com/en-us/api-reference/class/FloatCurve","FlyweightService":"https://developer.roblox.com/en-us/api-reference/class/FlyweightService","CSGDictionaryService":"https://developer.roblox.com/en-us/api-reference/class/CSGDictionaryService","NonReplicatedCSGDictionaryService":"https://developer.roblox.com/en-us/api-reference/class/NonReplicatedCSGDictionaryService","Folder":"https://developer.roblox.com/en-us/api-reference/class/Folder","ForceField":"https://developer.roblox.com/en-us/api-reference/class/ForceField","FriendService":"https://developer.roblox.com/en-us/api-reference/class/FriendService","FunctionalTest":"https://developer.roblox.com/en-us/api-reference/class/FunctionalTest","GamePassService":"https://developer.roblox.com/en-us/api-reference/class/GamePassService","GameSettings":"https://developer.roblox.com/en-us/api-reference/class/GameSettings","GamepadService":"https://developer.roblox.com/en-us/api-reference/class/GamepadService","Geometry":"https://developer.roblox.com/en-us/api-reference/class/Geometry","GetTextBoundsParams":"https://developer.roblox.com/en-us/api-reference/class/GetTextBoundsParams","GlobalDataStore":"https://developer.roblox.com/en-us/api-reference/class/GlobalDataStore","DataStore":"https://developer.roblox.com/en-us/api-reference/class/DataStore","OrderedDataStore":"https://developer.roblox.com/en-us/api-reference/class/OrderedDataStore","GoogleAnalyticsConfiguration":"https://developer.roblox.com/en-us/api-reference/class/GoogleAnalyticsConfiguration","GroupService":"https://developer.roblox.com/en-us/api-reference/class/GroupService","GuiBase":"https://developer.roblox.com/en-us/api-reference/class/GuiBase","GuiBase2d":"https://developer.roblox.com/en-us/api-reference/class/GuiBase2d","GuiObject":"https://developer.roblox.com/en-us/api-reference/class/GuiObject","CanvasGroup":"https://developer.roblox.com/en-us/api-reference/class/CanvasGroup","Frame":"https://developer.roblox.com/en-us/api-reference/class/Frame","GuiButton":"https://developer.roblox.com/en-us/api-reference/class/GuiButton","ImageButton":"https://developer.roblox.com/en-us/api-reference/class/ImageButton","TextButton":"https://developer.roblox.com/en-us/api-reference/class/TextButton","GuiLabel":"https://developer.roblox.com/en-us/api-reference/class/GuiLabel","ImageLabel":"https://developer.roblox.com/en-us/api-reference/class/ImageLabel","TextLabel":"https://developer.roblox.com/en-us/api-reference/class/TextLabel","ScrollingFrame":"https://developer.roblox.com/en-us/api-reference/class/ScrollingFrame","TextBox":"https://developer.roblox.com/en-us/api-reference/class/TextBox","VideoFrame":"https://developer.roblox.com/en-us/api-reference/class/VideoFrame","ViewportFrame":"https://developer.roblox.com/en-us/api-reference/class/ViewportFrame","LayerCollector":"https://developer.roblox.com/en-us/api-reference/class/LayerCollector","BillboardGui":"https://developer.roblox.com/en-us/api-reference/class/BillboardGui","PluginGui":"https://developer.roblox.com/en-us/api-reference/class/PluginGui","DockWidgetPluginGui":"https://developer.roblox.com/en-us/api-reference/class/DockWidgetPluginGui","QWidgetPluginGui":"https://developer.roblox.com/en-us/api-reference/class/QWidgetPluginGui","ScreenGui":"https://developer.roblox.com/en-us/api-reference/class/ScreenGui","GuiMain":"https://developer.roblox.com/en-us/api-reference/class/GuiMain","SurfaceGuiBase":"https://developer.roblox.com/en-us/api-reference/class/SurfaceGuiBase","AdGui":"https://developer.roblox.com/en-us/api-reference/class/AdGui","SurfaceGui":"https://developer.roblox.com/en-us/api-reference/class/SurfaceGui","TextureGuiExperimental":"https://developer.roblox.com/en-us/api-reference/class/TextureGuiExperimental","GuiBase3d":"https://developer.roblox.com/en-us/api-reference/class/GuiBase3d","FloorWire":"https://developer.roblox.com/en-us/api-reference/class/FloorWire","InstanceAdornment":"https://developer.roblox.com/en-us/api-reference/class/InstanceAdornment","SelectionBox":"https://developer.roblox.com/en-us/api-reference/class/SelectionBox","PVAdornment":"https://developer.roblox.com/en-us/api-reference/class/PVAdornment","HandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/HandleAdornment","BoxHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/BoxHandleAdornment","ConeHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/ConeHandleAdornment","CylinderHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/CylinderHandleAdornment","ImageHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/ImageHandleAdornment","LineHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/LineHandleAdornment","SphereHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/SphereHandleAdornment","WireframeHandleAdornment":"https://developer.roblox.com/en-us/api-reference/class/WireframeHandleAdornment","ParabolaAdornment":"https://developer.roblox.com/en-us/api-reference/class/ParabolaAdornment","SelectionSphere":"https://developer.roblox.com/en-us/api-reference/class/SelectionSphere","PartAdornment":"https://developer.roblox.com/en-us/api-reference/class/PartAdornment","HandlesBase":"https://developer.roblox.com/en-us/api-reference/class/HandlesBase","ArcHandles":"https://developer.roblox.com/en-us/api-reference/class/ArcHandles","Handles":"https://developer.roblox.com/en-us/api-reference/class/Handles","SurfaceSelection":"https://developer.roblox.com/en-us/api-reference/class/SurfaceSelection","SelectionLasso":"https://developer.roblox.com/en-us/api-reference/class/SelectionLasso","SelectionPartLasso":"https://developer.roblox.com/en-us/api-reference/class/SelectionPartLasso","SelectionPointLasso":"https://developer.roblox.com/en-us/api-reference/class/SelectionPointLasso","GuiService":"https://developer.roblox.com/en-us/api-reference/class/GuiService","GuidRegistryService":"https://developer.roblox.com/en-us/api-reference/class/GuidRegistryService","HapticService":"https://developer.roblox.com/en-us/api-reference/class/HapticService","HeightmapImporterService":"https://developer.roblox.com/en-us/api-reference/class/HeightmapImporterService","HiddenSurfaceRemovalAsset":"https://developer.roblox.com/en-us/api-reference/class/HiddenSurfaceRemovalAsset","Highlight":"https://developer.roblox.com/en-us/api-reference/class/Highlight","Hopper":"https://developer.roblox.com/en-us/api-reference/class/Hopper","HttpRbxApiService":"https://developer.roblox.com/en-us/api-reference/class/HttpRbxApiService","HttpRequest":"https://developer.roblox.com/en-us/api-reference/class/HttpRequest","HttpService":"https://developer.roblox.com/en-us/api-reference/class/HttpService","Humanoid":"https://developer.roblox.com/en-us/api-reference/class/Humanoid","HumanoidDescription":"https://developer.roblox.com/en-us/api-reference/class/HumanoidDescription","IKControl":"https://developer.roblox.com/en-us/api-reference/class/IKControl","ILegacyStudioBridge":"https://developer.roblox.com/en-us/api-reference/class/ILegacyStudioBridge","LegacyStudioBridge":"https://developer.roblox.com/en-us/api-reference/class/LegacyStudioBridge","IXPService":"https://developer.roblox.com/en-us/api-reference/class/IXPService","ImageDataExperimental":"https://developer.roblox.com/en-us/api-reference/class/ImageDataExperimental","IncrementalPatchBuilder":"https://developer.roblox.com/en-us/api-reference/class/IncrementalPatchBuilder","InputObject":"https://developer.roblox.com/en-us/api-reference/class/InputObject","InsertService":"https://developer.roblox.com/en-us/api-reference/class/InsertService","JointInstance":"https://developer.roblox.com/en-us/api-reference/class/JointInstance","DynamicRotate":"https://developer.roblox.com/en-us/api-reference/class/DynamicRotate","RotateP":"https://developer.roblox.com/en-us/api-reference/class/RotateP","RotateV":"https://developer.roblox.com/en-us/api-reference/class/RotateV","Glue":"https://developer.roblox.com/en-us/api-reference/class/Glue","ManualSurfaceJointInstance":"https://developer.roblox.com/en-us/api-reference/class/ManualSurfaceJointInstance","ManualGlue":"https://developer.roblox.com/en-us/api-reference/class/ManualGlue","ManualWeld":"https://developer.roblox.com/en-us/api-reference/class/ManualWeld","Motor":"https://developer.roblox.com/en-us/api-reference/class/Motor","Motor6D":"https://developer.roblox.com/en-us/api-reference/class/Motor6D","Rotate":"https://developer.roblox.com/en-us/api-reference/class/Rotate","Snap":"https://developer.roblox.com/en-us/api-reference/class/Snap","VelocityMotor":"https://developer.roblox.com/en-us/api-reference/class/VelocityMotor","Weld":"https://developer.roblox.com/en-us/api-reference/class/Weld","JointsService":"https://developer.roblox.com/en-us/api-reference/class/JointsService","KeyboardService":"https://developer.roblox.com/en-us/api-reference/class/KeyboardService","Keyframe":"https://developer.roblox.com/en-us/api-reference/class/Keyframe","KeyframeMarker":"https://developer.roblox.com/en-us/api-reference/class/KeyframeMarker","KeyframeSequenceProvider":"https://developer.roblox.com/en-us/api-reference/class/KeyframeSequenceProvider","LSPFileSyncService":"https://developer.roblox.com/en-us/api-reference/class/LSPFileSyncService","LanguageService":"https://developer.roblox.com/en-us/api-reference/class/LanguageService","Light":"https://developer.roblox.com/en-us/api-reference/class/Light","PointLight":"https://developer.roblox.com/en-us/api-reference/class/PointLight","SpotLight":"https://developer.roblox.com/en-us/api-reference/class/SpotLight","SurfaceLight":"https://developer.roblox.com/en-us/api-reference/class/SurfaceLight","Lighting":"https://developer.roblox.com/en-us/api-reference/class/Lighting","LiveScriptingService":"https://developer.roblox.com/en-us/api-reference/class/LiveScriptingService","LocalStorageService":"https://developer.roblox.com/en-us/api-reference/class/LocalStorageService","AppStorageService":"https://developer.roblox.com/en-us/api-reference/class/AppStorageService","UserStorageService":"https://developer.roblox.com/en-us/api-reference/class/UserStorageService","LocalizationService":"https://developer.roblox.com/en-us/api-reference/class/LocalizationService","LocalizationTable":"https://developer.roblox.com/en-us/api-reference/class/LocalizationTable","CloudLocalizationTable":"https://developer.roblox.com/en-us/api-reference/class/CloudLocalizationTable","LodDataEntity":"https://developer.roblox.com/en-us/api-reference/class/LodDataEntity","LodDataService":"https://developer.roblox.com/en-us/api-reference/class/LodDataService","LogService":"https://developer.roblox.com/en-us/api-reference/class/LogService","LoginService":"https://developer.roblox.com/en-us/api-reference/class/LoginService","LuaSettings":"https://developer.roblox.com/en-us/api-reference/class/LuaSettings","LuaSourceContainer":"https://developer.roblox.com/en-us/api-reference/class/LuaSourceContainer","BaseScript":"https://developer.roblox.com/en-us/api-reference/class/BaseScript","CoreScript":"https://developer.roblox.com/en-us/api-reference/class/CoreScript","Script":"https://developer.roblox.com/en-us/api-reference/class/Script","LocalScript":"https://developer.roblox.com/en-us/api-reference/class/LocalScript","ModuleScript":"https://developer.roblox.com/en-us/api-reference/class/ModuleScript","LuaWebService":"https://developer.roblox.com/en-us/api-reference/class/LuaWebService","LuauScriptAnalyzerService":"https://developer.roblox.com/en-us/api-reference/class/LuauScriptAnalyzerService","MarkerCurve":"https://developer.roblox.com/en-us/api-reference/class/MarkerCurve","MarketplaceService":"https://developer.roblox.com/en-us/api-reference/class/MarketplaceService","MaterialGenerationService":"https://developer.roblox.com/en-us/api-reference/class/MaterialGenerationService","MaterialGenerationSession":"https://developer.roblox.com/en-us/api-reference/class/MaterialGenerationSession","MaterialService":"https://developer.roblox.com/en-us/api-reference/class/MaterialService","MaterialVariant":"https://developer.roblox.com/en-us/api-reference/class/MaterialVariant","MemStorageConnection":"https://developer.roblox.com/en-us/api-reference/class/MemStorageConnection","MemStorageService":"https://developer.roblox.com/en-us/api-reference/class/MemStorageService","MemoryStoreQueue":"https://developer.roblox.com/en-us/api-reference/class/MemoryStoreQueue","MemoryStoreService":"https://developer.roblox.com/en-us/api-reference/class/MemoryStoreService","MemoryStoreSortedMap":"https://developer.roblox.com/en-us/api-reference/class/MemoryStoreSortedMap","MeshDataExperimental":"https://developer.roblox.com/en-us/api-reference/class/MeshDataExperimental","Message":"https://developer.roblox.com/en-us/api-reference/class/Message","Hint":"https://developer.roblox.com/en-us/api-reference/class/Hint","MessageBusConnection":"https://developer.roblox.com/en-us/api-reference/class/MessageBusConnection","MessageBusService":"https://developer.roblox.com/en-us/api-reference/class/MessageBusService","MessagingService":"https://developer.roblox.com/en-us/api-reference/class/MessagingService","MetaBreakpoint":"https://developer.roblox.com/en-us/api-reference/class/MetaBreakpoint","MetaBreakpointContext":"https://developer.roblox.com/en-us/api-reference/class/MetaBreakpointContext","MetaBreakpointManager":"https://developer.roblox.com/en-us/api-reference/class/MetaBreakpointManager","Mouse":"https://developer.roblox.com/en-us/api-reference/class/Mouse","PlayerMouse":"https://developer.roblox.com/en-us/api-reference/class/PlayerMouse","PluginMouse":"https://developer.roblox.com/en-us/api-reference/class/PluginMouse","MouseService":"https://developer.roblox.com/en-us/api-reference/class/MouseService","MultipleDocumentInterfaceInstance":"https://developer.roblox.com/en-us/api-reference/class/MultipleDocumentInterfaceInstance","NetworkMarker":"https://developer.roblox.com/en-us/api-reference/class/NetworkMarker","NetworkPeer":"https://developer.roblox.com/en-us/api-reference/class/NetworkPeer","NetworkClient":"https://developer.roblox.com/en-us/api-reference/class/NetworkClient","NetworkServer":"https://developer.roblox.com/en-us/api-reference/class/NetworkServer","NetworkReplicator":"https://developer.roblox.com/en-us/api-reference/class/NetworkReplicator","ClientReplicator":"https://developer.roblox.com/en-us/api-reference/class/ClientReplicator","ServerReplicator":"https://developer.roblox.com/en-us/api-reference/class/ServerReplicator","NetworkSettings":"https://developer.roblox.com/en-us/api-reference/class/NetworkSettings","NoCollisionConstraint":"https://developer.roblox.com/en-us/api-reference/class/NoCollisionConstraint","NotificationService":"https://developer.roblox.com/en-us/api-reference/class/NotificationService","OmniRecommendationsService":"https://developer.roblox.com/en-us/api-reference/class/OmniRecommendationsService","PVInstance":"https://developer.roblox.com/en-us/api-reference/class/PVInstance","BasePart":"https://developer.roblox.com/en-us/api-reference/class/BasePart","CornerWedgePart":"https://developer.roblox.com/en-us/api-reference/class/CornerWedgePart","FormFactorPart":"https://developer.roblox.com/en-us/api-reference/class/FormFactorPart","Part":"https://developer.roblox.com/en-us/api-reference/class/Part","FlagStand":"https://developer.roblox.com/en-us/api-reference/class/FlagStand","Platform":"https://developer.roblox.com/en-us/api-reference/enum/Platform","Seat":"https://developer.roblox.com/en-us/api-reference/class/Seat","SkateboardPlatform":"https://developer.roblox.com/en-us/api-reference/class/SkateboardPlatform","SpawnLocation":"https://developer.roblox.com/en-us/api-reference/class/SpawnLocation","WedgePart":"https://developer.roblox.com/en-us/api-reference/class/WedgePart","Terrain":"https://developer.roblox.com/en-us/api-reference/class/Terrain","TriangleMeshPart":"https://developer.roblox.com/en-us/api-reference/class/TriangleMeshPart","MeshPart":"https://developer.roblox.com/en-us/api-reference/class/MeshPart","PartOperation":"https://developer.roblox.com/en-us/api-reference/class/PartOperation","IntersectOperation":"https://developer.roblox.com/en-us/api-reference/class/IntersectOperation","NegateOperation":"https://developer.roblox.com/en-us/api-reference/class/NegateOperation","UnionOperation":"https://developer.roblox.com/en-us/api-reference/class/UnionOperation","TrussPart":"https://developer.roblox.com/en-us/api-reference/class/TrussPart","VehicleSeat":"https://developer.roblox.com/en-us/api-reference/class/VehicleSeat","Model":"https://developer.roblox.com/en-us/api-reference/class/Model","Actor":"https://developer.roblox.com/en-us/api-reference/class/Actor","BackpackItem":"https://developer.roblox.com/en-us/api-reference/class/BackpackItem","HopperBin":"https://developer.roblox.com/en-us/api-reference/class/HopperBin","Tool":"https://developer.roblox.com/en-us/api-reference/class/Tool","Flag":"https://developer.roblox.com/en-us/api-reference/class/Flag","Status":"https://developer.roblox.com/en-us/api-reference/enum/Status","WorldRoot":"https://developer.roblox.com/en-us/api-reference/class/WorldRoot","Workspace":"https://developer.roblox.com/en-us/api-reference/class/Workspace","WorldModel":"https://developer.roblox.com/en-us/api-reference/class/WorldModel","PackageLink":"https://developer.roblox.com/en-us/api-reference/class/PackageLink","PackageService":"https://developer.roblox.com/en-us/api-reference/class/PackageService","PackageUIService":"https://developer.roblox.com/en-us/api-reference/class/PackageUIService","Pages":"https://developer.roblox.com/en-us/api-reference/class/Pages","AudioPages":"https://developer.roblox.com/en-us/api-reference/class/AudioPages","CatalogPages":"https://developer.roblox.com/en-us/api-reference/class/CatalogPages","DataStoreKeyPages":"https://developer.roblox.com/en-us/api-reference/class/DataStoreKeyPages","DataStoreListingPages":"https://developer.roblox.com/en-us/api-reference/class/DataStoreListingPages","DataStorePages":"https://developer.roblox.com/en-us/api-reference/class/DataStorePages","DataStoreVersionPages":"https://developer.roblox.com/en-us/api-reference/class/DataStoreVersionPages","FriendPages":"https://developer.roblox.com/en-us/api-reference/class/FriendPages","InventoryPages":"https://developer.roblox.com/en-us/api-reference/class/InventoryPages","EmotesPages":"https://developer.roblox.com/en-us/api-reference/class/EmotesPages","OutfitPages":"https://developer.roblox.com/en-us/api-reference/class/OutfitPages","StandardPages":"https://developer.roblox.com/en-us/api-reference/class/StandardPages","PartOperationAsset":"https://developer.roblox.com/en-us/api-reference/class/PartOperationAsset","ParticleEmitter":"https://developer.roblox.com/en-us/api-reference/class/ParticleEmitter","PatchBundlerFileWatch":"https://developer.roblox.com/en-us/api-reference/class/PatchBundlerFileWatch","PatchMapping":"https://developer.roblox.com/en-us/api-reference/class/PatchMapping","Path":"https://developer.roblox.com/en-us/api-reference/class/Path","PathfindingLink":"https://developer.roblox.com/en-us/api-reference/class/PathfindingLink","PathfindingModifier":"https://developer.roblox.com/en-us/api-reference/class/PathfindingModifier","PathfindingService":"https://developer.roblox.com/en-us/api-reference/class/PathfindingService","PausedState":"https://developer.roblox.com/en-us/api-reference/class/PausedState","PausedStateBreakpoint":"https://developer.roblox.com/en-us/api-reference/class/PausedStateBreakpoint","PausedStateException":"https://developer.roblox.com/en-us/api-reference/class/PausedStateException","PermissionsService":"https://developer.roblox.com/en-us/api-reference/class/PermissionsService","PhysicsService":"https://developer.roblox.com/en-us/api-reference/class/PhysicsService","PhysicsSettings":"https://developer.roblox.com/en-us/api-reference/class/PhysicsSettings","Player":"https://developer.roblox.com/en-us/api-reference/class/Player","PlayerEmulatorService":"https://developer.roblox.com/en-us/api-reference/class/PlayerEmulatorService","PlayerScripts":"https://developer.roblox.com/en-us/api-reference/class/PlayerScripts","Players":"https://developer.roblox.com/en-us/api-reference/class/Players","Plugin":"https://developer.roblox.com/en-us/api-reference/class/Plugin","PluginAction":"https://developer.roblox.com/en-us/api-reference/class/PluginAction","PluginDebugService":"https://developer.roblox.com/en-us/api-reference/class/PluginDebugService","PluginDragEvent":"https://developer.roblox.com/en-us/api-reference/class/PluginDragEvent","PluginGuiService":"https://developer.roblox.com/en-us/api-reference/class/PluginGuiService","PluginManagementService":"https://developer.roblox.com/en-us/api-reference/class/PluginManagementService","PluginManager":"https://developer.roblox.com/en-us/api-reference/class/PluginManager","PluginManagerInterface":"https://developer.roblox.com/en-us/api-reference/class/PluginManagerInterface","PluginMenu":"https://developer.roblox.com/en-us/api-reference/class/PluginMenu","PluginPolicyService":"https://developer.roblox.com/en-us/api-reference/class/PluginPolicyService","PluginToolbar":"https://developer.roblox.com/en-us/api-reference/class/PluginToolbar","PluginToolbarButton":"https://developer.roblox.com/en-us/api-reference/class/PluginToolbarButton","PointsService":"https://developer.roblox.com/en-us/api-reference/class/PointsService","PolicyService":"https://developer.roblox.com/en-us/api-reference/class/PolicyService","PoseBase":"https://developer.roblox.com/en-us/api-reference/class/PoseBase","NumberPose":"https://developer.roblox.com/en-us/api-reference/class/NumberPose","Pose":"https://developer.roblox.com/en-us/api-reference/class/Pose","PostEffect":"https://developer.roblox.com/en-us/api-reference/class/PostEffect","BloomEffect":"https://developer.roblox.com/en-us/api-reference/class/BloomEffect","BlurEffect":"https://developer.roblox.com/en-us/api-reference/class/BlurEffect","ColorCorrectionEffect":"https://developer.roblox.com/en-us/api-reference/class/ColorCorrectionEffect","DepthOfFieldEffect":"https://developer.roblox.com/en-us/api-reference/class/DepthOfFieldEffect","SunRaysEffect":"https://developer.roblox.com/en-us/api-reference/class/SunRaysEffect","ProcessInstancePhysicsService":"https://developer.roblox.com/en-us/api-reference/class/ProcessInstancePhysicsService","ProximityPrompt":"https://developer.roblox.com/en-us/api-reference/class/ProximityPrompt","ProximityPromptService":"https://developer.roblox.com/en-us/api-reference/class/ProximityPromptService","PublishService":"https://developer.roblox.com/en-us/api-reference/class/PublishService","RbxAnalyticsService":"https://developer.roblox.com/en-us/api-reference/class/RbxAnalyticsService","ReflectionMetadata":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadata","ReflectionMetadataCallbacks":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataCallbacks","ReflectionMetadataClasses":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataClasses","ReflectionMetadataEnums":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataEnums","ReflectionMetadataEvents":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataEvents","ReflectionMetadataFunctions":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataFunctions","ReflectionMetadataItem":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataItem","ReflectionMetadataClass":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataClass","ReflectionMetadataEnum":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataEnum","ReflectionMetadataEnumItem":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataEnumItem","ReflectionMetadataMember":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataMember","ReflectionMetadataProperties":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataProperties","ReflectionMetadataYieldFunctions":"https://developer.roblox.com/en-us/api-reference/class/ReflectionMetadataYieldFunctions","RemoteCursorService":"https://developer.roblox.com/en-us/api-reference/class/RemoteCursorService","RemoteDebuggerServer":"https://developer.roblox.com/en-us/api-reference/class/RemoteDebuggerServer","RemoteEvent":"https://developer.roblox.com/en-us/api-reference/class/RemoteEvent","RemoteFunction":"https://developer.roblox.com/en-us/api-reference/class/RemoteFunction","RenderSettings":"https://developer.roblox.com/en-us/api-reference/class/RenderSettings","RenderingTest":"https://developer.roblox.com/en-us/api-reference/class/RenderingTest","ReplicatedFirst":"https://developer.roblox.com/en-us/api-reference/class/ReplicatedFirst","ReplicatedStorage":"https://developer.roblox.com/en-us/api-reference/class/ReplicatedStorage","RobloxPluginGuiService":"https://developer.roblox.com/en-us/api-reference/class/RobloxPluginGuiService","RobloxReplicatedStorage":"https://developer.roblox.com/en-us/api-reference/class/RobloxReplicatedStorage","RotationCurve":"https://developer.roblox.com/en-us/api-reference/class/RotationCurve","RtMessagingService":"https://developer.roblox.com/en-us/api-reference/class/RtMessagingService","RunService":"https://developer.roblox.com/en-us/api-reference/class/RunService","RuntimeScriptService":"https://developer.roblox.com/en-us/api-reference/class/RuntimeScriptService","SafetyService":"https://developer.roblox.com/en-us/api-reference/class/SafetyService","ScreenshotHud":"https://developer.roblox.com/en-us/api-reference/class/ScreenshotHud","ScriptBuilder":"https://developer.roblox.com/en-us/api-reference/class/ScriptBuilder","SyncScriptBuilder":"https://developer.roblox.com/en-us/api-reference/class/SyncScriptBuilder","ScriptChangeService":"https://developer.roblox.com/en-us/api-reference/class/ScriptChangeService","ScriptCloneWatcher":"https://developer.roblox.com/en-us/api-reference/class/ScriptCloneWatcher","ScriptCloneWatcherHelper":"https://developer.roblox.com/en-us/api-reference/class/ScriptCloneWatcherHelper","ScriptCommitService":"https://developer.roblox.com/en-us/api-reference/class/ScriptCommitService","ScriptContext":"https://developer.roblox.com/en-us/api-reference/class/ScriptContext","ScriptDebugger":"https://developer.roblox.com/en-us/api-reference/class/ScriptDebugger","ScriptDocument":"https://developer.roblox.com/en-us/api-reference/class/ScriptDocument","ScriptEditorService":"https://developer.roblox.com/en-us/api-reference/class/ScriptEditorService","ScriptRegistrationService":"https://developer.roblox.com/en-us/api-reference/class/ScriptRegistrationService","ScriptRuntime":"https://developer.roblox.com/en-us/api-reference/class/ScriptRuntime","ScriptService":"https://developer.roblox.com/en-us/api-reference/class/ScriptService","Selection":"https://developer.roblox.com/en-us/api-reference/class/Selection","SelectionHighlightManager":"https://developer.roblox.com/en-us/api-reference/class/SelectionHighlightManager","SensorBase":"https://developer.roblox.com/en-us/api-reference/class/SensorBase","BuoyancySensor":"https://developer.roblox.com/en-us/api-reference/class/BuoyancySensor","ControllerSensor":"https://developer.roblox.com/en-us/api-reference/class/ControllerSensor","ControllerPartSensor":"https://developer.roblox.com/en-us/api-reference/class/ControllerPartSensor","ServerScriptService":"https://developer.roblox.com/en-us/api-reference/class/ServerScriptService","ServerStorage":"https://developer.roblox.com/en-us/api-reference/class/ServerStorage","ServiceProvider":"https://developer.roblox.com/en-us/api-reference/class/ServiceProvider","DataModel":"https://developer.roblox.com/en-us/api-reference/class/DataModel","GenericSettings":"https://developer.roblox.com/en-us/api-reference/class/GenericSettings","AnalysticsSettings":"https://developer.roblox.com/en-us/api-reference/class/AnalysticsSettings","GlobalSettings":"https://developer.roblox.com/en-us/api-reference/class/GlobalSettings","UserSettings":"https://developer.roblox.com/en-us/api-reference/class/UserSettings","ServiceVisibilityService":"https://developer.roblox.com/en-us/api-reference/class/ServiceVisibilityService","SessionService":"https://developer.roblox.com/en-us/api-reference/class/SessionService","SharedTableRegistry":"https://developer.roblox.com/en-us/api-reference/class/SharedTableRegistry","ShorelineUpgraderService":"https://developer.roblox.com/en-us/api-reference/class/ShorelineUpgraderService","Sky":"https://developer.roblox.com/en-us/api-reference/class/Sky","Smoke":"https://developer.roblox.com/en-us/api-reference/class/Smoke","SmoothVoxelsUpgraderService":"https://developer.roblox.com/en-us/api-reference/class/SmoothVoxelsUpgraderService","SnippetService":"https://developer.roblox.com/en-us/api-reference/class/SnippetService","SocialService":"https://developer.roblox.com/en-us/api-reference/class/SocialService","Sound":"https://developer.roblox.com/en-us/api-reference/class/Sound","SoundEffect":"https://developer.roblox.com/en-us/api-reference/class/SoundEffect","ChorusSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/ChorusSoundEffect","CompressorSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/CompressorSoundEffect","CustomSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/CustomSoundEffect","AssetSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/AssetSoundEffect","ChannelSelectorSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/ChannelSelectorSoundEffect","DistortionSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/DistortionSoundEffect","EchoSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/EchoSoundEffect","EqualizerSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/EqualizerSoundEffect","FlangeSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/FlangeSoundEffect","PitchShiftSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/PitchShiftSoundEffect","ReverbSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/ReverbSoundEffect","TremoloSoundEffect":"https://developer.roblox.com/en-us/api-reference/class/TremoloSoundEffect","SoundGroup":"https://developer.roblox.com/en-us/api-reference/class/SoundGroup","SoundService":"https://developer.roblox.com/en-us/api-reference/class/SoundService","Sparkles":"https://developer.roblox.com/en-us/api-reference/class/Sparkles","SpawnerService":"https://developer.roblox.com/en-us/api-reference/class/SpawnerService","StackFrame":"https://developer.roblox.com/en-us/api-reference/class/StackFrame","StandalonePluginScripts":"https://developer.roblox.com/en-us/api-reference/class/StandalonePluginScripts","StarterGear":"https://developer.roblox.com/en-us/api-reference/class/StarterGear","StarterPack":"https://developer.roblox.com/en-us/api-reference/class/StarterPack","StarterPlayer":"https://developer.roblox.com/en-us/api-reference/class/StarterPlayer","StarterPlayerScripts":"https://developer.roblox.com/en-us/api-reference/class/StarterPlayerScripts","StarterCharacterScripts":"https://developer.roblox.com/en-us/api-reference/class/StarterCharacterScripts","Stats":"https://developer.roblox.com/en-us/api-reference/class/Stats","StatsItem":"https://developer.roblox.com/en-us/api-reference/class/StatsItem","RunningAverageItemDouble":"https://developer.roblox.com/en-us/api-reference/class/RunningAverageItemDouble","RunningAverageItemInt":"https://developer.roblox.com/en-us/api-reference/class/RunningAverageItemInt","RunningAverageTimeIntervalItem":"https://developer.roblox.com/en-us/api-reference/class/RunningAverageTimeIntervalItem","TotalCountTimeIntervalItem":"https://developer.roblox.com/en-us/api-reference/class/TotalCountTimeIntervalItem","Studio":"https://developer.roblox.com/en-us/api-reference/class/Studio","StudioAssetService":"https://developer.roblox.com/en-us/api-reference/class/StudioAssetService","StudioData":"https://developer.roblox.com/en-us/api-reference/class/StudioData","StudioDeviceEmulatorService":"https://developer.roblox.com/en-us/api-reference/class/StudioDeviceEmulatorService","StudioPublishService":"https://developer.roblox.com/en-us/api-reference/class/StudioPublishService","StudioScriptDebugEventListener":"https://developer.roblox.com/en-us/api-reference/class/StudioScriptDebugEventListener","StudioSdkService":"https://developer.roblox.com/en-us/api-reference/class/StudioSdkService","StudioService":"https://developer.roblox.com/en-us/api-reference/class/StudioService","StudioTheme":"https://developer.roblox.com/en-us/api-reference/class/StudioTheme","StyleBase":"https://developer.roblox.com/en-us/api-reference/class/StyleBase","StyleRule":"https://developer.roblox.com/en-us/api-reference/class/StyleRule","StyleSheet":"https://developer.roblox.com/en-us/api-reference/class/StyleSheet","StyleDerive":"https://developer.roblox.com/en-us/api-reference/class/StyleDerive","StyleLink":"https://developer.roblox.com/en-us/api-reference/class/StyleLink","StylingService":"https://developer.roblox.com/en-us/api-reference/class/StylingService","SurfaceAppearance":"https://developer.roblox.com/en-us/api-reference/class/SurfaceAppearance","TaskScheduler":"https://developer.roblox.com/en-us/api-reference/class/TaskScheduler","Team":"https://developer.roblox.com/en-us/api-reference/class/Team","TeamCreateData":"https://developer.roblox.com/en-us/api-reference/class/TeamCreateData","TeamCreatePublishService":"https://developer.roblox.com/en-us/api-reference/class/TeamCreatePublishService","TeamCreateService":"https://developer.roblox.com/en-us/api-reference/class/TeamCreateService","Teams":"https://developer.roblox.com/en-us/api-reference/class/Teams","TeleportAsyncResult":"https://developer.roblox.com/en-us/api-reference/class/TeleportAsyncResult","TeleportOptions":"https://developer.roblox.com/en-us/api-reference/class/TeleportOptions","TeleportService":"https://developer.roblox.com/en-us/api-reference/class/TeleportService","TemporaryCageMeshProvider":"https://developer.roblox.com/en-us/api-reference/class/TemporaryCageMeshProvider","TemporaryScriptService":"https://developer.roblox.com/en-us/api-reference/class/TemporaryScriptService","TerrainDetail":"https://developer.roblox.com/en-us/api-reference/class/TerrainDetail","TerrainRegion":"https://developer.roblox.com/en-us/api-reference/class/TerrainRegion","TestService":"https://developer.roblox.com/en-us/api-reference/class/TestService","TextBoxService":"https://developer.roblox.com/en-us/api-reference/class/TextBoxService","TextChannel":"https://developer.roblox.com/en-us/api-reference/class/TextChannel","TextChatCommand":"https://developer.roblox.com/en-us/api-reference/class/TextChatCommand","TextChatConfigurations":"https://developer.roblox.com/en-us/api-reference/class/TextChatConfigurations","BubbleChatConfiguration":"https://developer.roblox.com/en-us/api-reference/class/BubbleChatConfiguration","ChatInputBarConfiguration":"https://developer.roblox.com/en-us/api-reference/class/ChatInputBarConfiguration","ChatWindowConfiguration":"https://developer.roblox.com/en-us/api-reference/class/ChatWindowConfiguration","TextChatMessage":"https://developer.roblox.com/en-us/api-reference/class/TextChatMessage","TextChatMessageProperties":"https://developer.roblox.com/en-us/api-reference/class/TextChatMessageProperties","TextChatService":"https://developer.roblox.com/en-us/api-reference/class/TextChatService","TextFilterResult":"https://developer.roblox.com/en-us/api-reference/class/TextFilterResult","TextFilterTranslatedResult":"https://developer.roblox.com/en-us/api-reference/class/TextFilterTranslatedResult","TextService":"https://developer.roblox.com/en-us/api-reference/class/TextService","TextSource":"https://developer.roblox.com/en-us/api-reference/class/TextSource","ThirdPartyUserService":"https://developer.roblox.com/en-us/api-reference/class/ThirdPartyUserService","ThreadState":"https://developer.roblox.com/en-us/api-reference/class/ThreadState","TimerService":"https://developer.roblox.com/en-us/api-reference/class/TimerService","ToastNotificationService":"https://developer.roblox.com/en-us/api-reference/class/ToastNotificationService","TouchInputService":"https://developer.roblox.com/en-us/api-reference/class/TouchInputService","TouchTransmitter":"https://developer.roblox.com/en-us/api-reference/class/TouchTransmitter","TracerService":"https://developer.roblox.com/en-us/api-reference/class/TracerService","TrackerLodController":"https://developer.roblox.com/en-us/api-reference/class/TrackerLodController","TrackerStreamAnimation":"https://developer.roblox.com/en-us/api-reference/class/TrackerStreamAnimation","Trail":"https://developer.roblox.com/en-us/api-reference/class/Trail","Translator":"https://developer.roblox.com/en-us/api-reference/class/Translator","TweenBase":"https://developer.roblox.com/en-us/api-reference/class/TweenBase","Tween":"https://developer.roblox.com/en-us/api-reference/class/Tween","TweenService":"https://developer.roblox.com/en-us/api-reference/class/TweenService","UGCValidationService":"https://developer.roblox.com/en-us/api-reference/class/UGCValidationService","UIBase":"https://developer.roblox.com/en-us/api-reference/class/UIBase","UIComponent":"https://developer.roblox.com/en-us/api-reference/class/UIComponent","UIConstraint":"https://developer.roblox.com/en-us/api-reference/class/UIConstraint","UIAspectRatioConstraint":"https://developer.roblox.com/en-us/api-reference/class/UIAspectRatioConstraint","UISizeConstraint":"https://developer.roblox.com/en-us/api-reference/class/UISizeConstraint","UITextSizeConstraint":"https://developer.roblox.com/en-us/api-reference/class/UITextSizeConstraint","UICorner":"https://developer.roblox.com/en-us/api-reference/class/UICorner","UIGradient":"https://developer.roblox.com/en-us/api-reference/class/UIGradient","UILayout":"https://developer.roblox.com/en-us/api-reference/class/UILayout","UIGridStyleLayout":"https://developer.roblox.com/en-us/api-reference/class/UIGridStyleLayout","UIGridLayout":"https://developer.roblox.com/en-us/api-reference/class/UIGridLayout","UIListLayout":"https://developer.roblox.com/en-us/api-reference/class/UIListLayout","UIPageLayout":"https://developer.roblox.com/en-us/api-reference/class/UIPageLayout","UITableLayout":"https://developer.roblox.com/en-us/api-reference/class/UITableLayout","UIPadding":"https://developer.roblox.com/en-us/api-reference/class/UIPadding","UIScale":"https://developer.roblox.com/en-us/api-reference/class/UIScale","UIStroke":"https://developer.roblox.com/en-us/api-reference/class/UIStroke","UnvalidatedAssetService":"https://developer.roblox.com/en-us/api-reference/class/UnvalidatedAssetService","UserGameSettings":"https://developer.roblox.com/en-us/api-reference/class/UserGameSettings","UserInputService":"https://developer.roblox.com/en-us/api-reference/class/UserInputService","UserService":"https://developer.roblox.com/en-us/api-reference/class/UserService","VRService":"https://developer.roblox.com/en-us/api-reference/class/VRService","ValueBase":"https://developer.roblox.com/en-us/api-reference/class/ValueBase","BinaryStringValue":"https://developer.roblox.com/en-us/api-reference/class/BinaryStringValue","BoolValue":"https://developer.roblox.com/en-us/api-reference/class/BoolValue","BrickColorValue":"https://developer.roblox.com/en-us/api-reference/class/BrickColorValue","CFrameValue":"https://developer.roblox.com/en-us/api-reference/class/CFrameValue","Color3Value":"https://developer.roblox.com/en-us/api-reference/class/Color3Value","DoubleConstrainedValue":"https://developer.roblox.com/en-us/api-reference/class/DoubleConstrainedValue","IntConstrainedValue":"https://developer.roblox.com/en-us/api-reference/class/IntConstrainedValue","IntValue":"https://developer.roblox.com/en-us/api-reference/class/IntValue","NumberValue":"https://developer.roblox.com/en-us/api-reference/class/NumberValue","ObjectValue":"https://developer.roblox.com/en-us/api-reference/class/ObjectValue","RayValue":"https://developer.roblox.com/en-us/api-reference/class/RayValue","StringValue":"https://developer.roblox.com/en-us/api-reference/class/StringValue","Vector3Value":"https://developer.roblox.com/en-us/api-reference/class/Vector3Value","Vector3Curve":"https://developer.roblox.com/en-us/api-reference/class/Vector3Curve","VersionControlService":"https://developer.roblox.com/en-us/api-reference/class/VersionControlService","VideoCaptureService":"https://developer.roblox.com/en-us/api-reference/class/VideoCaptureService","VirtualInputManager":"https://developer.roblox.com/en-us/api-reference/class/VirtualInputManager","VirtualUser":"https://developer.roblox.com/en-us/api-reference/class/VirtualUser","VisibilityCheckDispatcher":"https://developer.roblox.com/en-us/api-reference/class/VisibilityCheckDispatcher","VisibilityService":"https://developer.roblox.com/en-us/api-reference/class/VisibilityService","Visit":"https://developer.roblox.com/en-us/api-reference/class/Visit","VoiceChatInternal":"https://developer.roblox.com/en-us/api-reference/class/VoiceChatInternal","VoiceChatService":"https://developer.roblox.com/en-us/api-reference/class/VoiceChatService","WeldConstraint":"https://developer.roblox.com/en-us/api-reference/class/WeldConstraint","AccessoryType":"https://developer.roblox.com/en-us/api-reference/enum/AccessoryType","ActionType":"https://developer.roblox.com/en-us/api-reference/enum/ActionType","ActuatorRelativeTo":"https://developer.roblox.com/en-us/api-reference/enum/ActuatorRelativeTo","ActuatorType":"https://developer.roblox.com/en-us/api-reference/enum/ActuatorType","AdPortalType":"https://developer.roblox.com/en-us/api-reference/enum/AdPortalType","AdShape":"https://developer.roblox.com/en-us/api-reference/enum/AdShape","AdTeleportMethod":"https://developer.roblox.com/en-us/api-reference/enum/AdTeleportMethod","AdUnitStatus":"https://developer.roblox.com/en-us/api-reference/enum/AdUnitStatus","AdornCullingMode":"https://developer.roblox.com/en-us/api-reference/enum/AdornCullingMode","AlignType":"https://developer.roblox.com/en-us/api-reference/enum/AlignType","AlphaMode":"https://developer.roblox.com/en-us/api-reference/enum/AlphaMode","AnalyticsEconomyAction":"https://developer.roblox.com/en-us/api-reference/enum/AnalyticsEconomyAction","AnalyticsLogLevel":"https://developer.roblox.com/en-us/api-reference/enum/AnalyticsLogLevel","AnalyticsProgressionStatus":"https://developer.roblox.com/en-us/api-reference/enum/AnalyticsProgressionStatus","AnimationPriority":"https://developer.roblox.com/en-us/api-reference/enum/AnimationPriority","AnimatorRetargetingMode":"https://developer.roblox.com/en-us/api-reference/enum/AnimatorRetargetingMode","AppShellActionType":"https://developer.roblox.com/en-us/api-reference/enum/AppShellActionType","AppShellFeature":"https://developer.roblox.com/en-us/api-reference/enum/AppShellFeature","AppUpdateStatus":"https://developer.roblox.com/en-us/api-reference/enum/AppUpdateStatus","ApplyStrokeMode":"https://developer.roblox.com/en-us/api-reference/enum/ApplyStrokeMode","AspectType":"https://developer.roblox.com/en-us/api-reference/enum/AspectType","AssetFetchStatus":"https://developer.roblox.com/en-us/api-reference/enum/AssetFetchStatus","AssetType":"https://developer.roblox.com/en-us/api-reference/enum/AssetType","AssetTypeVerification":"https://developer.roblox.com/en-us/api-reference/enum/AssetTypeVerification","AudioSubType":"https://developer.roblox.com/en-us/api-reference/enum/AudioSubType","AutoIndentRule":"https://developer.roblox.com/en-us/api-reference/enum/AutoIndentRule","AutomaticSize":"https://developer.roblox.com/en-us/api-reference/enum/AutomaticSize","AvatarAssetType":"https://developer.roblox.com/en-us/api-reference/enum/AvatarAssetType","AvatarChatServiceFeature":"https://developer.roblox.com/en-us/api-reference/enum/AvatarChatServiceFeature","AvatarContextMenuOption":"https://developer.roblox.com/en-us/api-reference/enum/AvatarContextMenuOption","AvatarItemType":"https://developer.roblox.com/en-us/api-reference/enum/AvatarItemType","AvatarPromptResult":"https://developer.roblox.com/en-us/api-reference/enum/AvatarPromptResult","AvatarThumbnailCustomizationType":"https://developer.roblox.com/en-us/api-reference/enum/AvatarThumbnailCustomizationType","AvatarUnificationMode":"https://developer.roblox.com/en-us/api-reference/enum/AvatarUnificationMode","Axis":"https://developer.roblox.com/en-us/api-reference/enum/Axis","BinType":"https://developer.roblox.com/en-us/api-reference/enum/BinType","BodyPart":"https://developer.roblox.com/en-us/api-reference/enum/BodyPart","BodyPartR15":"https://developer.roblox.com/en-us/api-reference/enum/BodyPartR15","BorderMode":"https://developer.roblox.com/en-us/api-reference/enum/BorderMode","BreakReason":"https://developer.roblox.com/en-us/api-reference/enum/BreakReason","BreakpointRemoveReason":"https://developer.roblox.com/en-us/api-reference/enum/BreakpointRemoveReason","BulkMoveMode":"https://developer.roblox.com/en-us/api-reference/enum/BulkMoveMode","BundleType":"https://developer.roblox.com/en-us/api-reference/enum/BundleType","Button":"https://developer.roblox.com/en-us/api-reference/enum/Button","ButtonStyle":"https://developer.roblox.com/en-us/api-reference/enum/ButtonStyle","CageType":"https://developer.roblox.com/en-us/api-reference/enum/CageType","CameraMode":"https://developer.roblox.com/en-us/api-reference/enum/CameraMode","CameraPanMode":"https://developer.roblox.com/en-us/api-reference/enum/CameraPanMode","CameraType":"https://developer.roblox.com/en-us/api-reference/enum/CameraType","CatalogCategoryFilter":"https://developer.roblox.com/en-us/api-reference/enum/CatalogCategoryFilter","CatalogSortAggregation":"https://developer.roblox.com/en-us/api-reference/enum/CatalogSortAggregation","CatalogSortType":"https://developer.roblox.com/en-us/api-reference/enum/CatalogSortType","CellBlock":"https://developer.roblox.com/en-us/api-reference/enum/CellBlock","CellMaterial":"https://developer.roblox.com/en-us/api-reference/enum/CellMaterial","CellOrientation":"https://developer.roblox.com/en-us/api-reference/enum/CellOrientation","CenterDialogType":"https://developer.roblox.com/en-us/api-reference/enum/CenterDialogType","ChatCallbackType":"https://developer.roblox.com/en-us/api-reference/enum/ChatCallbackType","ChatColor":"https://developer.roblox.com/en-us/api-reference/enum/ChatColor","ChatMode":"https://developer.roblox.com/en-us/api-reference/enum/ChatMode","ChatPrivacyMode":"https://developer.roblox.com/en-us/api-reference/enum/ChatPrivacyMode","ChatStyle":"https://developer.roblox.com/en-us/api-reference/enum/ChatStyle","ChatVersion":"https://developer.roblox.com/en-us/api-reference/enum/ChatVersion","ClientAnimatorThrottlingMode":"https://developer.roblox.com/en-us/api-reference/enum/ClientAnimatorThrottlingMode","CollisionFidelity":"https://developer.roblox.com/en-us/api-reference/enum/CollisionFidelity","CommandPermission":"https://developer.roblox.com/en-us/api-reference/enum/CommandPermission","CompileTarget":"https://developer.roblox.com/en-us/api-reference/enum/CompileTarget","CompletionItemKind":"https://developer.roblox.com/en-us/api-reference/enum/CompletionItemKind","CompletionItemTag":"https://developer.roblox.com/en-us/api-reference/enum/CompletionItemTag","CompletionTriggerKind":"https://developer.roblox.com/en-us/api-reference/enum/CompletionTriggerKind","ComputerCameraMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/ComputerCameraMovementMode","ComputerMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/ComputerMovementMode","ConnectionError":"https://developer.roblox.com/en-us/api-reference/enum/ConnectionError","ConnectionState":"https://developer.roblox.com/en-us/api-reference/enum/ConnectionState","ContextActionPriority":"https://developer.roblox.com/en-us/api-reference/enum/ContextActionPriority","ContextActionResult":"https://developer.roblox.com/en-us/api-reference/enum/ContextActionResult","ControlMode":"https://developer.roblox.com/en-us/api-reference/enum/ControlMode","CoreGuiType":"https://developer.roblox.com/en-us/api-reference/enum/CoreGuiType","CreateOutfitFailure":"https://developer.roblox.com/en-us/api-reference/enum/CreateOutfitFailure","CreatorType":"https://developer.roblox.com/en-us/api-reference/enum/CreatorType","CreatorTypeFilter":"https://developer.roblox.com/en-us/api-reference/enum/CreatorTypeFilter","CurrencyType":"https://developer.roblox.com/en-us/api-reference/enum/CurrencyType","CustomCameraMode":"https://developer.roblox.com/en-us/api-reference/enum/CustomCameraMode","DataStoreRequestType":"https://developer.roblox.com/en-us/api-reference/enum/DataStoreRequestType","DebuggerEndReason":"https://developer.roblox.com/en-us/api-reference/enum/DebuggerEndReason","DebuggerExceptionBreakMode":"https://developer.roblox.com/en-us/api-reference/enum/DebuggerExceptionBreakMode","DebuggerFrameType":"https://developer.roblox.com/en-us/api-reference/enum/DebuggerFrameType","DebuggerPauseReason":"https://developer.roblox.com/en-us/api-reference/enum/DebuggerPauseReason","DebuggerStatus":"https://developer.roblox.com/en-us/api-reference/enum/DebuggerStatus","DevCameraOcclusionMode":"https://developer.roblox.com/en-us/api-reference/enum/DevCameraOcclusionMode","DevComputerCameraMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/DevComputerCameraMovementMode","DevComputerMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/DevComputerMovementMode","DevTouchCameraMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/DevTouchCameraMovementMode","DevTouchMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/DevTouchMovementMode","DeveloperMemoryTag":"https://developer.roblox.com/en-us/api-reference/enum/DeveloperMemoryTag","DeviceType":"https://developer.roblox.com/en-us/api-reference/enum/DeviceType","DialogBehaviorType":"https://developer.roblox.com/en-us/api-reference/enum/DialogBehaviorType","DialogPurpose":"https://developer.roblox.com/en-us/api-reference/enum/DialogPurpose","DialogTone":"https://developer.roblox.com/en-us/api-reference/enum/DialogTone","DominantAxis":"https://developer.roblox.com/en-us/api-reference/enum/DominantAxis","DraftStatusCode":"https://developer.roblox.com/en-us/api-reference/enum/DraftStatusCode","DragDetectorDragStyle":"https://developer.roblox.com/en-us/api-reference/enum/DragDetectorDragStyle","DragDetectorResponseStyle":"https://developer.roblox.com/en-us/api-reference/enum/DragDetectorResponseStyle","DraggerCoordinateSpace":"https://developer.roblox.com/en-us/api-reference/enum/DraggerCoordinateSpace","DraggerMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/DraggerMovementMode","EasingDirection":"https://developer.roblox.com/en-us/api-reference/enum/EasingDirection","EasingStyle":"https://developer.roblox.com/en-us/api-reference/enum/EasingStyle","ElasticBehavior":"https://developer.roblox.com/en-us/api-reference/enum/ElasticBehavior","EnviromentalPhysicsThrottle":"https://developer.roblox.com/en-us/api-reference/enum/EnviromentalPhysicsThrottle","ExperienceAuthScope":"https://developer.roblox.com/en-us/api-reference/enum/ExperienceAuthScope","ExplosionType":"https://developer.roblox.com/en-us/api-reference/enum/ExplosionType","FacialAnimationStreamingState":"https://developer.roblox.com/en-us/api-reference/enum/FacialAnimationStreamingState","FieldOfViewMode":"https://developer.roblox.com/en-us/api-reference/enum/FieldOfViewMode","FillDirection":"https://developer.roblox.com/en-us/api-reference/enum/FillDirection","FilterResult":"https://developer.roblox.com/en-us/api-reference/enum/FilterResult","Font":"https://developer.roblox.com/en-us/api-reference/enum/Font","FontSize":"https://developer.roblox.com/en-us/api-reference/enum/FontSize","FontStyle":"https://developer.roblox.com/en-us/api-reference/enum/FontStyle","FontWeight":"https://developer.roblox.com/en-us/api-reference/enum/FontWeight","ForceLimitMode":"https://developer.roblox.com/en-us/api-reference/enum/ForceLimitMode","FormFactor":"https://developer.roblox.com/en-us/api-reference/enum/FormFactor","FrameStyle":"https://developer.roblox.com/en-us/api-reference/enum/FrameStyle","FramerateManagerMode":"https://developer.roblox.com/en-us/api-reference/enum/FramerateManagerMode","FriendRequestEvent":"https://developer.roblox.com/en-us/api-reference/enum/FriendRequestEvent","FriendStatus":"https://developer.roblox.com/en-us/api-reference/enum/FriendStatus","FunctionalTestResult":"https://developer.roblox.com/en-us/api-reference/enum/FunctionalTestResult","GameAvatarType":"https://developer.roblox.com/en-us/api-reference/enum/GameAvatarType","GearGenreSetting":"https://developer.roblox.com/en-us/api-reference/enum/GearGenreSetting","GearType":"https://developer.roblox.com/en-us/api-reference/enum/GearType","Genre":"https://developer.roblox.com/en-us/api-reference/enum/Genre","GraphicsMode":"https://developer.roblox.com/en-us/api-reference/enum/GraphicsMode","GuiType":"https://developer.roblox.com/en-us/api-reference/enum/GuiType","HandlesStyle":"https://developer.roblox.com/en-us/api-reference/enum/HandlesStyle","HighlightDepthMode":"https://developer.roblox.com/en-us/api-reference/enum/HighlightDepthMode","HorizontalAlignment":"https://developer.roblox.com/en-us/api-reference/enum/HorizontalAlignment","HoverAnimateSpeed":"https://developer.roblox.com/en-us/api-reference/enum/HoverAnimateSpeed","HttpCachePolicy":"https://developer.roblox.com/en-us/api-reference/enum/HttpCachePolicy","HttpContentType":"https://developer.roblox.com/en-us/api-reference/enum/HttpContentType","HttpError":"https://developer.roblox.com/en-us/api-reference/enum/HttpError","HttpRequestType":"https://developer.roblox.com/en-us/api-reference/enum/HttpRequestType","HumanoidCollisionType":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidCollisionType","HumanoidDisplayDistanceType":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidDisplayDistanceType","HumanoidHealthDisplayType":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidHealthDisplayType","HumanoidOnlySetCollisionsOnStateChange":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidOnlySetCollisionsOnStateChange","HumanoidRigType":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidRigType","HumanoidStateMachineMode":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidStateMachineMode","HumanoidStateType":"https://developer.roblox.com/en-us/api-reference/enum/HumanoidStateType","IKCollisionsMode":"https://developer.roblox.com/en-us/api-reference/enum/IKCollisionsMode","IKControlType":"https://developer.roblox.com/en-us/api-reference/enum/IKControlType","IXPLoadingStatus":"https://developer.roblox.com/en-us/api-reference/enum/IXPLoadingStatus","InOut":"https://developer.roblox.com/en-us/api-reference/enum/InOut","InfoType":"https://developer.roblox.com/en-us/api-reference/enum/InfoType","InitialDockState":"https://developer.roblox.com/en-us/api-reference/enum/InitialDockState","InputType":"https://developer.roblox.com/en-us/api-reference/enum/InputType","InterpolationThrottlingMode":"https://developer.roblox.com/en-us/api-reference/enum/InterpolationThrottlingMode","JointCreationMode":"https://developer.roblox.com/en-us/api-reference/enum/JointCreationMode","KeyCode":"https://developer.roblox.com/en-us/api-reference/enum/KeyCode","KeyInterpolationMode":"https://developer.roblox.com/en-us/api-reference/enum/KeyInterpolationMode","KeywordFilterType":"https://developer.roblox.com/en-us/api-reference/enum/KeywordFilterType","Language":"https://developer.roblox.com/en-us/api-reference/enum/Language","LeftRight":"https://developer.roblox.com/en-us/api-reference/enum/LeftRight","Limb":"https://developer.roblox.com/en-us/api-reference/enum/Limb","LineJoinMode":"https://developer.roblox.com/en-us/api-reference/enum/LineJoinMode","ListDisplayMode":"https://developer.roblox.com/en-us/api-reference/enum/ListDisplayMode","ListenerType":"https://developer.roblox.com/en-us/api-reference/enum/ListenerType","LoadCharacterLayeredClothing":"https://developer.roblox.com/en-us/api-reference/enum/LoadCharacterLayeredClothing","LoadDynamicHeads":"https://developer.roblox.com/en-us/api-reference/enum/LoadDynamicHeads","MarkupKind":"https://developer.roblox.com/en-us/api-reference/enum/MarkupKind","Material":"https://developer.roblox.com/en-us/api-reference/enum/Material","MaterialPattern":"https://developer.roblox.com/en-us/api-reference/enum/MaterialPattern","MembershipType":"https://developer.roblox.com/en-us/api-reference/enum/MembershipType","MeshPartDetailLevel":"https://developer.roblox.com/en-us/api-reference/enum/MeshPartDetailLevel","MeshPartHeadsAndAccessories":"https://developer.roblox.com/en-us/api-reference/enum/MeshPartHeadsAndAccessories","MeshScaleUnit":"https://developer.roblox.com/en-us/api-reference/enum/MeshScaleUnit","MeshType":"https://developer.roblox.com/en-us/api-reference/enum/MeshType","MessageType":"https://developer.roblox.com/en-us/api-reference/enum/MessageType","ModelLevelOfDetail":"https://developer.roblox.com/en-us/api-reference/enum/ModelLevelOfDetail","ModelStreamingBehavior":"https://developer.roblox.com/en-us/api-reference/enum/ModelStreamingBehavior","ModelStreamingMode":"https://developer.roblox.com/en-us/api-reference/enum/ModelStreamingMode","ModifierKey":"https://developer.roblox.com/en-us/api-reference/enum/ModifierKey","MouseBehavior":"https://developer.roblox.com/en-us/api-reference/enum/MouseBehavior","MoveState":"https://developer.roblox.com/en-us/api-reference/enum/MoveState","MuteState":"https://developer.roblox.com/en-us/api-reference/enum/MuteState","NameOcclusion":"https://developer.roblox.com/en-us/api-reference/enum/NameOcclusion","NetworkOwnership":"https://developer.roblox.com/en-us/api-reference/enum/NetworkOwnership","NormalId":"https://developer.roblox.com/en-us/api-reference/enum/NormalId","OrientationAlignmentMode":"https://developer.roblox.com/en-us/api-reference/enum/OrientationAlignmentMode","OutfitSource":"https://developer.roblox.com/en-us/api-reference/enum/OutfitSource","OutfitType":"https://developer.roblox.com/en-us/api-reference/enum/OutfitType","OutputLayoutMode":"https://developer.roblox.com/en-us/api-reference/enum/OutputLayoutMode","OverrideMouseIconBehavior":"https://developer.roblox.com/en-us/api-reference/enum/OverrideMouseIconBehavior","PackagePermission":"https://developer.roblox.com/en-us/api-reference/enum/PackagePermission","PartType":"https://developer.roblox.com/en-us/api-reference/enum/PartType","ParticleEmitterShape":"https://developer.roblox.com/en-us/api-reference/enum/ParticleEmitterShape","ParticleEmitterShapeInOut":"https://developer.roblox.com/en-us/api-reference/enum/ParticleEmitterShapeInOut","ParticleEmitterShapeStyle":"https://developer.roblox.com/en-us/api-reference/enum/ParticleEmitterShapeStyle","ParticleFlipbookLayout":"https://developer.roblox.com/en-us/api-reference/enum/ParticleFlipbookLayout","ParticleFlipbookMode":"https://developer.roblox.com/en-us/api-reference/enum/ParticleFlipbookMode","ParticleFlipbookTextureCompatible":"https://developer.roblox.com/en-us/api-reference/enum/ParticleFlipbookTextureCompatible","ParticleOrientation":"https://developer.roblox.com/en-us/api-reference/enum/ParticleOrientation","PathStatus":"https://developer.roblox.com/en-us/api-reference/enum/PathStatus","PathWaypointAction":"https://developer.roblox.com/en-us/api-reference/enum/PathWaypointAction","PermissionLevelShown":"https://developer.roblox.com/en-us/api-reference/enum/PermissionLevelShown","PhysicsSimulationRate":"https://developer.roblox.com/en-us/api-reference/enum/PhysicsSimulationRate","PhysicsSteppingMethod":"https://developer.roblox.com/en-us/api-reference/enum/PhysicsSteppingMethod","PlaybackState":"https://developer.roblox.com/en-us/api-reference/enum/PlaybackState","PlayerActions":"https://developer.roblox.com/en-us/api-reference/enum/PlayerActions","PlayerChatType":"https://developer.roblox.com/en-us/api-reference/enum/PlayerChatType","PoseEasingDirection":"https://developer.roblox.com/en-us/api-reference/enum/PoseEasingDirection","PoseEasingStyle":"https://developer.roblox.com/en-us/api-reference/enum/PoseEasingStyle","PositionAlignmentMode":"https://developer.roblox.com/en-us/api-reference/enum/PositionAlignmentMode","PrivilegeType":"https://developer.roblox.com/en-us/api-reference/enum/PrivilegeType","ProductLocationRestriction":"https://developer.roblox.com/en-us/api-reference/enum/ProductLocationRestriction","ProductPurchaseDecision":"https://developer.roblox.com/en-us/api-reference/enum/ProductPurchaseDecision","PromptPublishAssetResult":"https://developer.roblox.com/en-us/api-reference/enum/PromptPublishAssetResult","PropertyStatus":"https://developer.roblox.com/en-us/api-reference/enum/PropertyStatus","ProximityPromptExclusivity":"https://developer.roblox.com/en-us/api-reference/enum/ProximityPromptExclusivity","ProximityPromptInputType":"https://developer.roblox.com/en-us/api-reference/enum/ProximityPromptInputType","ProximityPromptStyle":"https://developer.roblox.com/en-us/api-reference/enum/ProximityPromptStyle","QualityLevel":"https://developer.roblox.com/en-us/api-reference/enum/QualityLevel","R15CollisionType":"https://developer.roblox.com/en-us/api-reference/enum/R15CollisionType","RaycastFilterType":"https://developer.roblox.com/en-us/api-reference/enum/RaycastFilterType","RejectCharacterDeletions":"https://developer.roblox.com/en-us/api-reference/enum/RejectCharacterDeletions","RenderFidelity":"https://developer.roblox.com/en-us/api-reference/enum/RenderFidelity","RenderPriority":"https://developer.roblox.com/en-us/api-reference/enum/RenderPriority","RenderingTestComparisonMethod":"https://developer.roblox.com/en-us/api-reference/enum/RenderingTestComparisonMethod","ReplicateInstanceDestroySetting":"https://developer.roblox.com/en-us/api-reference/enum/ReplicateInstanceDestroySetting","ResamplerMode":"https://developer.roblox.com/en-us/api-reference/enum/ResamplerMode","ReservedHighlightId":"https://developer.roblox.com/en-us/api-reference/enum/ReservedHighlightId","RestPose":"https://developer.roblox.com/en-us/api-reference/enum/RestPose","ReturnKeyType":"https://developer.roblox.com/en-us/api-reference/enum/ReturnKeyType","ReverbType":"https://developer.roblox.com/en-us/api-reference/enum/ReverbType","RibbonTool":"https://developer.roblox.com/en-us/api-reference/enum/RibbonTool","RigScale":"https://developer.roblox.com/en-us/api-reference/enum/RigScale","RigType":"https://developer.roblox.com/en-us/api-reference/enum/RigType","RollOffMode":"https://developer.roblox.com/en-us/api-reference/enum/RollOffMode","RotationOrder":"https://developer.roblox.com/en-us/api-reference/enum/RotationOrder","RotationType":"https://developer.roblox.com/en-us/api-reference/enum/RotationType","RtlTextSupport":"https://developer.roblox.com/en-us/api-reference/enum/RtlTextSupport","RunContext":"https://developer.roblox.com/en-us/api-reference/enum/RunContext","RuntimeUndoBehavior":"https://developer.roblox.com/en-us/api-reference/enum/RuntimeUndoBehavior","SafeAreaCompatibility":"https://developer.roblox.com/en-us/api-reference/enum/SafeAreaCompatibility","SalesTypeFilter":"https://developer.roblox.com/en-us/api-reference/enum/SalesTypeFilter","SaveAvatarThumbnailCustomizationFailure":"https://developer.roblox.com/en-us/api-reference/enum/SaveAvatarThumbnailCustomizationFailure","SaveFilter":"https://developer.roblox.com/en-us/api-reference/enum/SaveFilter","SavedQualitySetting":"https://developer.roblox.com/en-us/api-reference/enum/SavedQualitySetting","ScaleType":"https://developer.roblox.com/en-us/api-reference/enum/ScaleType","ScopeCheckResult":"https://developer.roblox.com/en-us/api-reference/enum/ScopeCheckResult","ScreenInsets":"https://developer.roblox.com/en-us/api-reference/enum/ScreenInsets","ScreenOrientation":"https://developer.roblox.com/en-us/api-reference/enum/ScreenOrientation","ScrollBarInset":"https://developer.roblox.com/en-us/api-reference/enum/ScrollBarInset","ScrollingDirection":"https://developer.roblox.com/en-us/api-reference/enum/ScrollingDirection","SelectionBehavior":"https://developer.roblox.com/en-us/api-reference/enum/SelectionBehavior","SelectionRenderMode":"https://developer.roblox.com/en-us/api-reference/enum/SelectionRenderMode","SensorMode":"https://developer.roblox.com/en-us/api-reference/enum/SensorMode","SensorUpdateType":"https://developer.roblox.com/en-us/api-reference/enum/SensorUpdateType","ServerAudioBehavior":"https://developer.roblox.com/en-us/api-reference/enum/ServerAudioBehavior","ServiceVisibility":"https://developer.roblox.com/en-us/api-reference/enum/ServiceVisibility","Severity":"https://developer.roblox.com/en-us/api-reference/enum/Severity","SignalBehavior":"https://developer.roblox.com/en-us/api-reference/enum/SignalBehavior","SizeConstraint":"https://developer.roblox.com/en-us/api-reference/enum/SizeConstraint","SolverConvergenceVisualizationMode":"https://developer.roblox.com/en-us/api-reference/enum/SolverConvergenceVisualizationMode","SortDirection":"https://developer.roblox.com/en-us/api-reference/enum/SortDirection","SortOrder":"https://developer.roblox.com/en-us/api-reference/enum/SortOrder","SpecialKey":"https://developer.roblox.com/en-us/api-reference/enum/SpecialKey","StartCorner":"https://developer.roblox.com/en-us/api-reference/enum/StartCorner","StreamOutBehavior":"https://developer.roblox.com/en-us/api-reference/enum/StreamOutBehavior","StreamingIntegrityMode":"https://developer.roblox.com/en-us/api-reference/enum/StreamingIntegrityMode","StreamingPauseMode":"https://developer.roblox.com/en-us/api-reference/enum/StreamingPauseMode","StudioCloseMode":"https://developer.roblox.com/en-us/api-reference/enum/StudioCloseMode","StudioDataModelType":"https://developer.roblox.com/en-us/api-reference/enum/StudioDataModelType","StudioScriptEditorColorCategories":"https://developer.roblox.com/en-us/api-reference/enum/StudioScriptEditorColorCategories","StudioScriptEditorColorPresets":"https://developer.roblox.com/en-us/api-reference/enum/StudioScriptEditorColorPresets","StudioStyleGuideColor":"https://developer.roblox.com/en-us/api-reference/enum/StudioStyleGuideColor","StudioStyleGuideModifier":"https://developer.roblox.com/en-us/api-reference/enum/StudioStyleGuideModifier","Style":"https://developer.roblox.com/en-us/api-reference/enum/Style","SurfaceConstraint":"https://developer.roblox.com/en-us/api-reference/enum/SurfaceConstraint","SurfaceGuiShape":"https://developer.roblox.com/en-us/api-reference/enum/SurfaceGuiShape","SurfaceGuiSizingMode":"https://developer.roblox.com/en-us/api-reference/enum/SurfaceGuiSizingMode","SurfaceType":"https://developer.roblox.com/en-us/api-reference/enum/SurfaceType","SwipeDirection":"https://developer.roblox.com/en-us/api-reference/enum/SwipeDirection","TableMajorAxis":"https://developer.roblox.com/en-us/api-reference/enum/TableMajorAxis","Technology":"https://developer.roblox.com/en-us/api-reference/enum/Technology","TeleportMethod":"https://developer.roblox.com/en-us/api-reference/enum/TeleportMethod","TeleportResult":"https://developer.roblox.com/en-us/api-reference/enum/TeleportResult","TeleportState":"https://developer.roblox.com/en-us/api-reference/enum/TeleportState","TeleportType":"https://developer.roblox.com/en-us/api-reference/enum/TeleportType","TerrainAcquisitionMethod":"https://developer.roblox.com/en-us/api-reference/enum/TerrainAcquisitionMethod","TerrainFace":"https://developer.roblox.com/en-us/api-reference/enum/TerrainFace","TextChatMessageStatus":"https://developer.roblox.com/en-us/api-reference/enum/TextChatMessageStatus","TextFilterContext":"https://developer.roblox.com/en-us/api-reference/enum/TextFilterContext","TextInputType":"https://developer.roblox.com/en-us/api-reference/enum/TextInputType","TextTruncate":"https://developer.roblox.com/en-us/api-reference/enum/TextTruncate","TextXAlignment":"https://developer.roblox.com/en-us/api-reference/enum/TextXAlignment","TextYAlignment":"https://developer.roblox.com/en-us/api-reference/enum/TextYAlignment","TextureMode":"https://developer.roblox.com/en-us/api-reference/enum/TextureMode","TextureQueryType":"https://developer.roblox.com/en-us/api-reference/enum/TextureQueryType","ThreadPoolConfig":"https://developer.roblox.com/en-us/api-reference/enum/ThreadPoolConfig","ThrottlingPriority":"https://developer.roblox.com/en-us/api-reference/enum/ThrottlingPriority","ThumbnailSize":"https://developer.roblox.com/en-us/api-reference/enum/ThumbnailSize","ThumbnailType":"https://developer.roblox.com/en-us/api-reference/enum/ThumbnailType","TickCountSampleMethod":"https://developer.roblox.com/en-us/api-reference/enum/TickCountSampleMethod","TopBottom":"https://developer.roblox.com/en-us/api-reference/enum/TopBottom","TouchCameraMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/TouchCameraMovementMode","TouchMovementMode":"https://developer.roblox.com/en-us/api-reference/enum/TouchMovementMode","TrackerError":"https://developer.roblox.com/en-us/api-reference/enum/TrackerError","TrackerExtrapolationFlagMode":"https://developer.roblox.com/en-us/api-reference/enum/TrackerExtrapolationFlagMode","TrackerLodFlagMode":"https://developer.roblox.com/en-us/api-reference/enum/TrackerLodFlagMode","TrackerLodValueMode":"https://developer.roblox.com/en-us/api-reference/enum/TrackerLodValueMode","TrackerMode":"https://developer.roblox.com/en-us/api-reference/enum/TrackerMode","TrackerPromptEvent":"https://developer.roblox.com/en-us/api-reference/enum/TrackerPromptEvent","TriStateBoolean":"https://developer.roblox.com/en-us/api-reference/enum/TriStateBoolean","TweenStatus":"https://developer.roblox.com/en-us/api-reference/enum/TweenStatus","UITheme":"https://developer.roblox.com/en-us/api-reference/enum/UITheme","UiMessageType":"https://developer.roblox.com/en-us/api-reference/enum/UiMessageType","UsageContext":"https://developer.roblox.com/en-us/api-reference/enum/UsageContext","UserCFrame":"https://developer.roblox.com/en-us/api-reference/enum/UserCFrame","UserInputState":"https://developer.roblox.com/en-us/api-reference/enum/UserInputState","UserInputType":"https://developer.roblox.com/en-us/api-reference/enum/UserInputType","VRPlayMode":"https://developer.roblox.com/en-us/api-reference/enum/VRPlayMode","VRSafetyBubbleMode":"https://developer.roblox.com/en-us/api-reference/enum/VRSafetyBubbleMode","VRScaling":"https://developer.roblox.com/en-us/api-reference/enum/VRScaling","VRSessionState":"https://developer.roblox.com/en-us/api-reference/enum/VRSessionState","VRTouchpad":"https://developer.roblox.com/en-us/api-reference/enum/VRTouchpad","VRTouchpadMode":"https://developer.roblox.com/en-us/api-reference/enum/VRTouchpadMode","VelocityConstraintMode":"https://developer.roblox.com/en-us/api-reference/enum/VelocityConstraintMode","VerticalAlignment":"https://developer.roblox.com/en-us/api-reference/enum/VerticalAlignment","VerticalScrollBarPosition":"https://developer.roblox.com/en-us/api-reference/enum/VerticalScrollBarPosition","VibrationMotor":"https://developer.roblox.com/en-us/api-reference/enum/VibrationMotor","VirtualCursorMode":"https://developer.roblox.com/en-us/api-reference/enum/VirtualCursorMode","VirtualInputMode":"https://developer.roblox.com/en-us/api-reference/enum/VirtualInputMode","VoiceChatState":"https://developer.roblox.com/en-us/api-reference/enum/VoiceChatState","VolumetricAudio":"https://developer.roblox.com/en-us/api-reference/enum/VolumetricAudio","WaterDirection":"https://developer.roblox.com/en-us/api-reference/enum/WaterDirection","WaterForce":"https://developer.roblox.com/en-us/api-reference/enum/WaterForce","WeldConstraintPreserve":"https://developer.roblox.com/en-us/api-reference/enum/WeldConstraintPreserve","WrapLayerAutoSkin":"https://developer.roblox.com/en-us/api-reference/enum/WrapLayerAutoSkin","WrapLayerDebugMode":"https://developer.roblox.com/en-us/api-reference/enum/WrapLayerDebugMode","WrapTargetDebugMode":"https://developer.roblox.com/en-us/api-reference/enum/WrapTargetDebugMode","ZIndexBehavior":"https://developer.roblox.com/en-us/api-reference/enum/ZIndexBehavior","Axes":"https://developer.roblox.com/en-us/api-reference/datatype/Axes","BrickColor":"https://developer.roblox.com/en-us/api-reference/datatype/BrickColor","CFrame":"https://developer.roblox.com/en-us/api-reference/datatype/CFrame","Color3":"https://developer.roblox.com/en-us/api-reference/datatype/Color3","ColorSequence":"https://developer.roblox.com/en-us/api-reference/datatype/ColorSequence","ColorSequenceKeypoint":"https://developer.roblox.com/en-us/api-reference/datatype/ColorSequenceKeypoint","DockWidgetPluginGuiInfo":"https://developer.roblox.com/en-us/api-reference/datatype/DockWidgetPluginGuiInfo","Enum":"https://developer.roblox.com/en-us/api-reference/datatype/Enum","EnumItem":"https://developer.roblox.com/en-us/api-reference/datatype/EnumItem","Enums":"https://developer.roblox.com/en-us/api-reference/datatype/Enums","Faces":"https://developer.roblox.com/en-us/api-reference/datatype/Faces","NumberRange":"https://developer.roblox.com/en-us/api-reference/datatype/NumberRange","NumberSequence":"https://developer.roblox.com/en-us/api-reference/datatype/NumberSequence","NumberSequenceKeypoint":"https://developer.roblox.com/en-us/api-reference/datatype/NumberSequenceKeypoint","PathWaypoint":"https://developer.roblox.com/en-us/api-reference/datatype/PathWaypoint","PhysicalProperties":"https://developer.roblox.com/en-us/api-reference/datatype/PhysicalProperties","Random":"https://developer.roblox.com/en-us/api-reference/datatype/Random","Ray":"https://developer.roblox.com/en-us/api-reference/datatype/Ray","RBXScriptConnection":"https://developer.roblox.com/en-us/api-reference/datatype/RBXScriptConnection","RBXScriptSignal":"https://developer.roblox.com/en-us/api-reference/datatype/RBXScriptSignal","Rect":"https://developer.roblox.com/en-us/api-reference/datatype/Rect","Region3":"https://developer.roblox.com/en-us/api-reference/datatype/Region3","Region3int16":"https://developer.roblox.com/en-us/api-reference/datatype/Region3int16","TweenInfo":"https://developer.roblox.com/en-us/api-reference/datatype/TweenInfo","UDim":"https://developer.roblox.com/en-us/api-reference/datatype/UDim","UDim2":"https://developer.roblox.com/en-us/api-reference/datatype/UDim2","Vector2":"https://developer.roblox.com/en-us/api-reference/datatype/Vector2","Vector2int16":"https://developer.roblox.com/en-us/api-reference/datatype/Vector2int16","Vector3":"https://developer.roblox.com/en-us/api-reference/datatype/Vector3","Vector3int16":"https://developer.roblox.com/en-us/api-reference/datatype/Vector3int16","Future":"/Luau-Future/api/Future","Result":"/Luau-Future/api/Result"}')}}]); \ No newline at end of file diff --git a/assets/js/main.fdbba97b.js b/assets/js/main.c3afe4f0.js similarity index 99% rename from assets/js/main.fdbba97b.js rename to assets/js/main.c3afe4f0.js index 39195ef..d50a84e 100644 --- a/assets/js/main.fdbba97b.js +++ b/assets/js/main.c3afe4f0.js @@ -1,2 +1,2 @@ -/*! For license information please see main.fdbba97b.js.LICENSE.txt */ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),a=n(87462),o=n(68356),i=n.n(o),l=n(16887);const s={"02fae9b5":[()=>n.e(331).then(n.bind(n,76647)),"@site/pages/index.md",76647],"12ed32e7":[()=>n.e(997).then(n.t.bind(n,48153,19)),"C:\\Users\\thefa\\AppData\\Local\\moonwave\\Cache\\Future\\.docusaurus\\docusaurus-plugin-moonwave\\moonwave\\Future.json",48153],"1f391b9e":[()=>Promise.all([n.e(532),n.e(85)]).then(n.bind(n,70688)),"@theme/MDXPage",70688],"204c4992":[()=>n.e(465).then(n.t.bind(n,83659,19)),"C:\\Users\\thefa\\AppData\\Local\\moonwave\\Cache\\Future\\.docusaurus\\docusaurus-plugin-moonwave\\moonwave\\Future-toc.json",83659],"22ebd750":[()=>n.e(585).then(n.t.bind(n,82063,19)),"C:\\Users\\thefa\\AppData\\Local\\moonwave\\Cache\\Future\\.docusaurus\\docusaurus-plugin-moonwave\\moonwave\\Result.json",82063],"3105f858":[()=>n.e(937).then(n.bind(n,23424)),"C:\\Users\\thefa\\AppData\\Local\\moonwave\\Cache\\Future\\node_modules\\docusaurus-plugin-moonwave\\src\\components\\Redirect.js",23424],"389bed06":[()=>n.e(862).then(n.t.bind(n,63891,19)),"C:\\Users\\thefa\\AppData\\Local\\moonwave\\Cache\\Future\\.docusaurus\\docusaurus-plugin-moonwave\\moonwave\\options.json",63891],"45ec1850":[()=>n.e(514).then(n.t.bind(n,15745,19)),"C:\\Users\\thefa\\AppData\\Local\\moonwave\\Cache\\Future\\.docusaurus\\docusaurus-plugin-content-pages\\default\\plugin-route-context-module-100.json",15745],"759b88ee":[()=>n.e(914).then(n.t.bind(n,85492,19)),"C:\\Users\\thefa\\AppData\\Local\\moonwave\\Cache\\Future\\.docusaurus\\docusaurus-plugin-moonwave\\moonwave\\typeLinks.json",85492],b4fd4062:[()=>n.e(338).then(n.t.bind(n,7636,19)),"C:\\Users\\thefa\\AppData\\Local\\moonwave\\Cache\\Future\\.docusaurus\\docusaurus-plugin-moonwave\\moonwave\\sidebar.json",7636],bc8984f1:[()=>Promise.all([n.e(532),n.e(663)]).then(n.bind(n,82532)),"C:\\Users\\thefa\\AppData\\Local\\moonwave\\Cache\\Future\\node_modules\\docusaurus-plugin-moonwave\\src\\components\\LuaClass.js",82532],df69ebce:[()=>n.e(288).then(n.t.bind(n,95475,19)),"C:\\Users\\thefa\\AppData\\Local\\moonwave\\Cache\\Future\\.docusaurus\\docusaurus-plugin-moonwave\\moonwave\\Result-toc.json",95475],feae226d:[()=>n.e(639).then(n.t.bind(n,88303,19)),"C:\\Users\\thefa\\AppData\\Local\\moonwave\\Cache\\Future\\.docusaurus\\docusaurus-plugin-moonwave\\moonwave\\plugin-route-context-module-100.json",88303]};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 f(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(972).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 o=l[`${e}-${t}`],f={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));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 o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/Luau-Future/api/",component:f("/Luau-Future/api/","aa9"),exact:!0},{path:"/Luau-Future/api/Future",component:f("/Luau-Future/api/Future","148"),exact:!0},{path:"/Luau-Future/api/Result",component:f("/Luau-Future/api/Result","5af"),exact:!0},{path:"/Luau-Future/",component:f("/Luau-Future/","c19"),exact:!0},{path:"*",component:f("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(67294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},10799:(e,t,n)=>{"use strict";var r=n(67294),a=n(73935),o=n(73727),i=n(70405),l=n(10412);const s=[n(32497),n(3310),n(18320),n(34197)];var u=n(723),c=n(16550),d=n(87462);function f(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var r=e.path?(0,c.LX)(t,e):n.length?n[n.length-1].match:c.F0.computeRootMatch(t);return r&&(n.push({route:e,match:r}),e.routes&&f(e.routes,t,n)),r})),n}function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var m=n(35742),h=n(52263),g=n(44996),v=n(86668),b=n(1944),y=n(94711),w=n(19727);const E="default";function k(e){let{locale:t,version:n,tag:a}=e;const o=t;return r.createElement(m.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),o&&r.createElement("meta",{name:"docsearch:language",content:o}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}function S(){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 x(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)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,v.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(b.d,{image:n}),r.createElement(x,null),r.createElement(S,null),r.createElement(k,{tag:E,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,d.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if(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 L=n(98934),A=n(58940);function N(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const O=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,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),N("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function P(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>f(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class I extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?N("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=N("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),P(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(O,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const R=I,D="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner",F="docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function U(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\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[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,U(e))),r.createElement("div",{id:D}))}function z(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement($,null):null}function j(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[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:i}))}var Z=n(44763);function H(){const e=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?r.createElement(c.rs,n,e.map((function(e,n){return r.createElement(c.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,d.Z)({},n,{},t,{route:e})):r.createElement(e.component,(0,d.Z)({},n,t,{route:e}))}})}))):null}(u.Z),t=(0,c.TH)();return r.createElement(Z.Z,null,r.createElement(A.M,null,r.createElement(L.t,null,r.createElement(p,null,r.createElement(j,null),r.createElement(_,null),r.createElement(z,null),r.createElement(R,{location:T(t)},e)))))}var V=n(16887);const W=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}: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 G=n(99670);const q=new Set,Y=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Q={prefetch(e){if(!(e=>!K()&&!Y.has(e)&&!q.has(e))(e))return!1;q.add(e);const t=f(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(V).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,G.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?W(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!Y.has(e))(e)&&(Y.add(e),P(e))},X=Object.freeze(Q);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;P(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.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 o=JSON.parse('{"docusaurus-lunr-search":{"default":{"fileNames":{"searchDoc":"search-doc-1686896456391.json","lunrIndex":"lunr-index-1686896456391.json"}}}}'),i=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.3.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.3.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.3.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.3.1"},"docusaurus-plugin-moonwave":{"type":"package","name":"docusaurus-plugin-moonwave","version":"1.0.2"},"docusaurus-lunr-search":{"type":"package","name":"docusaurus-lunr-search","version":"2.3.2"}}}'),u={siteConfig:a.Z,siteMetadata:s,globalData:o,i18n:i,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:()=>c});var r=n(67294),a=n(10412),o=n(35742),i=n(44136);function l(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},r.createElement("h1",null,"This page crashed."),r.createElement("p",null,t.message),r.createElement("button",{type:"button",onClick:n},"Try again"))}function s(e){let{error:t,tryAgain:n}=e;return r.createElement(c,{fallback:()=>r.createElement(l,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(i.Z,null,r.createElement(l,{error:t,tryAgain:n})))}const u=e=>r.createElement(s,e);class c 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??u)(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:()=>o});var r=n(67294),a=n(70405);function o(e){return r.createElement(a.ql,e)}},39960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(87462),a=n(67294),o=n(73727),i=n(18780),l=n(52263),s=n(13919),u=n(10412);const c=a.createContext({collectLink:()=>{}}),d=()=>(0,a.useContext)(c);var f=n(44996);const p=e=>e.startsWith("/");function m(e,t){let{isNavLink:n,to:c,href:m,activeClassName:h,isActive:g,"data-noBrokenLinkCheck":v,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:w,baseUrl:E}}=(0,l.Z)(),{withBaseUrl:k}=(0,f.C)(),S=d(),x=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>x.current));const _=c||m;const C=(0,s.Z)(_),T=_?.replace("pathname://","");let L=void 0!==T?(A=T,b&&p(A)?k(A):A):void 0;var A;L&&C&&(L=(0,i.applyTrailingSlash)(L,{trailingSlash:w,baseUrl:E}));const N=(0,a.useRef)(!1),O=n?o.OL:o.rU,P=u.Z.canUseIntersectionObserver,I=(0,a.useRef)(),R=()=>{N.current||null==L||(window.docusaurus.preload(L),N.current=!0)};(0,a.useEffect)((()=>(!P&&C&&null!=L&&window.docusaurus.prefetch(L),()=>{P&&I.current&&I.current.disconnect()})),[I,L,P,C]);const D=L?.startsWith("#")??!1,M=!L||!C||D;return M||v||S.collectLink(L),M?a.createElement("a",(0,r.Z)({ref:x,href:L},_&&!C&&{target:"_blank",rel:"noopener noreferrer"},y)):a.createElement(O,(0,r.Z)({},y,{onMouseEnter:R,onTouchStart:R,innerRef:e=>{x.current=e,P&&e&&C&&(I.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(I.current.unobserve(e),I.current.disconnect(),null!=L&&window.docusaurus.prefetch(L))}))})),I.current.observe(e))},to:L},n&&{isActive:g,activeClassName:h}))}const h=a.forwardRef(m)},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=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 o=n(57529);function i(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 o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},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:()=>i,Z:()=>l});var r=n(67294),a=n(52263),o=n(13919);function i(){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:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.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 i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294),a=n(58940);function o(){return(0,r.useContext)(a._)}},28084:(e,t,n)=>{"use strict";n.d(t,{OD:()=>o,eZ:()=>i});var r=n(52263),a=n(29935);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=o(e),i=r?.[t];if(!i&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return i}},72389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294),a=n(98934);function o(){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=".",n={};return function e(a,o){Object.entries(a).forEach((a=>{let[i,l]=a;const s=o?`${o}${t}${i}`:i;r(l)?e(l,s):n[s]=l}))}(e),n}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(67294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(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,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},94104:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>f,_r:()=>s,zh:()=>u,yW:()=>d,gB:()=>c});var r=n(16550),a=n(28084);const o=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=function(e,t){const n=o(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=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 l={},s=()=>(0,a.OD)("docusaurus-plugin-content-docs")??l,u=e=>(0,a.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0});function c(e){return u(e).versions}function d(e){const t=u(e);return o(t)}function f(e){const t=u(e),{pathname:n}=(0,r.TH)();return i(t,n)}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(74865),a=n.n(r);a().configure({showSpinner:!1});const o={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.Z,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(33003)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(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"}))}},44136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ut});var r=n(67294),a=n(86010),o=n(44763),i=n(1944),l=n(87462),s=n(16550),u=n(95999),c=n(902);function d(e){const t=(0,s.TH)(),n=(0,c.D9)(t),a=(0,c.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&a({location:t,previousLocation:n})}),[a,t,n])}const f="docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function m(){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(f);t&&p(t)}),[]);return d((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const h=(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 g(e){const t=e.children??h,{containerRef:n,onClick:a}=m();return r.createElement("div",{ref:n,role:"region","aria-label":h},r.createElement("a",(0,l.Z)({},e,{href:`#${f}`,onClick:a}),t))}var v=n(35281),b=n(19727);const y={skipToContent:"skipToContent_fXgn"};function w(){return r.createElement(g,{className:y.skipToContent})}var E=n(86668),k=n(59689);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...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:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const x={closeButton:"closeButton_CVFx"};function _(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(S,{width:14,height:14,strokeWidth:3.1}))}const C={content:"content_knG7"};function T(e){const{announcementBar:t}=(0,E.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(C.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const L={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,E.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:L.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:L.announcementBarPlaceholder}),r.createElement(T,{className:L.announcementBarContent}),i&&r.createElement(_,{onClick:n,className:L.announcementBarClose}))}var N=n(72961),O=n(12466);var P=n(13102);const I=r.createContext(null);function R(e){let{children:t}=e;const n=function(){const e=(0,N.e)(),t=(0,P.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,c.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(I.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)(I);if(!e)throw new c.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,P.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var B=n(92949),U=n(72389);function $(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 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:"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 j={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Z(e){let{className:t,value:n,onChange:o}=e;const i=(0,U.Z)(),l=(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"===n?(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)(j.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",j.toggleButton,!i&&j.toggleButtonDisabled),type:"button",onClick:()=>o("dark"===n?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite"},r.createElement($,{className:(0,a.Z)(j.toggleIcon,j.lightToggleIcon)}),r.createElement(z,{className:(0,a.Z)(j.toggleIcon,j.darkToggleIcon)})))}const H=r.memo(Z);function V(e){let{className:t}=e;const n=(0,E.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,B.I)();return n?null:r.createElement(H,{className:t,value:a,onChange:o})}var W=n(21327);function G(){return r.createElement(W.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function q(){const e=(0,N.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(S,{color:"var(--ifm-color-emphasis-600)"}))}function Y(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(G,null),r.createElement(V,{className:"margin-right--md"}),r.createElement(q,null))}var K=n(39960),Q=n(44996),X=n(13919);function J(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var ee=n(39471);function te(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const f=(0,Q.Z)(a),p=(0,Q.Z)(t),m=(0,Q.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,X.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(ee.Z,u&&{width:12,height:12}))};return o?r.createElement(K.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(K.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?J(n,t.pathname):t.pathname.startsWith(p)},d,g))}function ne(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(te,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function re(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(te,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function ae(e){let{mobile:t=!1,position:n,...a}=e;const o=t?re:ne;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var oe=n(86043),ie=n(48596),le=n(52263);function se(e,t){return e.some((e=>function(e,t){return!!(0,ie.Mg)(e.to,t)||!!J(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:o,onClick:i,...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.removeEventListener("mousedown",e),document.removeEventListener("touchstart",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(te,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},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,n)=>r.createElement(Te,(0,l.Z)({isDropdownItem:!0,onKeyDown:e=>{if(n===t.length-1&&"Tab"===e.key){e.preventDefault(),d(!1);const t=u.current.nextElementSibling;if(t){(t instanceof HTMLAnchorElement?t:t.querySelector("a")).focus()}}},activeClassName:"dropdown__link--active"},e,{key:n}))))))}function ce(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=se(t,c),{collapsed:f,toggleCollapsed:p,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":f})},r.createElement(te,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),p()}}),u.children??u.label),r.createElement(oe.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(Te,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function de(e){let{mobile:t=!1,...n}=e;const a=t?ce:ue;return r.createElement(a,n)}var fe=n(94711);function pe(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 me={iconLanguage:"iconLanguage_nlXk"};var he=n(28084),ge=n(94184),ve=n.n(ge);const be=e=>{const t=(0,r.useRef)(!1),a=(0,r.useRef)(null),o=(0,s.k6)(),{siteConfig:i={}}=(0,le.Z)(),{baseUrl:l}=i;(0,r.useEffect)((()=>{const e=e=>{"s"!==e.key&&"/"!==e.key||a.current&&e.srcElement===document.body&&(e.preventDefault(),a.current.focus())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[]);const u=(0,he.eZ)("docusaurus-lunr-search"),c=()=>{t.current||(Promise.all([fetch(`${l}${u.fileNames.searchDoc}`).then((e=>e.json())),fetch(`${l}${u.fileNames.lunrIndex}`).then((e=>e.json())),Promise.all([n.e(878),n.e(245)]).then(n.bind(n,24130)),Promise.all([n.e(532),n.e(343)]).then(n.bind(n,53343))]).then((e=>{let[t,n,{default:r}]=e;0!==t.length&&((e,t,n)=>{new n({searchDocs:e,searchIndex:t,inputSelector:"#search_input_react",handleSelected:(e,t,n)=>{const r=l+n.url;document.createElement("a").href=r,o.push(r)}})})(t,n,r)})),t.current=!0)},d=(0,r.useCallback)((t=>{a.current.contains(t.target)||a.current.focus(),e.handleSearchBarToggle&&e.handleSearchBarToggle(!e.isSearchBarExpanded)}),[e.isSearchBarExpanded]);return r.createElement("div",{className:"navbar__search",key:"search-box"},r.createElement("span",{"aria-label":"expand searchbar",role:"button",className:ve()("search-icon",{"search-icon-hidden":e.isSearchBarExpanded}),onClick:d,onKeyDown:d,tabIndex:0}),r.createElement("input",{id:"search_input_react",type:"search",placeholder:"Press S to Search...","aria-label":"Search",className:ve()("navbar__search-input",{"search-bar-expanded":e.isSearchBarExpanded},{"search-bar":!e.isSearchBarExpanded}),onClick:c,onMouseOver:c,onFocus:d,onBlur:d,ref:a}))},ye={searchBox:"searchBox_ZlJk"};function we(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,ye.searchBox)},t)}var Ee=n(94104),ke=n(52802);const Se=e=>e.docs.find((t=>t.id===e.mainDocId));var xe=n(60373);const _e=e=>e.docs.find((t=>t.id===e.mainDocId));const Ce={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.Z)(),f=(0,fe.l)(),{search:p,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?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[i].label;return r.createElement(de,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(pe,{className:me.iconLanguage}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(we,{className:n},r.createElement(be,null))},dropdown:de,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Ee.Iw)(a),s=(0,ke.vY)(t,a);return null===s?null:r.createElement(ae,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Ee.Iw)(a),s=(0,ke.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(ae,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,ke.lO)(a)[0],s=t??i.label,u=n??Se(i).path;return r.createElement(ae,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:f}=(0,s.TH)(),p=(0,Ee.Iw)(n),m=(0,Ee.gB)(n),{savePreferredVersionName:h}=(0,xe.J)(n),g=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??_e(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],v=(0,ke.lO)(n)[0],b=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"}):v.label,y=t&&g.length>1?void 0:_e(v).path;return g.length<=1?r.createElement(ae,(0,l.Z)({},c,{mobile:t,label:b,to:y,isActive:a?()=>!1:void 0})):r.createElement(de,(0,l.Z)({},c,{mobile:t,label:b,to:y,items:g,isActive:a?()=>!1:void 0}))}};function Te(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Ce[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Le(){const e=(0,N.e)(),t=(0,E.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(Te,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ae(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 Ne(){const e=0===(0,E.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(Ae,{onClick:()=>t.hide()}),t.content)}function Oe(){const e=(0,N.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(Le,null),secondaryMenu:r.createElement(Ne,null)}):null}const Pe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ie(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Re(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,E.L)(),i=(0,N.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,O.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+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:i,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&&[Pe.navbarHideable,!s&&Pe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(Ie,{onClick:i.toggle}),r.createElement(Oe,null))}const De="right";function Me(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Fe(){const{toggle:e,shown:t}=(0,N.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(Me,null))}const Be={colorModeToggle:"colorModeToggle_DEke"};function Ue(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(Te,(0,l.Z)({},e,{key:t})))))}function $e(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 ze(){const e=(0,N.e)(),t=(0,E.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??De)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement($e,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Fe,null),r.createElement(G,null),r.createElement(Ue,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(Ue,{items:a}),r.createElement(V,{className:Be.colorModeToggle}),!o&&r.createElement(we,null,r.createElement(be,null)))})}function je(){return r.createElement(Re,null,r.createElement(ze,null))}function Ze(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,Q.Z)(n),c=(0,Q.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(K.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,X.Z)(a)&&r.createElement(ee.Z,null))}function He(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(Ze,{item:t}))}function Ve(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(He,{key:t,item:e})))))}function We(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(Ve,{key:t,column:e}))))}function Ge(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function qe(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Ze,{item:t})}function Ye(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(qe,{item:e}),t.length!==n+1&&r.createElement(Ge,null))))))}function Ke(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(We,{columns:t}):r.createElement(Ye,{links:t})}var Qe=n(50941);const Xe={footerLogoLink:"footerLogoLink_BH7S"};function Je(e){let{logo:t}=e;const{withBaseUrl:n}=(0,Q.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(Qe.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function et(e){let{logo:t}=e;return t.href?r.createElement(K.Z,{href:t.href,className:Xe.footerLogoLink,target:t.target},r.createElement(Je,{logo:t})):r.createElement(Je,{logo:t})}function tt(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function nt(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function rt(){const{footer:e}=(0,E.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(nt,{style:o,links:n&&n.length>0&&r.createElement(Ke,{links:n}),logo:a&&r.createElement(et,{logo:a}),copyright:t&&r.createElement(tt,{copyright:t})})}const at=r.memo(rt),ot=(0,c.Qc)([B.S,k.pl,O.OC,xe.L5,i.VC,function(e){let{children:t}=e;return r.createElement(P.n2,null,r.createElement(N.M,null,r.createElement(R,null,t)))}]);function it(e){let{children:t}=e;return r.createElement(ot,null,t)}function lt(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("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}const st={mainWrapper:"mainWrapper_z2l0"};function ut(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(it,null,r.createElement(i.d,{title:s,description:u}),r.createElement(w,null),r.createElement(A,null),r.createElement(je,null),r.createElement("div",{id:f,className:(0,a.Z)(v.k.wrapper.main,st.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(lt,e)},t)),!n&&r.createElement(at,null))}},21327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(87462),a=n(67294),o=n(39960),i=n(44996),l=n(52263),s=n(86668),u=n(50941);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,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:f,...p}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},50941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(87462),a=n(67294),o=n(86010),i=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,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},f)))))}},86043:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,z:()=>h});var r=n(87462),a=n(67294),o=n(10412);const i="ease-in-out";function l(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}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){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??i}`,height:`${t}px`}}function l(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return c(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!o.Z.canUseDOM)return e?s:u}function p(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return d({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(c(u.current,n),i?.(n))},className:l},r)}function m(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(p,(0,r.Z)({},n,{collapsed:l})):null}function h(e){let{lazy:t,...n}=e;const r=t?m:p;return a.createElement(r,n)}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(67294),a=n(72389),o=n(50012),i=n(902),l=n(86668);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!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()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(67294),a=n(10412),o=n(902),i=n(50012),l=n(86668);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{c.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(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",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);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:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.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:()=>b,L5:()=>g});var r=n(67294),a=n(94104),o=n(29935),i=n(86668),l=n(52802),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()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(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[o,(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(p.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 v(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function b(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=v(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},72961:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(67294),a=n(13102),o=n(87524),i=n(16550),l=(n(61688),n(902));function s(e){!function(e){const t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(86668);const c=r.createContext(void 0);function d(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,u.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function f(e){let{children:t}=e;const n=d();return r.createElement(c.Provider,{value:n},t)}function p(){const e=r.useContext(c);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(67294),a=n(902);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,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:()=>o});var r=n(67294);const a="navigation-with-keyboard";function o(){(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 o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.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:{}}},52802:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>u,_F:()=>f,cE:()=>s,lO:()=>p,vY:()=>h,oz:()=>m});var r=n(67294),a=n(94104),o=n(60373);function i(e){return Array.from(new Set(e))}var l=n(48596);const s=!!a._r;function u(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=u(t);if(e)return e}}}const c=(e,t)=>void 0!==e&&(0,l.Mg)(e,t),d=(e,t)=>e.some((e=>f(e,t)));function f(e,t){return"link"===e.type?c(e.href,t):"category"===e.type&&(c(e.href,t)||d(e.items,t))}function p(e){const{activeVersion:t}=(0,a.Iw)(e),{preferredVersion:n}=(0,o.J)(e),l=(0,a.yW)(e);return(0,r.useMemo)((()=>i([t,n,l].filter(Boolean))),[t,n,l])}function m(e,t){const n=p(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(", ")}".\n Available sidebar ids are:\n - ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function h(e,t){const n=p(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(`DocNavbarItem: 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- ${i(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(67294),a=n(86010),o=n(35742),i=n(30226);function l(){const e=r.useContext(i._);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:i,children:l}=e;const c=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.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}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(67294);const a=n(10412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.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:()=>r});n(67294),n(723),n(52263);function r(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}},12466:(e,t,n)=>{"use strict";n.d(t,{OC:()=>l,RF:()=>c});var r=n(67294),a=n(10412),o=(n(72389),n(902));const i=r.createContext(void 0);function l(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(i.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(i);if(null==e)throw new o.i6("ScrollControllerProvider");return e}const u=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function c(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=s(),a=(0,r.useRef)(u()),i=(0,o.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();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])}},50012:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(67294),n(61688);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"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,i||(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),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(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=o(t?.persistence);return null===n?l:{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),a({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),a({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),()=>{}}}}}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(52263),a=n(16550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.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}`}}}},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(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},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.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}})},94184:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t{"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:()=>S,q_:()=>A,ob:()=>h,PP:()=>O,Ep:()=>m,Hp:()=>g});var r=n(87462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};function l(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const s=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=l(t),a=l(n);return r!==t||a!==n?e(r,a):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var u=n(38776);function c(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function f(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 p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function m(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 h(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&s(e.state,t.state)}function v(){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 o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}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=h(e,t,f(),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},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,o,i,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,o,i,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)}},32497:(e,t,n)=>{"use strict";n.r(t)},34197:(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 o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(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 o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{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,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(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&&p(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,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(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)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(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 o,i,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=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var m=e[i],h=n[2],g=n[3],v=n[4],b=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var E=null!=h&&null!=m&&m!==h,k="+"===y||"*"===y,S="?"===y||"*"===y,x=n[2]||c,_=v||b;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:S,repeat:k,partial:E,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(x)+"]+?"})}}return i{"use strict";n.d(t,{Z:()=>o});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);S+=k.value.length,k=k.next){var x=k.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(b){if(!(_=o(E,S,e,v))||_.index>=e.length)break;var T=_.index,L=_.index+_[0].length,A=S;for(A+=k.value.length;T>=A;)A+=(k=k.next).value.length;if(S=A-=k.value.length,k.value instanceof a)continue;for(var N=k;N!==t.tail&&(Ad.reach&&(d.reach=R);var D=k.prev;if(P&&(D=s(t,D,P),S+=P.length),u(t,D,C),k=s(t,D,new a(f,g?r.tokenize(O,g):O,y,O)),I&&s(t,k,I),C>1){var M={cause:f+","+m,reach:R};i(e,t,n,k.prev,S,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"+o.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 o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),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"],o=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,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})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(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+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\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:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?: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})),o=/\|?[ \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+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),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=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s=0&&p(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"],o=r.pattern.source;function i(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 o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=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(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];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"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(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 o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\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:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(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--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(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,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[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,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=f.substring(m+p.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(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 o=a},66841:()=>{Prism.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}},33003:(e,t,n)=>{var r={"./prism-lua":66841};function a(e){var t=o(e);return n(t)}function o(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=o,e.exports=a,a.id=33003},92703:(e,t,n)=>{"use strict";var r=n(50414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==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,bigint: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:o,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),o=n(63840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n