浏览代码

Merge branch 'master' into use-server-function

Evan Almloff 1 年之前
父节点
当前提交
7e2ef1260f
共有 81 个文件被更改,包括 483 次插入375 次删除
  1. 4 0
      .github/workflows/docs stable.yml
  2. 4 0
      .github/workflows/docs.yml
  3. 4 0
      .github/workflows/macos.yml
  4. 4 0
      .github/workflows/main.yml
  5. 10 1
      .github/workflows/miri.yml
  6. 21 11
      .github/workflows/playwright.yml
  7. 4 0
      .github/workflows/windows.yml
  8. 1 1
      docs/guide/src/en/__unused/advanced-guides/testing.md
  9. 37 27
      docs/guide/src/en/contributing/walkthrough_readme.md
  10. 2 2
      docs/guide/src/en/fullstack/getting_started.md
  11. 1 1
      docs/guide/src/en/fullstack/server_functions.md
  12. 1 1
      docs/guide/src/en/getting_started/hot_reload.md
  13. 1 1
      docs/guide/src/en/getting_started/web.md
  14. 27 8
      docs/guide/src/en/interactivity/hooks.md
  15. 1 1
      docs/guide/src/pt-br/getting_started/hot_reload.md
  16. 1 1
      docs/router/examples/catch_all.rs
  17. 1 1
      docs/router/examples/catch_all_segments.rs
  18. 1 1
      docs/router/examples/dynamic_route.rs
  19. 1 1
      docs/router/examples/full_example.rs
  20. 1 1
      docs/router/examples/links.rs
  21. 1 1
      docs/router/examples/navigator.rs
  22. 1 1
      docs/router/examples/nested_routes.rs
  23. 3 3
      examples/PWA-example/README.md
  24. 21 6
      examples/file_upload.rs
  25. 1 1
      examples/router.rs
  26. 1 1
      examples/tailwind/README.md
  27. 1 1
      notes/FAQ.md
  28. 0 7
      packages/cli/Cargo.toml
  29. 2 2
      packages/cli/Dioxus.toml
  30. 2 2
      packages/cli/README.md
  31. 4 4
      packages/cli/docs/src/cmd/README.md
  32. 9 9
      packages/cli/docs/src/cmd/build.md
  33. 6 6
      packages/cli/docs/src/cmd/clean.md
  34. 10 10
      packages/cli/docs/src/cmd/serve.md
  35. 7 7
      packages/cli/docs/src/cmd/translate.md
  36. 2 2
      packages/cli/docs/src/configure.md
  37. 4 4
      packages/cli/docs/src/creating.md
  38. 2 2
      packages/cli/docs/src/plugin/README.md
  39. 1 1
      packages/cli/src/assets/dioxus.toml
  40. 2 2
      packages/cli/src/builder.rs
  41. 6 2
      packages/cli/src/cli/autoformat.rs
  42. 1 1
      packages/cli/src/cli/plugin.rs
  43. 2 3
      packages/core/src/create.rs
  44. 10 8
      packages/core/src/diff.rs
  45. 3 102
      packages/core/src/nodes.rs
  46. 1 1
      packages/core/src/scope_arena.rs
  47. 2 2
      packages/core/src/scopes.rs
  48. 3 0
      packages/core/src/virtual_dom.rs
  49. 8 5
      packages/core/tests/task.rs
  50. 42 22
      packages/desktop/src/file_upload.rs
  51. 1 1
      packages/desktop/src/protocol.rs
  52. 1 1
      packages/dioxus-tui/examples/colorpicker.rs
  53. 1 1
      packages/fullstack/examples/axum-auth/src/main.rs
  54. 1 1
      packages/fullstack/examples/axum-hello-world/src/main.rs
  55. 1 1
      packages/fullstack/examples/axum-router/src/main.rs
  56. 1 1
      packages/fullstack/examples/salvo-hello-world/src/main.rs
  57. 1 1
      packages/fullstack/examples/static-hydrated/src/main.rs
  58. 1 1
      packages/fullstack/examples/warp-hello-world/src/main.rs
  59. 1 0
      packages/html/src/elements.rs
  60. 3 4
      packages/html/src/events/form.rs
  61. 1 0
      packages/interpreter/src/common.js
  62. 1 0
      packages/interpreter/src/sledgehammer_bindings.rs
  63. 4 3
      packages/liveview/src/adapters/axum_adapter.rs
  64. 4 6
      packages/liveview/src/adapters/salvo_adapter.rs
  65. 3 6
      packages/liveview/src/adapters/warp_adapter.rs
  66. 15 11
      packages/liveview/src/pool.rs
  67. 12 4
      packages/rink/src/widgets/button.rs
  68. 15 5
      packages/rink/src/widgets/checkbox.rs
  69. 3 1
      packages/rink/src/widgets/input.rs
  70. 15 5
      packages/rink/src/widgets/slider.rs
  71. 18 6
      packages/rink/src/widgets/text_like.rs
  72. 9 9
      packages/router-macro/src/lib.rs
  73. 3 3
      packages/router-macro/src/route.rs
  74. 2 2
      packages/router-macro/src/segment.rs
  75. 1 7
      packages/signals/src/lib.rs
  76. 1 1
      packages/web/src/rehydrate.rs
  77. 1 1
      playwright-tests/fullstack/src/main.rs
  78. 10 10
      playwright-tests/package-lock.json
  79. 1 1
      playwright-tests/package.json
  80. 62 0
      playwright-tests/playwright-report/index.html
  81. 5 5
      playwright-tests/playwright.config.js

+ 4 - 0
.github/workflows/docs stable.yml

@@ -3,6 +3,10 @@ name: docs stable
 on:
   workflow_dispatch:
 
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
+
 jobs:
   build-deploy:
     runs-on: ubuntu-latest

+ 4 - 0
.github/workflows/docs.yml

@@ -8,6 +8,10 @@ on:
     branches:
       - master
 
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
+
 jobs:
   build-deploy:
     runs-on: ubuntu-latest

+ 4 - 0
.github/workflows/macos.yml

@@ -24,6 +24,10 @@ on:
       - lib.rs
       - Cargo.toml
 
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
+
 jobs:
   test:
     if: github.event.pull_request.draft == false

+ 4 - 0
.github/workflows/main.yml

@@ -27,6 +27,10 @@ on:
       - lib.rs
       - Cargo.toml
 
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
+
 jobs:
   check:
     if: github.event.pull_request.draft == false

+ 10 - 1
.github/workflows/miri.yml

@@ -6,6 +6,13 @@ on:
     branches:
       - 'auto'
       - 'try'
+    paths:
+      - packages/**
+      - examples/**
+      - src/**
+      - .github/**
+      - lib.rs
+      - Cargo.toml
   pull_request:
     types: [opened, synchronize, reopened, ready_for_review]
     branches:
@@ -31,7 +38,9 @@ env:
   # - tokio-stream/Cargo.toml
   # rust_min: 1.49.0
 
-
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
 
 jobs:
   test:

+ 21 - 11
.github/workflows/playwright.yml

@@ -4,22 +4,25 @@ on:
     branches: [ main, master ]
   pull_request:
     branches: [ main, master ]
+defaults:
+  run:
+    working-directory: ./playwright-tests
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
+
 jobs:
   test:
     if: github.event.pull_request.draft == false
     timeout-minutes: 60
     runs-on: ubuntu-20.04
     steps:
+    # Do our best to cache the toolchain and node install steps
     - uses: actions/checkout@v3
     - uses: actions/setup-node@v3
       with:
         node-version: 16
-    - name: Install dependencies
-      run: npm ci
-    - name: Install Playwright
-      run: npm install -D @playwright/test
-    - name: Install Playwright Browsers
-      run: npx playwright install --with-deps
     - name: Install Rust
       uses: actions-rs/toolchain@v1
       with:
@@ -29,11 +32,18 @@ jobs:
     - uses: Swatinem/rust-cache@v2
     - name: Install WASM toolchain
       run: rustup target add wasm32-unknown-unknown
-    - name: Install Dioxus CLI
-      uses: actions-rs/cargo@v1
-      with:
-        command: install
-        args: --path packages/cli
+    - name: Install dependencies
+      run: npm ci
+    - name: Install Playwright
+      run: npm install -D @playwright/test
+    - name: Install Playwright Browsers
+      run: npx playwright install --with-deps
+    #  Cache the CLI by using cargo run internally
+    # - name: Install Dioxus CLI
+    #   uses: actions-rs/cargo@v1
+    #   with:
+    #     command: install
+    #     args: --path packages/cli
     - name: Run Playwright tests
       run: npx playwright test
     - uses: actions/upload-artifact@v3

+ 4 - 0
.github/workflows/windows.yml

@@ -24,6 +24,10 @@ on:
       - lib.rs
       - Cargo.toml
 
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
+
 jobs:
   test:
     if: github.event.pull_request.draft == false

+ 1 - 1
docs/guide/src/en/__unused/advanced-guides/testing.md

@@ -21,7 +21,7 @@ fn runs_in_browser() {
 Then, when you run
 
 ```console
-dioxus test --chrome
+dx test --chrome
 ```
 
 Dioxus will build and test your code using the Chrome browser as a harness.

+ 37 - 27
docs/guide/src/en/contributing/walkthrough_readme.md

@@ -14,13 +14,13 @@ We start will a hello world program. This program renders a desktop app with the
 
 ## The rsx! Macro
 
-Before the Rust compiler runs the program, it will expand all macros. Here is what the hello world example looks like expanded:
+Before the Rust compiler runs the program, it will expand all [macros](https://doc.rust-lang.org/reference/procedural-macros.html). Here is what the hello world example looks like expanded:
 
 ```rust, no_run
 {{#include ../../../examples/readme_expanded.rs}}
 ```
 
-The rsx macro separates the static parts of the rsx (the template) and the dynamic parts (the dynamic_nodes and dynamic_attributes).
+The rsx macro separates the static parts of the rsx (the template) and the dynamic parts (the [dynamic_nodes](https://docs.rs/dioxus-core/0.3.2/dioxus_core/prelude/struct.VNode.html#structfield.dynamic_nodes) and [dynamic_attributes](https://docs.rs/dioxus-core/0.3.2/dioxus_core/prelude/struct.VNode.html#structfield.dynamic_attrs)).
 
 The static template only contains the parts of the rsx that cannot change at runtime with holes for the dynamic parts:
 
@@ -32,17 +32,17 @@ The dynamic_nodes and dynamic_attributes are the parts of the rsx that can chang
 
 ## Launching the App
 
-The app is launched by calling the `launch` function with the root component. Internally, this function will create a new web view using [wry](https://docs.rs/wry/latest/wry/) and create a virtual dom with the root component. This guide will not explain the renderer in-depth, but you can read more about it in the [custom renderer](/guide/custom-renderer) section.
+The app is launched by calling the `launch` function with the root component. Internally, this function will create a new web view using [wry](https://docs.rs/wry/latest/wry/) and create a virtual dom with the root component (`fn app()` in the readme example). This guide will not explain the renderer in-depth, but you can read more about it in the [custom renderer](/guide/custom-renderer) section.
 
 ## The Virtual DOM
 
-Before we dive into the initial render in the virtual dom, we need to discuss what the virtual dom is. The virtual dom is a representation of the dom that is used to diff the current dom from the new dom. This diff is then used to create a list of mutations that need to be applied to the dom.
+Before we dive into the initial render in the virtual DOM, we need to discuss what the virtual DOM is. The virtual DOM is a representation of the DOM that is used to diff the current DOM from the new DOM. This diff is then used to create a list of mutations that need to be applied to the DOM to bring it into sync with the virtual DOM.
 
-The Virtual Dom roughly looks like this:
+The Virtual DOM roughly looks like this:
 
 ```rust, no_run
 pub struct VirtualDom {
-    // All the templates that have been created or set durring hot reloading
+    // All the templates that have been created or set during hot reloading
     pub(crate) templates: FxHashMap<TemplateId, FxHashMap<usize, Template<'static>>>,
 
     // A slab of all the scopes that have been created
@@ -63,64 +63,74 @@ pub struct VirtualDom {
 ```
 
 > What is a [slab](https://docs.rs/slab/latest/slab/)?
+>
 > A slab acts like a hashmap with integer keys if you don't care about the value of the keys. It is internally backed by a dense vector which makes it more efficient than a hashmap. When you insert a value into a slab, it returns an integer key that you can use to retrieve the value later.
 
 > How does Dioxus use slabs?
-> Dioxus uses "synchronized slabs" to communicate between the renderer and the VDOM. When an node is created in the Virtual Dom, a ElementId is passed along with the mutation to the renderer to identify the node. These ids are used by the Virtual Dom to reference that nodes in future mutations like setting an attribute on a node or removing a node.
-> When the renderer sends an event to the Virtual Dom, it sends the ElementId of the node that the event was triggered on. The Virtual Dom uses this id to find the node in the slab and then run the necessary event handlers.
+>
+> Dioxus uses "synchronized slabs" to communicate between the renderer and the VDOM. When a node is created in the Virtual DOM, an (elementId, mutation) pair is passed to the renderer to identify that node, which the renderer will then render in actual DOM. These ids are also used by the Virtual Dom to reference that node in future mutations, like setting an attribute on a node or removing a node. When the renderer sends an event to the Virtual Dom, it sends the ElementId of the node that the event was triggered on. The Virtual DOM uses this id to find that node in the slab and then run the necessary event handlers.
 
-The virtual dom is a tree of scopes. A new scope is created for every component when it is first rendered and recycled when the component is unmounted.
+The virtual DOM is a tree of scopes. A new `Scope` is created for every component when it is first rendered and recycled when the component is unmounted.
 
 Scopes serve three main purposes:
 
 1. They store the state of hooks used by the component
-2. They store the state for the context API
-3. They store the current and previous VNode that was rendered for diffing
+2. They store the state for the context API (for example: using
+   [use_shared_state_provider](https://docs.rs/dioxus/latest/dioxus/prelude/fn.use_shared_state_provider.html)).
+3. They store the current and previous versions of the `VNode` that was rendered, so they can be
+   diffed to generate the set of mutations needed to re-render it.
 
 ### The Initial Render
 
 The root scope is created and rebuilt:
 
 1. The root component is run
-2. The root component returns a VNode
-3. Mutations for the VNode are created and added to the mutation list (this may involve creating new child components)
-4. The VNode is stored in the root scope
+2. The root component returns a `VNode`
+3. Mutations for this `VNode` are created and added to the mutation list (this may involve creating new child components)
+4. The `VNode` is stored in the root's `Scope`.
 
-After the root scope is built, the mutations are sent to the renderer to be applied to the dom.
+After the root's `Scope` is built, all generated mutations are sent to the renderer, which applies them to the DOM.
 
-After the initial render, the root scope looks like this:
+After the initial render, the root `Scope` looks like this:
 
 [![](https://mermaid.ink/img/pako:eNqtVE1P4zAQ_SuzPrWikRpWXCLtBRDisItWsOxhCaqM7RKricdyJrQV8N93QtvQNCkfEnOynydv3nxkHoVCbUQipjnOVSYDwc_L1AFbWd3dB-kzuEQkuFLoDUwDFkCZAek9nGDh0RlHK__atA1GkUUHf45f0YbppAqB_aOzIAvz-t7-chN_Y-1bw1WSJKsglIu2w9tktWXxIIuHURT5XCqTYa5NmDguw2R8c5MKq2GcgF46WTB_jafi9rZL0yi5q4jQTSrf9altO4okCn1Ratwyz55Qxuku2ITlTMgs6HCQimsPmb3PvqVi-L5gjXP3QcnxWnL8JZLrwGvR31n0KV-Bx6-r-oVkT_-3G1S-NQLbk9i8rj7udP2cixed2QcDCitHJiQw7ub3EVlNecrPjudG2-6soFO5VbMECmR9T5OnlUY4-AFxfw9aTFst3McU9TK1Otm6NEn_DubBYlX2_dglLXOz48FgwJmJ5lZTlhz6xWgNaFnyDgpymcARHO0W2a9J_l5w2wYXvHuGPcqaQ-rESBQmFNJq3nCPNZoK3l4sUSR81DLMUpG6Z_aTFeHV0imRUKjMSFReSzKnVnKGhUimMi8ZNdoShl-rlfmyOUfCS_cPcePz_B_Wl4pc?type=png)](https://mermaid.live/edit#pako:eNqtVE1P4zAQ_SuzPrWikRpWXCLtBRDisItWsOxhCaqM7RKricdyJrQV8N93QtvQNCkfEnOynydv3nxkHoVCbUQipjnOVSYDwc_L1AFbWd3dB-kzuEQkuFLoDUwDFkCZAek9nGDh0RlHK__atA1GkUUHf45f0YbppAqB_aOzIAvz-t7-chN_Y-1bw1WSJKsglIu2w9tktWXxIIuHURT5XCqTYa5NmDguw2R8c5MKq2GcgF46WTB_jafi9rZL0yi5q4jQTSrf9altO4okCn1Ratwyz55Qxuku2ITlTMgs6HCQimsPmb3PvqVi-L5gjXP3QcnxWnL8JZLrwGvR31n0KV-Bx6-r-oVkT_-3G1S-NQLbk9i8rj7udP2cixed2QcDCitHJiQw7ub3EVlNecrPjudG2-6soFO5VbMECmR9T5OnlUY4-AFxfw9aTFst3McU9TK1Otm6NEn_DubBYlX2_dglLXOz48FgwJmJ5lZTlhz6xWgNaFnyDgpymcARHO0W2a9J_l5w2wYXvHuGPcqaQ-rESBQmFNJq3nCPNZoK3l4sUSR81DLMUpG6Z_aTFeHV0imRUKjMSFReSzKnVnKGhUimMi8ZNdoShl-rlfmyOUfCS_cPcePz_B_Wl4pc)
 
 ### Waiting for Events
 
-The Virtual Dom will only ever rerender a scope if it is marked as dirty. Each hook is responsible for marking the scope as dirty if the state has changed. Hooks can mark a scope as dirty by sending a message to the Virtual Dom's channel.
+The Virtual DOM will only ever re-render a `Scope` if it is marked as dirty. Each hook is responsible for marking the `Scope` as dirty if the state has changed. Hooks can mark a scope as dirty by sending a message to the Virtual Dom's channel. You can see the [implementations](https://github.com/DioxusLabs/dioxus/tree/master/packages/hooks) for the hooks dioxus includes by default on how this is done. Calling `needs_update()` on a hook will also cause it to mark its scope as dirty.
 
 There are generally two ways a scope is marked as dirty:
 
-1. The renderer triggers an event: This causes an event listener to be called if needed which may mark a component as dirty
-2. The renderer calls wait for work: This polls futures which may mark a component as dirty
+1. The renderer triggers an event: An event listener on this event may be called, which may mark a
+   component as dirty, if processing the event resulted in any generated any mutations.
+2. The renderer calls
+   [`wait_for_work`](https://docs.rs/dioxus/latest/dioxus/prelude/struct.VirtualDom.html#method.wait_for_work):
+   This polls dioxus internal future queue. One of these futures may mark a component as dirty.
 
-Once at least one scope is marked as dirty, the renderer can call `render_with_deadline` to diff the dirty scopes.
+Once at least one `Scope` is marked as dirty, the renderer can call [`render_with_deadline`](https://docs.rs/dioxus/latest/dioxus/prelude/struct.VirtualDom.html#method.render_with_deadline) to diff the dirty scopes.
 
 ### Diffing Scopes
 
-If the user clicked the "up high" button, the root scope would be marked as dirty by the use_state hook. Once the desktop renderer calls `render_with_deadline`, the root scope would be diffed.
+When a user clicks the "up high" button, the root `Scope` will be marked as dirty by the `use_state` hook. The desktop renderer will then call `render_with_deadline`, which will diff the root `Scope`.
 
-To start the diffing process, the component is run. After the root component is run it will look like this:
+To start the diffing process, the component function is run. After the root component is run it, the root `Scope` will look like this:
 
 [![](https://mermaid.ink/img/pako:eNrFVlFP2zAQ_iuen0BrpCaIl0i8AEJ72KQJtpcRFBnbJVYTn-U4tBXw33dpG5M2CetoBfdkny_ffb67fPIT5SAkjekkhxnPmHXk-3WiCVpZ3T9YZjJyDeDIDQcjycRCQVwmCTOGXEBhQEvtVvG1CWUldwo0-XX-6vVIF5W1GB9cWVbI1_PNL5v8jW3uPFbpmFOc2HK-GfA2WG1ZeJSFx0EQmJxxmUEupE01liEd394mVAkyjolYaFYgfu1P6N1dF8Yzua-cA51WphtTWzsLc872Zan9CnEGUkktuk6fFm_i5NxFRwn9bUimHrIvCT3-N2EBM70j5XBNOTwI5TrxmvQJkr7ELcHx67Jeggz0v92g8q0RaE-iP1193On6NyxecKUeJeFQaSdtTMLu_Xah5ctT_u94Nty2ZwU0zxWfxqQA5PecPq84kq9nfRw7SK0WDiEFZ4O37d34S_-08lFBVfb92KVb5HIrAp0WpjKYKeGyODLz0dohWIkaZNkiJqfkdLvIH6oRaTSoEmm0n06k0a5K0ZdpL61Io0Yt0nfpxc7UQ0_9cJrhyZ8syX-6brS706Mc489Vjja7fbWj3cxDqIdfJJqOaCFtwZTAV8hT7U0ovjBQRmiMS8HsNKGJfsE4Vjm4WWhOY2crOaKVEczJS8WwgAWNJywv0SuFcmB_rJ41y9fNiBqm_wA0MS9_AUuAiy0?type=png)](https://mermaid.live/edit#pako:eNrFVlFP2zAQ_iuen0BrpCaIl0i8AEJ72KQJtpcRFBnbJVYTn-U4tBXw33dpG5M2CetoBfdkny_ffb67fPIT5SAkjekkhxnPmHXk-3WiCVpZ3T9YZjJyDeDIDQcjycRCQVwmCTOGXEBhQEvtVvG1CWUldwo0-XX-6vVIF5W1GB9cWVbI1_PNL5v8jW3uPFbpmFOc2HK-GfA2WG1ZeJSFx0EQmJxxmUEupE01liEd394mVAkyjolYaFYgfu1P6N1dF8Yzua-cA51WphtTWzsLc872Zan9CnEGUkktuk6fFm_i5NxFRwn9bUimHrIvCT3-N2EBM70j5XBNOTwI5TrxmvQJkr7ELcHx67Jeggz0v92g8q0RaE-iP1193On6NyxecKUeJeFQaSdtTMLu_Xah5ctT_u94Nty2ZwU0zxWfxqQA5PecPq84kq9nfRw7SK0WDiEFZ4O37d34S_-08lFBVfb92KVb5HIrAp0WpjKYKeGyODLz0dohWIkaZNkiJqfkdLvIH6oRaTSoEmm0n06k0a5K0ZdpL61Io0Yt0nfpxc7UQ0_9cJrhyZ8syX-6brS706Mc489Vjja7fbWj3cxDqIdfJJqOaCFtwZTAV8hT7U0ovjBQRmiMS8HsNKGJfsE4Vjm4WWhOY2crOaKVEczJS8WwgAWNJywv0SuFcmB_rJ41y9fNiBqm_wA0MS9_AUuAiy0)
 
-Next, the Virtual Dom will compare the new VNode with the previous VNode and only update the parts of the tree that have changed.
-
-When a component is re-rendered, the Virtual Dom will compare the new VNode with the previous VNode and only update the parts of the tree that have changed.
+Next, the Virtual DOM will compare the new VNode with the previous VNode and only update the parts of the tree that have changed. Because of this approach, when a component is re-rendered only the parts of the tree that have changed will be updated in the DOM by the renderer.
 
 The diffing algorithm goes through the list of dynamic attributes and nodes and compares them to the previous VNode. If the attribute or node has changed, a mutation that describes the change is added to the mutation list.
 
-Here is what the diffing algorithm looks like for the root scope (red lines indicate that a mutation was generated, and green lines indicate that no mutation was generated)
+Here is what the diffing algorithm looks like for the root `Scope` (red lines indicate that a mutation was generated, and green lines indicate that no mutation was generated)
 
 [![](https://mermaid.ink/img/pako:eNrFlFFPwjAQx7_KpT7Kko2Elya8qCE-aGLAJ5khpe1Yw9Zbug4k4He3OJjbGPig0T5t17tf_nf777aEo5CEkijBNY-ZsfAwDjW4kxfzhWFZDGNECxOOmYTIYAo2lsCyDG4xzVBLbcv8_RHKSG4V6orSIN0Wxrh8b2RYKr_uTyubd1W92GiWKg7aac6bOU3G803HbVk82xfP_Ok0JEqAT-FeLWJvpFYSOBbaSkMhCMnra5MgtfhWFrPWqHlhL2urT6atbU-oa0PNE8WXFFJ0-nazXakRroddGk9IwYEUnCd5w7Pddr5UTT8ZuVJY5F0fM7ebRLYyXNDgUnprJWxM-9lb7xAQLHe-M2xDYQCD9pD_2hez_kVn-P_rjLq6n3qjYv2iO5qz9DyvPdyv1ETp5eTTJ_7BGvQq8v1TVtl5jXUcRRcrqFh-dI4VtFlBN6t_ynLNkh5JpUmZEm5rbvfhkLiN6H4BQt2jYGYZklC_uzxWWJxsNCfUmkL2SJEJZuWdYs4cKaERS3IXlUJZNI_lGv7cxj2SMf2CeMx5_wBcbK19?type=png)](https://mermaid.live/edit#pako:eNrFlFFPwjAQx7_KpT7Kko2Elya8qCE-aGLAJ5khpe1Yw9Zbug4k4He3OJjbGPig0T5t17tf_nf777aEo5CEkijBNY-ZsfAwDjW4kxfzhWFZDGNECxOOmYTIYAo2lsCyDG4xzVBLbcv8_RHKSG4V6orSIN0Wxrh8b2RYKr_uTyubd1W92GiWKg7aac6bOU3G803HbVk82xfP_Ok0JEqAT-FeLWJvpFYSOBbaSkMhCMnra5MgtfhWFrPWqHlhL2urT6atbU-oa0PNE8WXFFJ0-nazXakRroddGk9IwYEUnCd5w7Pddr5UTT8ZuVJY5F0fM7ebRLYyXNDgUnprJWxM-9lb7xAQLHe-M2xDYQCD9pD_2hez_kVn-P_rjLq6n3qjYv2iO5qz9DyvPdyv1ETp5eTTJ_7BGvQq8v1TVtl5jXUcRRcrqFh-dI4VtFlBN6t_ynLNkh5JpUmZEm5rbvfhkLiN6H4BQt2jYGYZklC_uzxWWJxsNCfUmkL2SJEJZuWdYs4cKaERS3IXlUJZNI_lGv7cxj2SMf2CeMx5_wBcbK19)
 
 ## Conclusion
 
-This is only a brief overview of how the Virtual Dom works. There are several aspects not yet covered in this guide including how the Virtual Dom handles async-components, keyed diffing, and how it uses [bump allocation](https://github.com/fitzgen/bumpalo) to efficiently allocate VNodes. If need more information about the Virtual Dom, you can read the code of the [core](https://github.com/DioxusLabs/dioxus/tree/master/packages/core) crate or reach out to us on [Discord](https://discord.gg/XgGxMSkvUM).
+This is only a brief overview of how the Virtual Dom works. There are several aspects not yet covered in this guide including:
+
+ * How the Virtual DOM handles async-components
+ * Keyed diffing
+ * Using [bump allocation](https://github.com/fitzgen/bumpalo) to efficiently allocate VNodes.
+
+If you need more information about the Virtual Dom, you can read the code of the [core](https://github.com/DioxusLabs/dioxus/tree/master/packages/core) crate or reach out to us on [Discord](https://discord.gg/XgGxMSkvUM).

+ 2 - 2
docs/guide/src/en/fullstack/getting_started.md

@@ -76,7 +76,7 @@ Next, we need to modify our `main.rs` to use either hydrate on the client or ren
 {{#include ../../../examples/hydration.rs}}
 ```
 
-Now, build your client-side bundle with `dioxus build --features web` and run your server with `cargo run --features ssr`. You should see the same page as before, but now you can interact with the buttons!
+Now, build your client-side bundle with `dx build --features web` and run your server with `cargo run --features ssr`. You should see the same page as before, but now you can interact with the buttons!
 
 ## Sycronizing props between the server and client
 
@@ -99,4 +99,4 @@ The only thing we need to change on the client is the props. `dioxus-fullstack`
 {{#include ../../../examples/hydration_props.rs}}
 ```
 
-Now, build your client-side bundle with `dioxus build --features web` and run your server with `cargo run --features ssr`. Navigate to `http://localhost:8080/1` and you should see the counter start at 1. Navigate to `http://localhost:8080/2` and you should see the counter start at 2.
+Now, build your client-side bundle with `dx build --features web` and run your server with `cargo run --features ssr`. Navigate to `http://localhost:8080/1` and you should see the counter start at 1. Navigate to `http://localhost:8080/2` and you should see the counter start at 2.

+ 1 - 1
docs/guide/src/en/fullstack/server_functions.md

@@ -24,7 +24,7 @@ Next, add the server function to your `main.rs`:
 {{#include ../../../examples/server_function.rs}}
 ```
 
-Now, build your client-side bundle with `dioxus build --features web` and run your server with `cargo run --features ssr`. You should see a new button that multiplies the count by 2.
+Now, build your client-side bundle with `dx build --features web` and run your server with `cargo run --features ssr`. You should see a new button that multiplies the count by 2.
 
 ## Conclusion
 

+ 1 - 1
docs/guide/src/en/getting_started/hot_reload.md

@@ -18,7 +18,7 @@ Hot reloading is automatically enabled when using the web renderer on debug buil
 1. Run:
 
 ```bash
-dioxus serve --hot-reload
+dx serve --hot-reload
 ```
 
 2. Change some code within a rsx or render macro

+ 1 - 1
docs/guide/src/en/getting_started/web.md

@@ -59,5 +59,5 @@ Edit your `main.rs`:
 And to serve our app:
 
 ```bash
-dioxus serve
+dx serve
 ```

+ 27 - 8
docs/guide/src/en/interactivity/hooks.md

@@ -2,15 +2,16 @@
 
 So far our components have had no state like a normal rust functions. However, in a UI component, it is often useful to have stateful functionality to build user interactions. For example, you might want to track whether the user has opened a drop-down, and render different things accordingly.
 
-Hooks allow us to create state in our components. Hooks are Rust functions that take a reference to `ScopeState` (in a component, you can pass `cx`), and provide you with functionality and state.
+Hooks allow us to create state in our components. Hooks are Rust functions that take a reference to [`ScopeState`](https://docs.rs/dioxus/latest/dioxus/prelude/struct.ScopeState.html) (in a component, you can pass `cx`), and provide you with functionality and state.
 
 ## `use_state` Hook
 
 [`use_state`](https://docs.rs/dioxus/latest/dioxus/prelude/fn.use_state.html) is one of the simplest hooks.
 
-- You provide a closure that determines the initial value
+- You provide a closure that determines the initial value: `let mut count = use_state(cx, || 0);`
 - `use_state` gives you the current value, and a way to update it by setting it to something else
-- When the value updates, `use_state` makes the component re-render, and provides you with the new value
+- When the value updates, `use_state` makes the component re-render (along with any other component
+  that references it), and then provides you with the new value.
 
 For example, you might have seen the counter example, in which state (a number) is tracked using the `use_state` hook:
 
@@ -45,10 +46,11 @@ But how can Dioxus differentiate between multiple hooks in the same component? A
 This is only possible because the two hooks are always called in the same order, so Dioxus knows which is which. Because the order you call hooks matters, you must follow certain rules when using hooks:
 
 1. Hooks may be only used in components or other hooks (we'll get to that later)
-2. On every call to the component function
+2. On every call to a component function
    1. The same hooks must be called (except in the case of early returns, as explained later in the [Error Handling chapter](../best_practices/error_handling.md))
    2. In the same order
-3. Hooks name's should start with `use_` so you don't accidentally confuse them with regular functions
+3. Hook names should start with `use_` so you don't accidentally confuse them with regular
+   functions (`use_state()`, `use_ref()`, `use_future()`, etc...)
 
 These rules mean that there are certain things you can't do with hooks:
 
@@ -74,9 +76,12 @@ These rules mean that there are certain things you can't do with hooks:
 
 `use_state` is great for tracking simple values. However, you may notice in the [`UseState` API](https://docs.rs/dioxus/latest/dioxus/hooks/struct.UseState.html) that the only way to modify its value is to replace it with something else (e.g., by calling `set`, or through one of the `+=`, `-=` operators). This works well when it is cheap to construct a value (such as any primitive). But what if you want to maintain more complex data in the components state?
 
-For example, suppose we want to maintain a `Vec` of values. If we stored it with `use_state`, the only way to add a new value to the list would be to create a new `Vec` with the additional value, and put it in the state. This is expensive! We want to modify the existing `Vec` instead.
+For example, suppose we want to maintain a `Vec` of values. If we stored it with `use_state`, the
+only way to add a new value to the list would be to copy the existing `Vec`, add our value to it,
+and then replace the existing `Vec` in the state with it. This is expensive! We want to modify the
+existing `Vec` instead.
 
-Thankfully, there is another hook for that, `use_ref`! It is similar to `use_state`, but it lets you get a mutable reference to the contained data.
+Thankfully, there is another hook for that, `use_ref`! It **is** similar to `use_state`, but it lets you get a mutable reference to the contained data.
 
 Here's a simple example that keeps a list of events in a `use_ref`. We can acquire write access to the state with `.with_mut()`, and then just `.push` a new value to the state:
 
@@ -84,4 +89,18 @@ Here's a simple example that keeps a list of events in a `use_ref`. We can acqui
 {{#include ../../../examples/hooks_use_ref.rs:component}}
 ```
 
-> The return values of `use_state` and `use_ref` (`UseState` and `UseRef`, respectively) are in some ways similar to [`Cell`](https://doc.rust-lang.org/std/cell/) and [`RefCell`](https://doc.rust-lang.org/std/cell/struct.RefCell.html) – they provide interior mutability. However, these Dioxus wrappers also ensure that the component gets re-rendered whenever you change the state.
+> The return values of `use_state` and `use_ref` (
+> [`UseState`](https://docs.rs/dioxus/latest/dioxus/prelude/struct.UseState.html) and
+> [`UseRef`](https://docs.rs/dioxus/latest/dioxus/prelude/struct.UseRef.html), respectively) are in
+> some ways similar to [`Cell`](https://doc.rust-lang.org/std/cell/) and
+> [`RefCell`](https://doc.rust-lang.org/std/cell/struct.RefCell.html) – they provide interior
+> mutability. However, these Dioxus wrappers also ensure that the component gets re-rendered
+> whenever you change the state.
+
+
+## Additional Resources
+
+- [**dioxus_hooks** ](https://docs.rs/dioxus-hooks/latest/dioxus_hooks/) rustdoc
+  - Documents all hook types included with dioxus by default Most of these are also covered in
+  later chapters of this guide.
+- [Hooks Package](https://github.com/DioxusLabs/dioxus/tree/master/packages/hooks)

+ 1 - 1
docs/guide/src/pt-br/getting_started/hot_reload.md

@@ -18,7 +18,7 @@ dioxus = { version = "*", features = ["hot-reload"] }
 1. Execute:
 
 ```
-dioxus serve --hot-reload
+dx serve --hot-reload
 ```
 
 2. alterar algum código dentro de uma macro `rsx`

+ 1 - 1
docs/router/examples/catch_all.rs

@@ -8,7 +8,7 @@ enum Route {
     #[route("/")]
     Home {},
     // PageNotFound is a catch all route that will match any route and placing the matched segments in the route field
-    #[route("/:...route")]
+    #[route("/:..route")]
     PageNotFound { route: Vec<String> },
 }
 // ANCHOR_END: router

+ 1 - 1
docs/router/examples/catch_all_segments.rs

@@ -7,7 +7,7 @@ use dioxus_router::prelude::*;
 #[rustfmt::skip]
 enum Route {
     // segments that start with :... are catch all segments
-    #[route("/blog/:...segments")]
+    #[route("/blog/:..segments")]
     BlogPost {
         // You must include catch all segment in child variants
         segments: Vec<String>,

+ 1 - 1
docs/router/examples/dynamic_route.rs

@@ -26,7 +26,7 @@ enum Route {
             #[end_layout]
         #[end_nest]
     #[end_layout]
-    #[route("/:...route")]
+    #[route("/:..route")]
     PageNotFound {
         route: Vec<String>,
     },

+ 1 - 1
docs/router/examples/full_example.rs

@@ -30,7 +30,7 @@ enum Route {
         #[redirect("/", || Route::BlogList {})]
         #[redirect("/:name", |name: String| Route::BlogPost { name })]
     #[end_nest]
-    #[route("/:...route")]
+    #[route("/:..route")]
     PageNotFound {
         route: Vec<String>,
     },

+ 1 - 1
docs/router/examples/links.rs

@@ -11,7 +11,7 @@ enum Route {
         #[route("/")]
         Home {},
     #[end_layout]
-    #[route("/:...route")]
+    #[route("/:..route")]
     PageNotFound { route: Vec<String> },
 }
 // ANCHOR_END: router

+ 1 - 1
docs/router/examples/navigator.rs

@@ -7,7 +7,7 @@ use dioxus_router::prelude::*;
 enum Route {
     #[route("/")]
     Home {},
-    #[route("/:...route")]
+    #[route("/:..route")]
     PageNotFound { route: Vec<String> },
 }
 

+ 1 - 1
docs/router/examples/nested_routes.rs

@@ -11,7 +11,7 @@ enum Route {
         #[route("/")]
         Home {},
     #[end_layout]
-    #[route("/:...route")]
+    #[route("/:..route")]
     PageNotFound { route: Vec<String> },
 }
 // ANCHOR_END: router

+ 3 - 3
examples/PWA-example/README.md

@@ -9,8 +9,8 @@ It is also very much usable as a template for your projects, if you're aiming to
 
 Make sure you have Dioxus CLI installed (if you're unsure, run `cargo install dioxus-cli`).
 
-You can run `dioxus serve` in this directory to start the web server locally, or run
-`dioxus build --release` to build the project so you can deploy it on a separate web-server.
+You can run `dx serve` in this directory to start the web server locally, or run
+`dx build --release` to build the project so you can deploy it on a separate web-server.
 
 ## Project Structure
 ```
@@ -41,4 +41,4 @@ For service worker scripting (in JavaScript):
 * [Service worker guide from PWABuilder](https://docs.pwabuilder.com/#/home/sw-intro)
 * [Service worker examples, also from PWABuilder](https://github.com/pwa-builder/pwabuilder-serviceworkers)
 
-If you want to stay as close to 100% Rust as possible, you can try using [wasi-worker](https://github.com/dunnock/wasi-worker) to replace the JS service worker file. The JSON manifest will still be required though.
+If you want to stay as close to 100% Rust as possible, you can try using [wasi-worker](https://github.com/dunnock/wasi-worker) to replace the JS service worker file. The JSON manifest will still be required though.

+ 21 - 6
examples/file_upload.rs

@@ -1,32 +1,47 @@
 #![allow(non_snake_case)]
 use dioxus::prelude::*;
+use tokio::time::sleep;
 
 fn main() {
     dioxus_desktop::launch(App);
 }
 
 fn App(cx: Scope) -> Element {
+    let enable_directory_upload = use_state(cx, || false);
     let files_uploaded: &UseRef<Vec<String>> = use_ref(cx, Vec::new);
 
     cx.render(rsx! {
+        label {
+            input {
+                r#type: "checkbox",
+                checked: "{enable_directory_upload}",
+                oninput: move |evt| {
+                    enable_directory_upload.set(evt.value.parse().unwrap());
+                },
+            },
+            "Enable directory upload"
+        }
+
         input {
             r#type: "file",
-            accept: ".txt, .rs",
+            accept: ".txt,.rs",
             multiple: true,
+            directory: **enable_directory_upload,
             onchange: |evt| {
                 to_owned![files_uploaded];
                 async move {
                     if let Some(file_engine) = &evt.files {
                         let files = file_engine.files();
-                        for file_name in &files {
-                            if let Some(file) = file_engine.read_file_to_string(file_name).await{
-                                files_uploaded.write().push(file);
-                            }
+                        for file_name in files {
+                            sleep(std::time::Duration::from_secs(1)).await;
+                            files_uploaded.write().push(file_name);
                         }
                     }
                 }
             },
-        }
+        },
+
+        div { "progress: {files_uploaded.read().len()}" },
 
         ul {
             for file in files_uploaded.read().iter() {

+ 1 - 1
examples/router.rs

@@ -30,7 +30,7 @@ enum Route {
         #[redirect("/", || Route::BlogList {})]
         #[redirect("/:name", |name: String| Route::BlogPost { name })]
     #[end_nest]
-    #[route("/:...route")]
+    #[route("/:..route")]
     PageNotFound {
         route: Vec<String>,
     },

+ 1 - 1
examples/tailwind/README.md

@@ -122,7 +122,7 @@ npx tailwindcss -i ./input.css -o ./public/tailwind.css --watch
 - Run the following command in the root of the project to start the dioxus dev server:
 
 ```bash
-dioxus serve --hot-reload
+dx serve --hot-reload
 ```
 
 - Open the browser to http://localhost:8080

+ 1 - 1
notes/FAQ.md

@@ -18,7 +18,7 @@ There are plenty Rust Elm-like frameworks in the world - we were not interested
 The `RSX` DSL is _barely_ a DSL. Rustaceans will find the DSL very similar to simply assembling nested structs, but without the syntactical overhead of "Default" everywhere or having to jump through hoops with the builder pattern. Between RSX, HTML, the Raw Factory API, and the NodeBuilder syntax, there's plenty of options to choose from.
 
 ### What are the build times like? Why on earth would I choose Rust instead of JS/TS/Elm?
-Dioxus builds as roughly as fast as a complex WebPack-TypeScript site. Compile times will be slower than an equivalent TypeScript site, but not unbearably slow. The Wasm compiler backend for Rust is very fast. Iterating on small components is basically instant and larger apps takes a few seconds. In practice, the compiler guarantees of Rust balance out the rebuild times.
+dx builds as roughly as fast as a complex WebPack-TypeScript site. Compile times will be slower than an equivalent TypeScript site, but not unbearably slow. The Wasm compiler backend for Rust is very fast. Iterating on small components is basically instant and larger apps takes a few seconds. In practice, the compiler guarantees of Rust balance out the rebuild times.
 
 ### What about Yew/Seed/Sycamore/Dominator/Dodrio/Percy?
 - Yew and Seed use an Elm-like pattern and don't support SSR or any alternate rendering platforms

+ 0 - 7
packages/cli/Cargo.toml

@@ -86,13 +86,6 @@ dioxus-core = { workspace = true, features = ["serialize"] }
 default = []
 plugin = ["mlua"]
 
-# install path dx and dioxus as the same command
-# so, they're not really aliases
-# eventually dx will defer to the right version of dioxus
-[[bin]]
-path = "src/main.rs"
-name = "dioxus"
-
 [[bin]]
 path = "src/main.rs"
 name = "dx"

+ 2 - 2
packages/cli/Dioxus.toml

@@ -4,7 +4,7 @@
 name = "dioxus-cli"
 
 # default platfrom
-# you can also use `dioxus serve/build --platform XXX` to use other platform
+# you can also use `dx serve/build --platform XXX` to use other platform
 # value: web | desktop
 default_platform = "desktop"
 
@@ -42,4 +42,4 @@ script = []
 
 # use binaryen.wasm-opt for output Wasm file
 # binaryen just will trigger in `web` platform
-binaryen = { wasm_opt = true }
+binaryen = { wasm_opt = true }

+ 2 - 2
packages/cli/README.md

@@ -24,7 +24,7 @@ cargo install --path . --debug
 
 ## Get Started
 
-Use `dioxus create project-name` to initialize a new Dioxus project. <br>
+Use `dx create project-name` to initialize a new Dioxus project. <br>
 
 It will be cloned from the [dioxus-template](https://github.com/DioxusLabs/dioxus-template) repository.
 
@@ -33,7 +33,7 @@ It will be cloned from the [dioxus-template](https://github.com/DioxusLabs/dioxu
 Alternatively, you can specify the template path:
 
 ```
-dioxus create hello --template gh:dioxuslabs/dioxus-template
+dx create hello --template gh:dioxuslabs/dioxus-template
 ```
 
 ## Dioxus Config File

+ 4 - 4
packages/cli/docs/src/cmd/README.md

@@ -2,14 +2,14 @@
 
 In this chapter we will introduce all `dioxus-cli` commands.
 
-> You can also use `dioxus --help` to get cli help info.
+> You can also use `dx --help` to get cli help info.
 
 ```
-dioxus 
+dx
 Build, bundle, & ship your Dioxus app
 
 USAGE:
-    dioxus [OPTIONS] <SUBCOMMAND>
+    dx [OPTIONS] <SUBCOMMAND>
 
 OPTIONS:
     -h, --help    Print help information
@@ -23,4 +23,4 @@ SUBCOMMANDS:
     help         Print this message or the help of the given subcommand(s)
     serve        Build, watch & serve the Rust WASM app and all of its assets
     translate    Translate some html file into a Dioxus component
-```
+```

+ 9 - 9
packages/cli/docs/src/cmd/build.md

@@ -1,13 +1,13 @@
 # Build
 
-The `dioxus build` command can help you `pack & build` a dioxus project.
+The `dx build` command can help you `pack & build` a dioxus project.
 
 ```
-dioxus-build 
+dioxus-build
 Build the Rust WASM app and all of its assets
 
 USAGE:
-    dioxus build [OPTIONS]
+    dx build [OPTIONS]
 
 OPTIONS:
         --example <EXAMPLE>      [default: ""]
@@ -19,7 +19,7 @@ OPTIONS:
 You can use this command to build a project:
 
 ```
-dioxus build --release
+dx build --release
 ```
 
 ## Target platform
@@ -28,14 +28,14 @@ Use the `platform` option to choose your target platform:
 
 ```
 # for desktop project
-dioxus build --platform desktop
+dx build --platform desktop
 ```
 
 `platform` currently only supports `desktop` & `web`.
 
 ```
 # for web project
-dioxus build --platform web
+dx build --platform web
 ```
 
 ## Specify workspace bin
@@ -43,7 +43,7 @@ dioxus build --platform web
 You can add the `--bin` option to select which crate you want Dioxus to build:
 
 ```
-dioxus build --bin app
+dx build --bin app
 ```
 
 ## Build Example
@@ -52,5 +52,5 @@ You can use the `example` option to select a example to build:
 
 ```
 # build the `test` example
-dioxus build --exmaple test
-```
+dx build --exmaple test
+```

+ 6 - 6
packages/cli/docs/src/cmd/clean.md

@@ -1,13 +1,13 @@
 # Clean
 
-`dioxus clean` will clear the build artifacts (the out_dir and the cargo cache)
+`dx clean` will clear the build artifacts (the out_dir and the cargo cache)
 
 ```
-dioxus-clean 
+dioxus-clean
 Clean build artifacts
 
 USAGE:
-    dioxus clean [OPTIONS]
+    dx clean [OPTIONS]
 
 OPTIONS:
         --bin   [default: None]
@@ -16,12 +16,12 @@ OPTIONS:
 # Example
 
 ```
-dioxus clean
+dx clean
 ```
 
 # Specify workspace bin
 You can add the `--bin` option to select which crate you want Dioxus to clean artifacts from:
 
 ```
-dioxus clean --bin app
-```
+dx clean --bin app
+```

+ 10 - 10
packages/cli/docs/src/cmd/serve.md

@@ -1,13 +1,13 @@
 # Serve
 
-The `dioxus serve` can start a dev server with hot-reloading
+The `dx serve` can start a dev server with hot-reloading
 
 ```
-dioxus-serve 
+dioxus-serve
 Build, watch & serve the Rust WASM app and all of its assets
 
 USAGE:
-    dioxus serve [OPTIONS]
+    dx serve [OPTIONS]
 
 OPTIONS:
         --example <EXAMPLE>      [default: ""]
@@ -20,7 +20,7 @@ OPTIONS:
 You can use this command to build project and start a dev server:
 
 ```
-dioxus serve
+dx serve
 ```
 
 ## Serve Example
@@ -29,7 +29,7 @@ You can use the `example` option to serve a example:
 
 ```
 # serve the `test` example
-dioxus serve --exmaple test
+dx serve --exmaple test
 ```
 
 ## Specify workspace bin
@@ -37,7 +37,7 @@ dioxus serve --exmaple test
 You can add the `--bin` option to select which crate you want Dioxus to build and serve:
 
 ```
-dioxus serve --bin app
+dx serve --bin app
 ```
 
 ## Open Browser
@@ -45,7 +45,7 @@ dioxus serve --bin app
 You can add the `--open` option to open system default browser when server startup:
 
 ```
-dioxus serve --open
+dx serve --open
 ```
 
 ## RSX Hot Reloading
@@ -53,7 +53,7 @@ dioxus serve --open
 You can add the `--hot-reload` flag to enable [rsx hot reloading](https://dioxuslabs.com/docs/0.3/guide/en/getting_started/hot_reload.html). This will allow you to reload some rsx changes without a full recompile:
 
 ```
-dioxus serve --open
+dx serve --open
 ```
 
 ## Cross Origin Policy
@@ -66,5 +66,5 @@ You can add the `cross-origin-policy` option to change cross-origin header to:
 ```
 
 ```
-dioxus serve --corss-origin-policy
-```
+dx serve --corss-origin-policy
+```

+ 7 - 7
packages/cli/docs/src/cmd/translate.md

@@ -1,13 +1,13 @@
 # Translate
 
-`dioxus translate` can translate some `html` file into a Dioxus compoent
+`dx translate` can translate some `html` file into a Dioxus compoent
 
 ```
-dioxus-translate 
+dioxus-translate
 Translate some source file into a Dioxus component
 
 USAGE:
-    dioxus translate [OPTIONS] [OUTPUT]
+    dx translate [OPTIONS] [OUTPUT]
 
 ARGS:
     <OUTPUT>    Output file, defaults to stdout if not present
@@ -22,7 +22,7 @@ OPTIONS:
 You can use the `file` option to set path to the `html` file to translate:
 
 ```
-dioxus transtale --file ./index.html
+dx transtale --file ./index.html
 ```
 
 ## Output rsx to a file
@@ -30,7 +30,7 @@ dioxus transtale --file ./index.html
 You can pass a file to the traslate command to set the path to write the output of the command to:
 
 ```
-dioxus translate --file ./index.html component.rsx
+dx translate --file ./index.html component.rsx
 ```
 
 ## Output rsx to a file
@@ -38,7 +38,7 @@ dioxus translate --file ./index.html component.rsx
 Setting the `component` option will create a compoent from the HTML:
 
 ```
-dioxus translate --file ./index.html --component
+dx translate --file ./index.html --component
 ```
 
 ## Example
@@ -65,4 +65,4 @@ fn component(cx: Scope) -> Element {
         }
     })
 }
-```
+```

+ 2 - 2
packages/cli/docs/src/configure.md

@@ -29,8 +29,8 @@ General application confiration:
    # default: web
    default_platform = "web"
    ```
-   if you change this to `desktop`, the `dioxus build` will default building a desktop app
-3. ***out_dir*** - The directory to place the build artifacts from `dioxus build` or `dioxus service` into. This is also where the `assets` directory will be copied to
+   if you change this to `desktop`, the `dx build` will default building a desktop app
+3. ***out_dir*** - The directory to place the build artifacts from `dx build` or `dx service` into. This is also where the `assets` directory will be copied to
     ```
     out_dir = "dist"
     ```

+ 4 - 4
packages/cli/docs/src/creating.md

@@ -4,10 +4,10 @@ Once you have the Dioxus CLI tool installed, you can use it to create dioxus pro
 
 ## Initializing a default project
 
-First, run the `dioxus create` command to create a new project ready to be used with Dioxus and the Dioxus CLI:
+First, run the `dx create` command to create a new project ready to be used with Dioxus and the Dioxus CLI:
 
 ```
-dioxus create hello-dioxus
+dx create hello-dioxus
 ```
 
 > It will clone a default template from github template: [DioxusLabs/dioxus-template](https://github.com/DioxusLabs/dioxus-template)
@@ -15,7 +15,7 @@ dioxus create hello-dioxus
 >
 > You can choose to create your project from a different template by passing the `template` argument:
 > ```
-> dioxus init hello-dioxus --template=gh:dioxuslabs/dioxus-template
+> dx init hello-dioxus --template=gh:dioxuslabs/dioxus-template
 > ```
 
 Next, move the current directory into your new project:
@@ -33,7 +33,7 @@ cd hello-dioxus
 Finally, create serve your project with the Dioxus CLI:
 
 ```
-dioxus serve
+dx serve
 ```
 
 By default, the CLI serve your site at: [`http://127.0.0.1:8080/`](http://127.0.0.1:8080/)

+ 2 - 2
packages/cli/docs/src/plugin/README.md

@@ -2,7 +2,7 @@
 
 > For Cli 0.2.0 we will add `plugin-develop` support.
 
-Before the 0.2.0 we use `dioxus tool` to use & install some plugin, but we think that is not good for extend cli program, some people want tailwind support, some people want sass support, we can't add all this thing in to the cli source code and we don't have time to maintain a lot of tools that user request, so maybe user make plugin by themself is a good choice.
+Before the 0.2.0 we use `dx tool` to use & install some plugin, but we think that is not good for extend cli program, some people want tailwind support, some people want sass support, we can't add all this thing in to the cli source code and we don't have time to maintain a lot of tools that user request, so maybe user make plugin by themself is a good choice.
 
 ### Why Lua ?
 
@@ -76,4 +76,4 @@ end
 manager.serve.interval = 1000
 
 return manager
-```
+```

+ 1 - 1
packages/cli/src/assets/dioxus.toml

@@ -4,7 +4,7 @@
 name = "{{project-name}}"
 
 # default platfrom
-# you can also use `dioxus serve/build --platform XXX` to use other platform
+# you can also use `dx serve/build --platform XXX` to use other platform
 # value: web | desktop
 default_platform = "{{default-platform}}"
 

+ 2 - 2
packages/cli/src/builder.rs

@@ -161,7 +161,7 @@ pub fn build(config: &CrateConfig, quiet: bool) -> Result<BuildResult> {
             }
         } else {
             log::warn!(
-                "Binaryen tool not found, you can use `dioxus tool add binaryen` to install it."
+                "Binaryen tool not found, you can use `dx tool add binaryen` to install it."
             );
         }
     }
@@ -200,7 +200,7 @@ pub fn build(config: &CrateConfig, quiet: bool) -> Result<BuildResult> {
             }
         } else {
             log::warn!(
-                "Tailwind tool not found, you can use `dioxus tool add tailwindcss` to install it."
+                "Tailwind tool not found, you can use `dx tool add tailwindcss` to install it."
             );
         }
     }

+ 6 - 2
packages/cli/src/cli/autoformat.rs

@@ -136,12 +136,16 @@ async fn autoformat_project(check: bool) -> Result<()> {
 }
 
 fn collect_rs_files(folder: &Path, files: &mut Vec<PathBuf>) {
-    let Ok(folder) = folder.read_dir() else { return };
+    let Ok(folder) = folder.read_dir() else {
+        return;
+    };
 
     // load the gitignore
 
     for entry in folder {
-        let Ok(entry) = entry else { continue; };
+        let Ok(entry) = entry else {
+            continue;
+        };
 
         let path = entry.path();
 

+ 1 - 1
packages/cli/src/cli/plugin.rs

@@ -31,7 +31,7 @@ impl Plugin {
                 }
             }
             Plugin::Add { name: _ } => {
-                log::info!("You can use `dioxus plugin app-path` to get Installation position");
+                log::info!("You can use `dx plugin app-path` to get Installation position");
             }
         }
         Ok(())

+ 2 - 3
packages/core/src/create.rs

@@ -88,8 +88,7 @@ impl<'b> VirtualDom {
         }
 
         // Intialize the root nodes slice
-        node.root_ids
-            .intialize(vec![ElementId(0); node.template.get().roots.len()].into_boxed_slice());
+        *node.root_ids.borrow_mut() = vec![ElementId(0); node.template.get().roots.len()];
 
         // The best renderers will have templates prehydrated and registered
         // Just in case, let's create the template using instructions anyways
@@ -328,7 +327,7 @@ impl<'b> VirtualDom {
     fn load_template_root(&mut self, template: &VNode, root_idx: usize) -> ElementId {
         // Get an ID for this root since it's a real root
         let this_id = self.next_root(template, root_idx);
-        template.root_ids.set(root_idx, this_id);
+        template.root_ids.borrow_mut()[root_idx] = this_id;
 
         self.mutations.push(LoadTemplate {
             name: template.template.get().name,

+ 10 - 8
packages/core/src/diff.rs

@@ -129,12 +129,14 @@ impl<'b> VirtualDom {
             });
 
         // Make sure the roots get transferred over while we're here
-        right_template.root_ids.transfer(&left_template.root_ids);
+        *right_template.root_ids.borrow_mut() = left_template.root_ids.borrow().clone();
+
+        let root_ids = right_template.root_ids.borrow();
 
         // Update the node refs
-        for i in 0..right_template.root_ids.len() {
-            if let Some(root_id) = right_template.root_ids.get(i) {
-                self.update_template(root_id, right_template);
+        for i in 0..root_ids.len() {
+            if let Some(root_id) = root_ids.get(i) {
+                self.update_template(*root_id, right_template);
             }
         }
     }
@@ -686,7 +688,7 @@ impl<'b> VirtualDom {
                     Some(node) => node,
                     None => {
                         self.mutations.push(Mutation::PushRoot {
-                            id: node.root_ids.get(idx).unwrap(),
+                            id: node.root_ids.borrow()[idx],
                         });
                         return 1;
                     }
@@ -821,7 +823,7 @@ impl<'b> VirtualDom {
             if let Some(dy) = node.dynamic_root(idx) {
                 self.remove_dynamic_node(dy, gen_muts);
             } else {
-                let id = node.root_ids.get(idx).unwrap();
+                let id = node.root_ids.borrow()[idx];
                 if gen_muts {
                     self.mutations.push(Mutation::Remove { id });
                 }
@@ -928,7 +930,7 @@ impl<'b> VirtualDom {
 
     fn find_first_element(&self, node: &'b VNode<'b>) -> ElementId {
         match node.dynamic_root(0) {
-            None => node.root_ids.get(0).unwrap(),
+            None => node.root_ids.borrow()[0],
             Some(Text(t)) => t.id.get().unwrap(),
             Some(Fragment(t)) => self.find_first_element(&t[0]),
             Some(Placeholder(t)) => t.id.get().unwrap(),
@@ -944,7 +946,7 @@ impl<'b> VirtualDom {
 
     fn find_last_element(&self, node: &'b VNode<'b>) -> ElementId {
         match node.dynamic_root(node.template.get().roots.len() - 1) {
-            None => node.root_ids.last().unwrap(),
+            None => *node.root_ids.borrow().last().unwrap(),
             Some(Text(t)) => t.id.get().unwrap(),
             Some(Fragment(t)) => self.find_last_element(t.last().unwrap()),
             Some(Placeholder(t)) => t.id.get().unwrap(),

+ 3 - 102
packages/core/src/nodes.rs

@@ -5,7 +5,7 @@ use bumpalo::boxed::Box as BumpBox;
 use bumpalo::Bump;
 use std::{
     any::{Any, TypeId},
-    cell::{Cell, RefCell, UnsafeCell},
+    cell::{Cell, RefCell},
     fmt::{Arguments, Debug},
 };
 
@@ -54,7 +54,7 @@ pub struct VNode<'a> {
 
     /// The IDs for the roots of this template - to be used when moving the template around and removing it from
     /// the actual Dom
-    pub root_ids: BoxedCellSlice,
+    pub root_ids: RefCell<Vec<ElementId>>,
 
     /// The dynamic parts of the template
     pub dynamic_nodes: &'a [DynamicNode<'a>],
@@ -63,112 +63,13 @@ pub struct VNode<'a> {
     pub dynamic_attrs: &'a [Attribute<'a>],
 }
 
-// Saftey: There is no way to get references to the internal data of this struct so no refrences will be invalidated by mutating the data with a immutable reference (The same principle behind Cell)
-#[derive(Debug, Default)]
-pub struct BoxedCellSlice(UnsafeCell<Option<Box<[ElementId]>>>);
-
-impl Clone for BoxedCellSlice {
-    fn clone(&self) -> Self {
-        Self(UnsafeCell::new(unsafe { (*self.0.get()).clone() }))
-    }
-}
-
-impl BoxedCellSlice {
-    pub fn last(&self) -> Option<ElementId> {
-        unsafe {
-            (*self.0.get())
-                .as_ref()
-                .and_then(|inner| inner.as_ref().last().copied())
-        }
-    }
-
-    pub fn get(&self, idx: usize) -> Option<ElementId> {
-        unsafe {
-            (*self.0.get())
-                .as_ref()
-                .and_then(|inner| inner.as_ref().get(idx).copied())
-        }
-    }
-
-    pub unsafe fn get_unchecked(&self, idx: usize) -> Option<ElementId> {
-        (*self.0.get())
-            .as_ref()
-            .and_then(|inner| inner.as_ref().get(idx).copied())
-    }
-
-    pub fn set(&self, idx: usize, new: ElementId) {
-        unsafe {
-            if let Some(inner) = &mut *self.0.get() {
-                inner[idx] = new;
-            }
-        }
-    }
-
-    pub fn intialize(&self, contents: Box<[ElementId]>) {
-        unsafe {
-            *self.0.get() = Some(contents);
-        }
-    }
-
-    pub fn transfer(&self, other: &Self) {
-        unsafe {
-            *self.0.get() = (*other.0.get()).clone();
-        }
-    }
-
-    pub fn take_from(&self, other: &Self) {
-        unsafe {
-            *self.0.get() = (*other.0.get()).take();
-        }
-    }
-
-    pub fn len(&self) -> usize {
-        unsafe {
-            (*self.0.get())
-                .as_ref()
-                .map(|inner| inner.len())
-                .unwrap_or(0)
-        }
-    }
-}
-
-impl<'a> IntoIterator for &'a BoxedCellSlice {
-    type Item = ElementId;
-
-    type IntoIter = BoxedCellSliceIter<'a>;
-
-    fn into_iter(self) -> Self::IntoIter {
-        BoxedCellSliceIter {
-            index: 0,
-            borrow: self,
-        }
-    }
-}
-
-pub struct BoxedCellSliceIter<'a> {
-    index: usize,
-    borrow: &'a BoxedCellSlice,
-}
-
-impl Iterator for BoxedCellSliceIter<'_> {
-    type Item = ElementId;
-
-    fn next(&mut self) -> Option<Self::Item> {
-        let result = self.borrow.get(self.index);
-        if result.is_some() {
-            self.index += 1;
-        }
-        result
-    }
-}
-
 impl<'a> VNode<'a> {
     /// Create a template with no nodes that will be skipped over during diffing
     pub fn empty() -> Element<'a> {
         Some(VNode {
             key: None,
             parent: None,
-            root_ids: BoxedCellSlice::default(),
+            root_ids: Default::default(),
             dynamic_nodes: &[],
             dynamic_attrs: &[],
             template: Cell::new(Template {

+ 1 - 1
packages/core/src/scope_arena.rs

@@ -87,7 +87,7 @@ impl VirtualDom {
             if matches!(allocated, RenderReturn::Aborted(_)) {
                 self.suspended_scopes.insert(scope.id);
             }
-        } else {
+        } else if !self.suspended_scopes.is_empty() {
             _ = self.suspended_scopes.remove(&scope.id);
         }
 

+ 2 - 2
packages/core/src/scopes.rs

@@ -693,13 +693,13 @@ impl<'src> ScopeState {
                 raw_ref.downcast_mut::<State>()
             })
             .expect(
-                r###"
+                r#"
                 Unable to retrieve the hook that was initialized at this index.
                 Consult the `rules of hooks` to understand how to use hooks properly.
 
                 You likely used the hook in a conditional. Hooks rely on consistent ordering between renders.
                 Functions prefixed with "use" should never be called conditionally.
-                "###,
+                "#,
             )
     }
 }

+ 3 - 0
packages/core/src/virtual_dom.rs

@@ -571,12 +571,15 @@ impl VirtualDom {
     /// The mutations will be thrown out, so it's best to use this method for things like SSR that have async content
     pub async fn wait_for_suspense(&mut self) {
         loop {
+            // println!("waiting for suspense {:?}", self.suspended_scopes);
             if self.suspended_scopes.is_empty() {
                 return;
             }
 
+            // println!("waiting for suspense");
             self.wait_for_work().await;
 
+            // println!("Rendered immediately");
             _ = self.render_immediate();
         }
     }

+ 8 - 5
packages/core/tests/task.rs

@@ -1,9 +1,9 @@
 //! Verify that tasks get polled by the virtualdom properly, and that we escape wait_for_work safely
 
 use dioxus::prelude::*;
-use std::time::Duration;
+use std::{sync::atomic::AtomicUsize, time::Duration};
 
-static mut POLL_COUNT: usize = 0;
+static POLL_COUNT: AtomicUsize = AtomicUsize::new(0);
 
 #[tokio::test]
 async fn it_works() {
@@ -18,7 +18,10 @@ async fn it_works() {
 
     // By the time the tasks are finished, we should've accumulated ticks from two tasks
     // Be warned that by setting the delay to too short, tokio might not schedule in the tasks
-    assert_eq!(unsafe { POLL_COUNT }, 135);
+    assert_eq!(
+        POLL_COUNT.fetch_add(0, std::sync::atomic::Ordering::Relaxed),
+        135
+    );
 }
 
 fn app(cx: Scope) -> Element {
@@ -26,14 +29,14 @@ fn app(cx: Scope) -> Element {
         cx.spawn(async {
             for x in 0..10 {
                 tokio::time::sleep(Duration::from_micros(50)).await;
-                unsafe { POLL_COUNT += x }
+                POLL_COUNT.fetch_add(x, std::sync::atomic::Ordering::Relaxed);
             }
         });
 
         cx.spawn(async {
             for x in 0..10 {
                 tokio::time::sleep(Duration::from_micros(25)).await;
-                unsafe { POLL_COUNT += x * 2 }
+                POLL_COUNT.fetch_add(x * 2, std::sync::atomic::Ordering::Relaxed);
             }
         });
     });

+ 42 - 22
packages/desktop/src/file_upload.rs

@@ -8,11 +8,48 @@ pub(crate) struct FileDialogRequest {
     #[serde(default)]
     accept: Option<String>,
     multiple: bool,
+    directory: bool,
     pub event: String,
     pub target: usize,
     pub bubbles: bool,
 }
 
+fn get_file_event_for_folder(request: &FileDialogRequest, dialog: rfd::FileDialog) -> Vec<PathBuf> {
+    if request.multiple {
+        dialog.pick_folders().into_iter().flatten().collect()
+    } else {
+        dialog.pick_folder().into_iter().collect()
+    }
+}
+
+fn get_file_event_for_file(
+    request: &FileDialogRequest,
+    mut dialog: rfd::FileDialog,
+) -> Vec<PathBuf> {
+    let filters: Vec<_> = request
+        .accept
+        .as_deref()
+        .unwrap_or_default()
+        .split(',')
+        .filter_map(|s| Filters::from_str(s).ok())
+        .collect();
+
+    let file_extensions: Vec<_> = filters
+        .iter()
+        .flat_map(|f| f.as_extensions().into_iter())
+        .collect();
+
+    dialog = dialog.add_filter("name", file_extensions.as_slice());
+
+    let files: Vec<_> = if request.multiple {
+        dialog.pick_files().into_iter().flatten().collect()
+    } else {
+        dialog.pick_file().into_iter().collect()
+    };
+
+    files
+}
+
 #[cfg(not(any(
     target_os = "windows",
     target_os = "macos",
@@ -36,30 +73,13 @@ pub(crate) fn get_file_event(_request: &FileDialogRequest) -> Vec<PathBuf> {
     target_os = "openbsd"
 ))]
 pub(crate) fn get_file_event(request: &FileDialogRequest) -> Vec<PathBuf> {
-    let mut dialog = rfd::FileDialog::new();
+    let dialog = rfd::FileDialog::new();
 
-    let filters: Vec<_> = request
-        .accept
-        .as_deref()
-        .unwrap_or_default()
-        .split(',')
-        .filter_map(|s| Filters::from_str(s).ok())
-        .collect();
-
-    let file_extensions: Vec<_> = filters
-        .iter()
-        .flat_map(|f| f.as_extensions().into_iter())
-        .collect();
-
-    dialog = dialog.add_filter("name", file_extensions.as_slice());
-
-    let files: Vec<_> = if request.multiple {
-        dialog.pick_files().into_iter().flatten().collect()
+    if request.directory {
+        get_file_event_for_folder(request, dialog)
     } else {
-        dialog.pick_file().into_iter().collect()
-    };
-
-    files
+        get_file_event_for_file(request, dialog)
+    }
 }
 
 enum Filters {

+ 1 - 1
packages/desktop/src/protocol.rs

@@ -24,7 +24,7 @@ fn module_loader(root_name: &str) -> String {
             let target_id = find_real_id(target);
             if (target_id !== null) {
               const send = (event_name) => {
-                const message = serializeIpcMessage("file_diolog", { accept: target.getAttribute("accept"), multiple: target.hasAttribute("multiple"), target: parseInt(target_id), bubbles: event_bubbles(event_name), event: event_name });
+                const message = serializeIpcMessage("file_diolog", { accept: target.getAttribute("accept"), directory: target.getAttribute("webkitdirectory") === "true", multiple: target.hasAttribute("multiple"), target: parseInt(target_id), bubbles: event_bubbles(event_name), event: event_name });
                 window.ipc.postMessage(message);
               };
               send("change&input");

+ 1 - 1
packages/dioxus-tui/examples/colorpicker.rs

@@ -20,7 +20,7 @@ fn app(cx: Scope) -> Element {
             background_color: "hsl({hue}, 70%, {brightness}%)",
             onmousemove: move |evt| {
                 if let RenderReturn::Ready(node) = cx.root_node() {
-                    if let Some(id) = node.root_ids.get(0){
+                    if let Some(id) = node.root_ids.borrow().get(0).cloned() {
                         let node = tui_query.get(mapping.get_node_id(id).unwrap());
                         let Size{width, height} = node.size().unwrap();
                         let pos = evt.inner().element_coordinates();

+ 1 - 1
packages/fullstack/examples/axum-auth/src/main.rs

@@ -1,7 +1,7 @@
 //! Run with:
 //!
 //! ```sh
-//! dioxus build --features web
+//! dx build --features web
 //! cargo run --features ssr
 //! ```
 

+ 1 - 1
packages/fullstack/examples/axum-hello-world/src/main.rs

@@ -1,7 +1,7 @@
 //! Run with:
 //!
 //! ```sh
-//! dioxus build --features web
+//! dx build --features web
 //! cargo run --features ssr
 //! ```
 

+ 1 - 1
packages/fullstack/examples/axum-router/src/main.rs

@@ -1,7 +1,7 @@
 //! Run with:
 //!
 //! ```sh
-//! dioxus build --features web
+//! dx build --features web
 //! cargo run --features ssr
 //! ```
 

+ 1 - 1
packages/fullstack/examples/salvo-hello-world/src/main.rs

@@ -1,7 +1,7 @@
 //! Run with:
 //!
 //! ```sh
-//! dioxus build --features web
+//! dx build --features web
 //! cargo run --features ssr
 //! ```
 

+ 1 - 1
packages/fullstack/examples/static-hydrated/src/main.rs

@@ -1,7 +1,7 @@
 //! Run with:
 //!
 //! ```sh
-//! dioxus build --features web
+//! dx build --features web
 //! cargo run --features ssr
 //! ```
 

+ 1 - 1
packages/fullstack/examples/warp-hello-world/src/main.rs

@@ -1,7 +1,7 @@
 //! Run with:
 //!
 //! ```sh
-//! dioxus build --features web
+//! dx build --features web
 //! cargo run --features ssr
 //! ```
 

+ 1 - 0
packages/html/src/elements.rs

@@ -1098,6 +1098,7 @@ builder_constructors! {
         autofocus: Bool DEFAULT,
         capture: String DEFAULT,
         checked: Bool DEFAULT,
+        directory: Bool "webkitdirectory",
         disabled: Bool DEFAULT,
         form: Id DEFAULT,
         formaction: Uri DEFAULT,

+ 3 - 4
packages/html/src/events/form.rs

@@ -56,10 +56,9 @@ where
 {
     use serde::Deserialize;
 
-    let Ok(file_engine) =
-        SerializedFileEngine::deserialize(deserializer) else{
-            return Ok(None);
-        };
+    let Ok(file_engine) = SerializedFileEngine::deserialize(deserializer) else {
+        return Ok(None);
+    };
 
     let file_engine = std::sync::Arc::new(file_engine);
     Ok(Some(file_engine))

+ 1 - 0
packages/interpreter/src/common.js

@@ -25,6 +25,7 @@ const bool_attrs = {
   reversed: true,
   selected: true,
   truespeed: true,
+  webkitdirectory: true,
 };
 
 export function setAttributeInner(node, field, value, ns) {

+ 1 - 0
packages/interpreter/src/sledgehammer_bindings.rs

@@ -163,6 +163,7 @@ mod js {
         reversed: true,
         selected: true,
         truespeed: true,
+        webkitdirectory: true,
       };
       function truthy(val) {
         return val === "true" || val === true;

+ 4 - 3
packages/liveview/src/adapters/axum_adapter.rs

@@ -11,13 +11,14 @@ pub fn axum_socket(ws: WebSocket) -> impl LiveViewSocket {
         .sink_map_err(|_| LiveViewError::SendingFailed)
 }
 
-fn transform_rx(message: Result<Message, axum::Error>) -> Result<String, LiveViewError> {
+fn transform_rx(message: Result<Message, axum::Error>) -> Result<Vec<u8>, LiveViewError> {
     message
         .map_err(|_| LiveViewError::SendingFailed)?
         .into_text()
+        .map(|s| s.into_bytes())
         .map_err(|_| LiveViewError::SendingFailed)
 }
 
-async fn transform_tx(message: String) -> Result<Message, axum::Error> {
-    Ok(Message::Text(message))
+async fn transform_tx(message: Vec<u8>) -> Result<Message, axum::Error> {
+    Ok(Message::Text(String::from_utf8_lossy(&message).to_string()))
 }

+ 4 - 6
packages/liveview/src/adapters/salvo_adapter.rs

@@ -12,14 +12,12 @@ pub fn salvo_socket(ws: WebSocket) -> impl LiveViewSocket {
         .sink_map_err(|_| LiveViewError::SendingFailed)
 }
 
-fn transform_rx(message: Result<Message, salvo::Error>) -> Result<String, LiveViewError> {
+fn transform_rx(message: Result<Message, salvo::Error>) -> Result<Vec<u8>, LiveViewError> {
     let as_bytes = message.map_err(|_| LiveViewError::SendingFailed)?;
 
-    let msg = String::from_utf8(as_bytes.into_bytes()).map_err(|_| LiveViewError::SendingFailed)?;
-
-    Ok(msg)
+    Ok(as_bytes.into())
 }
 
-async fn transform_tx(message: String) -> Result<Message, salvo::Error> {
-    Ok(Message::text(message))
+async fn transform_tx(message: Vec<u8>) -> Result<Message, salvo::Error> {
+    Ok(Message::text(String::from_utf8_lossy(&message).to_string()))
 }

+ 3 - 6
packages/liveview/src/adapters/warp_adapter.rs

@@ -11,18 +11,15 @@ pub fn warp_socket(ws: WebSocket) -> impl LiveViewSocket {
         .sink_map_err(|_| LiveViewError::SendingFailed)
 }
 
-fn transform_rx(message: Result<Message, warp::Error>) -> Result<String, LiveViewError> {
+fn transform_rx(message: Result<Message, warp::Error>) -> Result<Vec<u8>, LiveViewError> {
     // destructure the message into the buffer we got from warp
     let msg = message
         .map_err(|_| LiveViewError::SendingFailed)?
         .into_bytes();
 
-    // transform it back into a string, saving us the allocation
-    let msg = String::from_utf8(msg).map_err(|_| LiveViewError::SendingFailed)?;
-
     Ok(msg)
 }
 
-async fn transform_tx(message: String) -> Result<Message, warp::Error> {
-    Ok(Message::text(message))
+async fn transform_tx(message: Vec<u8>) -> Result<Message, warp::Error> {
+    Ok(Message::text(String::from_utf8_lossy(&message).to_string()))
 }

+ 15 - 11
packages/liveview/src/pool.rs

@@ -87,16 +87,16 @@ impl LiveViewPool {
 /// }
 /// ```
 pub trait LiveViewSocket:
-    SinkExt<String, Error = LiveViewError>
-    + StreamExt<Item = Result<String, LiveViewError>>
+    SinkExt<Vec<u8>, Error = LiveViewError>
+    + StreamExt<Item = Result<Vec<u8>, LiveViewError>>
     + Send
     + 'static
 {
 }
 
 impl<S> LiveViewSocket for S where
-    S: SinkExt<String, Error = LiveViewError>
-        + StreamExt<Item = Result<String, LiveViewError>>
+    S: SinkExt<Vec<u8>, Error = LiveViewError>
+        + StreamExt<Item = Result<Vec<u8>, LiveViewError>>
         + Send
         + 'static
 {
@@ -126,7 +126,7 @@ pub async fn run(mut vdom: VirtualDom, ws: impl LiveViewSocket) -> Result<(), Li
     pin_mut!(ws);
 
     // send the initial render to the client
-    ws.send(edits).await?;
+    ws.send(edits.into_bytes()).await?;
 
     // Create the a proxy for query engine
     let (query_tx, mut query_rx) = tokio::sync::mpsc::unbounded_channel();
@@ -156,11 +156,11 @@ pub async fn run(mut vdom: VirtualDom, ws: impl LiveViewSocket) -> Result<(), Li
             evt = ws.next() => {
                 match evt.as_ref().map(|o| o.as_deref()) {
                     // respond with a pong every ping to keep the websocket alive
-                    Some(Ok("__ping__")) => {
-                        ws.send("__pong__".to_string()).await?;
+                    Some(Ok(b"__ping__")) => {
+                        ws.send(b"__pong__".to_vec()).await?;
                     }
                     Some(Ok(evt)) => {
-                        if let Ok(message) = serde_json::from_str::<IpcMessage>(evt) {
+                        if let Ok(message) = serde_json::from_str::<IpcMessage>(&String::from_utf8_lossy(evt)) {
                             match message {
                                 IpcMessage::Event(evt) => {
                                     // Intercept the mounted event and insert a custom element type
@@ -196,7 +196,7 @@ pub async fn run(mut vdom: VirtualDom, ws: impl LiveViewSocket) -> Result<(), Li
 
             // handle any new queries
             Some(query) = query_rx.recv() => {
-                ws.send(serde_json::to_string(&ClientUpdate::Query(query)).unwrap()).await?;
+                ws.send(serde_json::to_string(&ClientUpdate::Query(query)).unwrap().into_bytes()).await?;
             }
 
             Some(msg) = hot_reload_wait => {
@@ -218,8 +218,12 @@ pub async fn run(mut vdom: VirtualDom, ws: impl LiveViewSocket) -> Result<(), Li
             .render_with_deadline(tokio::time::sleep(Duration::from_millis(10)))
             .await;
 
-        ws.send(serde_json::to_string(&ClientUpdate::Edits(edits)).unwrap())
-            .await?;
+        ws.send(
+            serde_json::to_string(&ClientUpdate::Edits(edits))
+                .unwrap()
+                .into_bytes(),
+        )
+        .await?;
     }
 }
 

+ 12 - 4
packages/rink/src/widgets/button.rs

@@ -82,7 +82,9 @@ impl Button {
     fn write_value(&self, rdom: &mut RealDom) {
         if let Some(mut text) = rdom.get_mut(self.text_id) {
             let node_type = text.node_type_mut();
-            let NodeTypeMut::Text(mut text) = node_type else { panic!("input must be an element") };
+            let NodeTypeMut::Text(mut text) = node_type else {
+                panic!("input must be an element")
+            };
             *text.text_mut() = self.value.clone();
         }
     }
@@ -111,7 +113,9 @@ impl CustomElement for Button {
 
     fn create(mut root: dioxus_native_core::real_dom::NodeMut) -> Self {
         let node_type = root.node_type();
-        let NodeType::Element(el) = &*node_type else { panic!("input must be an element") };
+        let NodeType::Element(el) = &*node_type else {
+            panic!("input must be an element")
+        };
 
         let value = el
             .attributes
@@ -146,7 +150,9 @@ impl CustomElement for Button {
             AttributeMask::All => {
                 {
                     let node_type = root.node_type_mut();
-                    let NodeTypeMut::Element(mut el) = node_type else { panic!("input must be an element") };
+                    let NodeTypeMut::Element(mut el) = node_type else {
+                        panic!("input must be an element")
+                    };
                     self.update_value_attr(&el);
                     self.update_size_attr(&mut el);
                 }
@@ -155,7 +161,9 @@ impl CustomElement for Button {
             AttributeMask::Some(attrs) => {
                 {
                     let node_type = root.node_type_mut();
-                    let NodeTypeMut::Element(mut el) = node_type else { panic!("input must be an element") };
+                    let NodeTypeMut::Element(mut el) = node_type else {
+                        panic!("input must be an element")
+                    };
                     if attrs.contains("width") || attrs.contains("height") {
                         self.update_size_attr(&mut el);
                     }

+ 15 - 5
packages/rink/src/widgets/checkbox.rs

@@ -94,14 +94,18 @@ impl CheckBox {
     fn write_value(&self, mut root: NodeMut) {
         let single_char = {
             let node_type = root.node_type_mut();
-            let NodeTypeMut::Element( el) = node_type else { panic!("input must be an element") };
+            let NodeTypeMut::Element(el) = node_type else {
+                panic!("input must be an element")
+            };
             Self::width(&el) == "1px" || Self::height(&el) == "1px"
         };
         let rdom = root.real_dom_mut();
 
         if let Some(mut text) = rdom.get_mut(self.text_id) {
             let node_type = text.node_type_mut();
-            let NodeTypeMut::Text(mut text) = node_type else { panic!("input must be an element") };
+            let NodeTypeMut::Text(mut text) = node_type else {
+                panic!("input must be an element")
+            };
             let value = if single_char {
                 if self.checked {
                     "☑"
@@ -156,7 +160,9 @@ impl CustomElement for CheckBox {
 
     fn create(mut root: dioxus_native_core::real_dom::NodeMut) -> Self {
         let node_type = root.node_type();
-        let NodeType::Element(el) = &*node_type else { panic!("input must be an element") };
+        let NodeType::Element(el) = &*node_type else {
+            panic!("input must be an element")
+        };
 
         let value = el
             .attributes
@@ -197,7 +203,9 @@ impl CustomElement for CheckBox {
             AttributeMask::All => {
                 {
                     let node_type = root.node_type_mut();
-                    let NodeTypeMut::Element(mut el) = node_type else { panic!("input must be an element") };
+                    let NodeTypeMut::Element(mut el) = node_type else {
+                        panic!("input must be an element")
+                    };
                     self.update_value_attr(&el);
                     self.update_size_attr(&mut el);
                     self.update_checked_attr(&el);
@@ -207,7 +215,9 @@ impl CustomElement for CheckBox {
             AttributeMask::Some(attrs) => {
                 {
                     let node_type = root.node_type_mut();
-                    let NodeTypeMut::Element(mut el) = node_type else { panic!("input must be an element") };
+                    let NodeTypeMut::Element(mut el) = node_type else {
+                        panic!("input must be an element")
+                    };
                     if attrs.contains("width") || attrs.contains("height") {
                         self.update_size_attr(&mut el);
                     }

+ 3 - 1
packages/rink/src/widgets/input.rs

@@ -56,7 +56,9 @@ impl CustomElement for Input {
         }
 
         let node_type = root.node_type();
-        let NodeType::Element(el) = &*node_type else { panic!("input must be an element") };
+        let NodeType::Element(el) = &*node_type else {
+            panic!("input must be an element")
+        };
         let input_type = el
             .attributes
             .get(&OwnedAttributeDiscription {

+ 15 - 5
packages/rink/src/widgets/slider.rs

@@ -163,7 +163,9 @@ impl Slider {
 
         if let Some(mut div) = rdom.get_mut(self.pre_cursor_div) {
             let node_type = div.node_type_mut();
-            let NodeTypeMut::Element(mut element) = node_type else { panic!("input must be an element") };
+            let NodeTypeMut::Element(mut element) = node_type else {
+                panic!("input must be an element")
+            };
             element.set_attribute(
                 OwnedAttributeDiscription {
                     name: "width".to_string(),
@@ -175,7 +177,9 @@ impl Slider {
 
         if let Some(mut div) = rdom.get_mut(self.post_cursor_div) {
             let node_type = div.node_type_mut();
-            let NodeTypeMut::Element(mut element) = node_type else { panic!("input must be an element") };
+            let NodeTypeMut::Element(mut element) = node_type else {
+                panic!("input must be an element")
+            };
             element.set_attribute(
                 OwnedAttributeDiscription {
                     name: "width".to_string(),
@@ -259,7 +263,9 @@ impl CustomElement for Slider {
 
     fn create(mut root: dioxus_native_core::real_dom::NodeMut) -> Self {
         let node_type = root.node_type();
-        let NodeType::Element(el) = &*node_type else { panic!("input must be an element") };
+        let NodeType::Element(el) = &*node_type else {
+            panic!("input must be an element")
+        };
 
         let value = el.attributes.get(&OwnedAttributeDiscription {
             name: "value".to_string(),
@@ -390,7 +396,9 @@ impl CustomElement for Slider {
             AttributeMask::All => {
                 {
                     let node_type = root.node_type_mut();
-                    let NodeTypeMut::Element(mut el) = node_type else { panic!("input must be an element") };
+                    let NodeTypeMut::Element(mut el) = node_type else {
+                        panic!("input must be an element")
+                    };
                     self.update_value_attr(&el);
                     self.update_size_attr(&mut el);
                     self.update_max_attr(&el);
@@ -403,7 +411,9 @@ impl CustomElement for Slider {
             AttributeMask::Some(attrs) => {
                 {
                     let node_type = root.node_type_mut();
-                    let NodeTypeMut::Element(mut el) = node_type else { panic!("input must be an element") };
+                    let NodeTypeMut::Element(mut el) = node_type else {
+                        panic!("input must be an element")
+                    };
                     if attrs.contains("width") || attrs.contains("height") {
                         self.update_size_attr(&mut el);
                     }

+ 18 - 6
packages/rink/src/widgets/text_like.rs

@@ -143,19 +143,25 @@ impl<C: TextLikeController> TextLike<C> {
 
         if let Some(mut text) = rdom.get_mut(self.pre_cursor_text) {
             let node_type = text.node_type_mut();
-            let NodeTypeMut::Text(mut text) = node_type else { panic!("input must be an element") };
+            let NodeTypeMut::Text(mut text) = node_type else {
+                panic!("input must be an element")
+            };
             *text.text_mut() = self.controller.display_text(text_before_first_cursor);
         }
 
         if let Some(mut text) = rdom.get_mut(self.highlighted_text) {
             let node_type = text.node_type_mut();
-            let NodeTypeMut::Text(mut text) = node_type else { panic!("input must be an element") };
+            let NodeTypeMut::Text(mut text) = node_type else {
+                panic!("input must be an element")
+            };
             *text.text_mut() = self.controller.display_text(text_highlighted);
         }
 
         if let Some(mut text) = rdom.get_mut(self.post_cursor_text) {
             let node_type = text.node_type_mut();
-            let NodeTypeMut::Text(mut text) = node_type else { panic!("input must be an element") };
+            let NodeTypeMut::Text(mut text) = node_type else {
+                panic!("input must be an element")
+            };
             *text.text_mut() = self.controller.display_text(text_after_second_cursor);
         }
 
@@ -288,7 +294,9 @@ impl<C: TextLikeController + Send + Sync + Default + 'static> CustomElement for
 
     fn create(mut root: dioxus_native_core::real_dom::NodeMut) -> Self {
         let node_type = root.node_type();
-        let NodeType::Element(el) = &*node_type else { panic!("input must be an element") };
+        let NodeType::Element(el) = &*node_type else {
+            panic!("input must be an element")
+        };
 
         let value = el
             .attributes
@@ -370,7 +378,9 @@ impl<C: TextLikeController + Send + Sync + Default + 'static> CustomElement for
             AttributeMask::All => {
                 {
                     let node_type = root.node_type_mut();
-                    let NodeTypeMut::Element(mut el) = node_type else { panic!("input must be an element") };
+                    let NodeTypeMut::Element(mut el) = node_type else {
+                        panic!("input must be an element")
+                    };
                     self.update_value_attr(&el);
                     self.update_size_attr(&mut el);
                     self.update_max_width_attr(&el);
@@ -381,7 +391,9 @@ impl<C: TextLikeController + Send + Sync + Default + 'static> CustomElement for
             AttributeMask::Some(attrs) => {
                 {
                     let node_type = root.node_type_mut();
-                    let NodeTypeMut::Element(mut el) = node_type else { panic!("input must be an element") };
+                    let NodeTypeMut::Element(mut el) = node_type else {
+                        panic!("input must be an element")
+                    };
                     if attrs.contains("width") || attrs.contains("height") {
                         self.update_size_attr(&mut el);
                     }

+ 9 - 9
packages/router-macro/src/lib.rs

@@ -31,11 +31,11 @@ mod segment;
 /// Route Segments:
 /// 1. Static Segments: "/static"
 /// 2. Dynamic Segments: "/:dynamic" (where dynamic has a type that is FromStr in all child Variants)
-/// 3. Catch all Segments: "/:...segments" (where segments has a type that is FromSegments in all child Variants)
+/// 3. Catch all Segments: "/:..segments" (where segments has a type that is FromSegments in all child Variants)
 /// 4. Query Segments: "/?:query" (where query has a type that is FromQuery in all child Variants)
 ///
 /// Routes are matched:
-/// 1. By there specificity this order: Query Routes ("/?:query"), Static Routes ("/route"), Dynamic Routes ("/:route"), Catch All Routes ("/:...route")
+/// 1. By there specificity this order: Query Routes ("/?:query"), Static Routes ("/route"), Dynamic Routes ("/:route"), Catch All Routes ("/:..route")
 /// 2. By the order they are defined in the enum
 ///
 /// All features:
@@ -369,13 +369,13 @@ impl RouteEnum {
                     let (exclude, layout): (bool, Layout) = attr.parse_args_with(parser)?;
 
                     if exclude {
-                        let Some(layout_index) =
-                            layouts.iter().position(|l| l.comp == layout.comp) else {
-                                return Err(syn::Error::new(
-                                    Span::call_site(),
-                                    "Attempted to exclude a layout that does not exist",
-                                ));
-                            };
+                        let Some(layout_index) = layouts.iter().position(|l| l.comp == layout.comp)
+                        else {
+                            return Err(syn::Error::new(
+                                Span::call_site(),
+                                "Attempted to exclude a layout that does not exist",
+                            ));
+                        };
                         excluded.push(LayoutId(layout_index));
                     } else {
                         let layout_index = layouts.len();

+ 3 - 3
packages/router-macro/src/route.rs

@@ -126,7 +126,7 @@ impl Route {
                                 None => {
                                     return Err(syn::Error::new_spanned(
                                         variant.clone(),
-                                        "Routable variants with a #[child(...)] attribute must have a field named \"child\" or a field with a #[child] attribute",
+                                        "Routable variants with a #[child(..)] attribute must have a field named \"child\" or a field with a #[child] attribute",
                                     ));
                                 }
                             }
@@ -134,14 +134,14 @@ impl Route {
                         _ => {
                             return Err(syn::Error::new_spanned(
                                 variant.clone(),
-                                "Routable variants with a #[child(...)] attribute must have named fields",
+                                "Routable variants with a #[child(..)] attribute must have named fields",
                             ))
                         }
                     }
                 } else {
                     return Err(syn::Error::new_spanned(
                             variant.clone(),
-                            "Routable variants must either have a #[route(...)] attribute or a #[child(...)] attribute",
+                            "Routable variants must either have a #[route(..)] attribute or a #[child(..)] attribute",
                         ));
                 }
             }

+ 2 - 2
packages/router-macro/src/segment.rs

@@ -150,10 +150,10 @@ pub fn parse_route_segments<'a>(
 
     while let Some(segment) = iterator.next() {
         if let Some(segment) = segment.strip_prefix(':') {
-            let spread = segment.starts_with("...");
+            let spread = segment.starts_with("..");
 
             let ident = if spread {
-                segment[3..].to_string()
+                segment[2..].to_string()
             } else {
                 segment.to_string()
             };

+ 1 - 7
packages/signals/src/lib.rs

@@ -10,8 +10,6 @@ mod rt;
 use dioxus_core::ScopeState;
 pub use rt::*;
 
-use crate::rt::claim_rt;
-
 pub fn use_init_signal_rt(cx: &ScopeState) {
     cx.use_hook(|| {
         let rt = claim_rt(cx.schedule_update_any());
@@ -96,11 +94,7 @@ impl<T: Clone + 'static> std::ops::Deref for Signal<T> {
 
 impl<T> std::clone::Clone for Signal<T> {
     fn clone(&self) -> Self {
-        Self {
-            t: PhantomData,
-            id: self.id,
-            rt: self.rt,
-        }
+        *self
     }
 }
 

+ 1 - 1
packages/web/src/rehydrate.rs

@@ -90,7 +90,7 @@ impl WebsysDom {
             // make sure we set the root node ids even if the node is not dynamic
             set_node(
                 hydrated,
-                vnode.root_ids.get(i).ok_or(VNodeNotInitialized)?,
+                *vnode.root_ids.borrow().get(i).ok_or(VNodeNotInitialized)?,
                 current_child.clone()?,
             );
 

+ 1 - 1
playwright-tests/fullstack/src/main.rs

@@ -20,7 +20,7 @@ fn main() {
     {
         // Start hot reloading
         hot_reload_init!(dioxus_hot_reload::Config::new().with_rebuild_callback(|| {
-            execute::shell("dioxus build --features web")
+            execute::shell("dx build --features web")
                 .spawn()
                 .unwrap()
                 .wait()

+ 10 - 10
package-lock.json → playwright-tests/package-lock.json

@@ -9,23 +9,23 @@
       "version": "1.0.0",
       "license": "ISC",
       "devDependencies": {
-        "@playwright/test": "^1.34.3"
+        "@playwright/test": "^1.36.1"
       }
     },
     "node_modules/@playwright/test": {
-      "version": "1.34.3",
-      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.34.3.tgz",
-      "integrity": "sha512-zPLef6w9P6T/iT6XDYG3mvGOqOyb6eHaV9XtkunYs0+OzxBtrPAAaHotc0X+PJ00WPPnLfFBTl7mf45Mn8DBmw==",
+      "version": "1.36.1",
+      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.36.1.tgz",
+      "integrity": "sha512-YK7yGWK0N3C2QInPU6iaf/L3N95dlGdbsezLya4n0ZCh3IL7VgPGxC6Gnznh9ApWdOmkJeleT2kMTcWPRZvzqg==",
       "dev": true,
       "dependencies": {
         "@types/node": "*",
-        "playwright-core": "1.34.3"
+        "playwright-core": "1.36.1"
       },
       "bin": {
         "playwright": "cli.js"
       },
       "engines": {
-        "node": ">=14"
+        "node": ">=16"
       },
       "optionalDependencies": {
         "fsevents": "2.3.2"
@@ -52,15 +52,15 @@
       }
     },
     "node_modules/playwright-core": {
-      "version": "1.34.3",
-      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.34.3.tgz",
-      "integrity": "sha512-2pWd6G7OHKemc5x1r1rp8aQcpvDh7goMBZlJv6Co5vCNLVcQJdhxRL09SGaY6HcyHH9aT4tiynZabMofVasBYw==",
+      "version": "1.36.1",
+      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.36.1.tgz",
+      "integrity": "sha512-7+tmPuMcEW4xeCL9cp9KxmYpQYHKkyjwoXRnoeTowaeNat8PoBMk/HwCYhqkH2fRkshfKEOiVus/IhID2Pg8kg==",
       "dev": true,
       "bin": {
         "playwright-core": "cli.js"
       },
       "engines": {
-        "node": ">=14"
+        "node": ">=16"
       }
     }
   }

+ 1 - 1
package.json → playwright-tests/package.json

@@ -12,6 +12,6 @@
   "author": "",
   "license": "ISC",
   "devDependencies": {
-    "@playwright/test": "^1.34.3"
+    "@playwright/test": "^1.36.1"
   }
 }

+ 62 - 0
playwright-tests/playwright-report/index.html

@@ -0,0 +1,62 @@
+
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset='UTF-8'>
+    <meta name='color-scheme' content='dark light'>
+    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
+    <title>Playwright Test Report</title>
+    <script type="module">var s0=Object.defineProperty;var i0=(e,t,n)=>t in e?s0(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var xt=(e,t,n)=>(i0(e,typeof t!="symbol"?t+"":t,n),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();var qn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function l0(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Iu={exports:{}},ls={},Du={exports:{}},q={};/**
+ * @license React
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var qr=Symbol.for("react.element"),c0=Symbol.for("react.portal"),a0=Symbol.for("react.fragment"),u0=Symbol.for("react.strict_mode"),f0=Symbol.for("react.profiler"),d0=Symbol.for("react.provider"),p0=Symbol.for("react.context"),h0=Symbol.for("react.forward_ref"),g0=Symbol.for("react.suspense"),m0=Symbol.for("react.memo"),v0=Symbol.for("react.lazy"),hc=Symbol.iterator;function w0(e){return e===null||typeof e!="object"?null:(e=hc&&e[hc]||e["@@iterator"],typeof e=="function"?e:null)}var Ru={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},bu=Object.assign,Tu={};function Xn(e,t,n){this.props=e,this.context=t,this.refs=Tu,this.updater=n||Ru}Xn.prototype.isReactComponent={};Xn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Xn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Nu(){}Nu.prototype=Xn.prototype;function al(e,t,n){this.props=e,this.context=t,this.refs=Tu,this.updater=n||Ru}var ul=al.prototype=new Nu;ul.constructor=al;bu(ul,Xn.prototype);ul.isPureReactComponent=!0;var gc=Array.isArray,Lu=Object.prototype.hasOwnProperty,fl={current:null},Pu={key:!0,ref:!0,__self:!0,__source:!0};function Ou(e,t,n){var r,o={},s=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(s=""+t.key),t)Lu.call(t,r)&&!Pu.hasOwnProperty(r)&&(o[r]=t[r]);var l=arguments.length-2;if(l===1)o.children=n;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];o.children=c}if(e&&e.defaultProps)for(r in l=e.defaultProps,l)o[r]===void 0&&(o[r]=l[r]);return{$$typeof:qr,type:e,key:s,ref:i,props:o,_owner:fl.current}}function y0(e,t){return{$$typeof:qr,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function dl(e){return typeof e=="object"&&e!==null&&e.$$typeof===qr}function A0(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var mc=/\/+/g;function Ds(e,t){return typeof e=="object"&&e!==null&&e.key!=null?A0(""+e.key):t.toString(36)}function wo(e,t,n,r,o){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(s){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case qr:case c0:i=!0}}if(i)return i=e,o=o(i),e=r===""?"."+Ds(i,0):r,gc(o)?(n="",e!=null&&(n=e.replace(mc,"$&/")+"/"),wo(o,t,n,"",function(u){return u})):o!=null&&(dl(o)&&(o=y0(o,n+(!o.key||i&&i.key===o.key?"":(""+o.key).replace(mc,"$&/")+"/")+e)),t.push(o)),1;if(i=0,r=r===""?".":r+":",gc(e))for(var l=0;l<e.length;l++){s=e[l];var c=r+Ds(s,l);i+=wo(s,t,n,c,o)}else if(c=w0(e),typeof c=="function")for(e=c.call(e),l=0;!(s=e.next()).done;)s=s.value,c=r+Ds(s,l++),i+=wo(s,t,n,c,o);else if(s==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return i}function Xr(e,t,n){if(e==null)return e;var r=[],o=0;return wo(e,r,"","",function(s){return t.call(n,s,o++)}),r}function E0(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var Ee={current:null},yo={transition:null},x0={ReactCurrentDispatcher:Ee,ReactCurrentBatchConfig:yo,ReactCurrentOwner:fl};q.Children={map:Xr,forEach:function(e,t,n){Xr(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Xr(e,function(){t++}),t},toArray:function(e){return Xr(e,function(t){return t})||[]},only:function(e){if(!dl(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};q.Component=Xn;q.Fragment=a0;q.Profiler=f0;q.PureComponent=al;q.StrictMode=u0;q.Suspense=g0;q.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=x0;q.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=bu({},e.props),o=e.key,s=e.ref,i=e._owner;if(t!=null){if(t.ref!==void 0&&(s=t.ref,i=fl.current),t.key!==void 0&&(o=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)Lu.call(t,c)&&!Pu.hasOwnProperty(c)&&(r[c]=t[c]===void 0&&l!==void 0?l[c]:t[c])}var c=arguments.length-2;if(c===1)r.children=n;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];r.children=l}return{$$typeof:qr,type:e.type,key:o,ref:s,props:r,_owner:i}};q.createContext=function(e){return e={$$typeof:p0,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:d0,_context:e},e.Consumer=e};q.createElement=Ou;q.createFactory=function(e){var t=Ou.bind(null,e);return t.type=e,t};q.createRef=function(){return{current:null}};q.forwardRef=function(e){return{$$typeof:h0,render:e}};q.isValidElement=dl;q.lazy=function(e){return{$$typeof:v0,_payload:{_status:-1,_result:e},_init:E0}};q.memo=function(e,t){return{$$typeof:m0,type:e,compare:t===void 0?null:t}};q.startTransition=function(e){var t=yo.transition;yo.transition={};try{e()}finally{yo.transition=t}};q.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")};q.useCallback=function(e,t){return Ee.current.useCallback(e,t)};q.useContext=function(e){return Ee.current.useContext(e)};q.useDebugValue=function(){};q.useDeferredValue=function(e){return Ee.current.useDeferredValue(e)};q.useEffect=function(e,t){return Ee.current.useEffect(e,t)};q.useId=function(){return Ee.current.useId()};q.useImperativeHandle=function(e,t,n){return Ee.current.useImperativeHandle(e,t,n)};q.useInsertionEffect=function(e,t){return Ee.current.useInsertionEffect(e,t)};q.useLayoutEffect=function(e,t){return Ee.current.useLayoutEffect(e,t)};q.useMemo=function(e,t){return Ee.current.useMemo(e,t)};q.useReducer=function(e,t,n){return Ee.current.useReducer(e,t,n)};q.useRef=function(e){return Ee.current.useRef(e)};q.useState=function(e){return Ee.current.useState(e)};q.useSyncExternalStore=function(e,t,n){return Ee.current.useSyncExternalStore(e,t,n)};q.useTransition=function(){return Ee.current.useTransition()};q.version="18.1.0";Du.exports=q;var Q=Du.exports;/**
+ * @license React
+ * react-jsx-runtime.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var k0=Q,S0=Symbol.for("react.element"),C0=Symbol.for("react.fragment"),I0=Object.prototype.hasOwnProperty,D0=k0.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,R0={key:!0,ref:!0,__self:!0,__source:!0};function Bu(e,t,n){var r,o={},s=null,i=null;n!==void 0&&(s=""+n),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(i=t.ref);for(r in t)I0.call(t,r)&&!R0.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)o[r]===void 0&&(o[r]=t[r]);return{$$typeof:S0,type:e,key:s,ref:i,props:o,_owner:D0.current}}ls.Fragment=C0;ls.jsx=Bu;ls.jsxs=Bu;Iu.exports=ls;var pl=Iu.exports;const dn=pl.Fragment,A=pl.jsx,O=pl.jsxs,b0=15,j=0,ht=1,T0=2,Se=-2,Z=-3,vc=-4,gt=-5,Le=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Hu=1440,N0=0,L0=4,P0=9,O0=5,B0=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],H0=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],M0=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],F0=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],U0=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],q0=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],kt=15;function ai(){const e=this;let t,n,r,o,s,i;function l(u,p,v,h,C,E,g,m,a,f,d){let y,k,w,x,S,D,I,T,B,P,G,U,H,re,b;P=0,S=v;do r[u[p+P]]++,P++,S--;while(S!==0);if(r[0]==v)return g[0]=-1,m[0]=0,j;for(T=m[0],D=1;D<=kt&&r[D]===0;D++);for(I=D,T<D&&(T=D),S=kt;S!==0&&r[S]===0;S--);for(w=S,T>S&&(T=S),m[0]=T,re=1<<D;D<S;D++,re<<=1)if((re-=r[D])<0)return Z;if((re-=r[S])<0)return Z;for(r[S]+=re,i[1]=D=0,P=1,H=2;--S!==0;)i[H]=D+=r[P],H++,P++;S=0,P=0;do(D=u[p+P])!==0&&(d[i[D]++]=S),P++;while(++S<v);for(v=i[w],i[0]=S=0,P=0,x=-1,U=-T,s[0]=0,G=0,b=0;I<=w;I++)for(y=r[I];y--!==0;){for(;I>U+T;){if(x++,U+=T,b=w-U,b=b>T?T:b,(k=1<<(D=I-U))>y+1&&(k-=y+1,H=I,D<b))for(;++D<b&&!((k<<=1)<=r[++H]);)k-=r[H];if(b=1<<D,f[0]+b>Hu)return Z;s[x]=G=f[0],f[0]+=b,x!==0?(i[x]=S,o[0]=D,o[1]=T,D=S>>>U-T,o[2]=G-s[x-1]-D,a.set(o,(s[x-1]+D)*3)):g[0]=G}for(o[1]=I-U,P>=v?o[0]=128+64:d[P]<h?(o[0]=d[P]<256?0:32+64,o[2]=d[P++]):(o[0]=E[d[P]-h]+16+64,o[2]=C[d[P++]-h]),k=1<<I-U,D=S>>>U;D<b;D+=k)a.set(o,(G+D)*3);for(D=1<<I-1;S&D;D>>>=1)S^=D;for(S^=D,B=(1<<U)-1;(S&B)!=i[x];)x--,U-=T,B=(1<<U)-1}return re!==0&&w!=1?gt:j}function c(u){let p;for(t||(t=[],n=[],r=new Int32Array(kt+1),o=[],s=new Int32Array(kt),i=new Int32Array(kt+1)),n.length<u&&(n=[]),p=0;p<u;p++)n[p]=0;for(p=0;p<kt+1;p++)r[p]=0;for(p=0;p<3;p++)o[p]=0;s.set(r.subarray(0,kt),0),i.set(r.subarray(0,kt+1),0)}e.inflate_trees_bits=function(u,p,v,h,C){let E;return c(19),t[0]=0,E=l(u,0,19,19,null,null,v,p,h,t,n),E==Z?C.msg="oversubscribed dynamic bit lengths tree":(E==gt||p[0]===0)&&(C.msg="incomplete dynamic bit lengths tree",E=Z),E},e.inflate_trees_dynamic=function(u,p,v,h,C,E,g,m,a){let f;return c(288),t[0]=0,f=l(v,0,u,257,M0,F0,E,h,m,t,n),f!=j||h[0]===0?(f==Z?a.msg="oversubscribed literal/length tree":f!=vc&&(a.msg="incomplete literal/length tree",f=Z),f):(c(288),f=l(v,u,p,0,U0,q0,g,C,m,t,n),f!=j||C[0]===0&&u>257?(f==Z?a.msg="oversubscribed distance tree":f==gt?(a.msg="incomplete distance tree",f=Z):f!=vc&&(a.msg="empty distance tree with lengths",f=Z),f):j)}}ai.inflate_trees_fixed=function(e,t,n,r){return e[0]=P0,t[0]=O0,n[0]=B0,r[0]=H0,j};const zr=0,wc=1,yc=2,Ac=3,Ec=4,xc=5,kc=6,Rs=7,Sc=8,Kr=9;function Q0(){const e=this;let t,n=0,r,o=0,s=0,i=0,l=0,c=0,u=0,p=0,v,h=0,C,E=0;function g(m,a,f,d,y,k,w,x){let S,D,I,T,B,P,G,U,H,re,b,M,N,X,F,Y;G=x.next_in_index,U=x.avail_in,B=w.bitb,P=w.bitk,H=w.write,re=H<w.read?w.read-H-1:w.end-H,b=Le[m],M=Le[a];do{for(;P<20;)U--,B|=(x.read_byte(G++)&255)<<P,P+=8;if(S=B&b,D=f,I=d,Y=(I+S)*3,(T=D[Y])===0){B>>=D[Y+1],P-=D[Y+1],w.window[H++]=D[Y+2],re--;continue}do{if(B>>=D[Y+1],P-=D[Y+1],T&16){for(T&=15,N=D[Y+2]+(B&Le[T]),B>>=T,P-=T;P<15;)U--,B|=(x.read_byte(G++)&255)<<P,P+=8;S=B&M,D=y,I=k,Y=(I+S)*3,T=D[Y];do if(B>>=D[Y+1],P-=D[Y+1],T&16){for(T&=15;P<T;)U--,B|=(x.read_byte(G++)&255)<<P,P+=8;if(X=D[Y+2]+(B&Le[T]),B>>=T,P-=T,re-=N,H>=X)F=H-X,H-F>0&&2>H-F?(w.window[H++]=w.window[F++],w.window[H++]=w.window[F++],N-=2):(w.window.set(w.window.subarray(F,F+2),H),H+=2,F+=2,N-=2);else{F=H-X;do F+=w.end;while(F<0);if(T=w.end-F,N>T){if(N-=T,H-F>0&&T>H-F)do w.window[H++]=w.window[F++];while(--T!==0);else w.window.set(w.window.subarray(F,F+T),H),H+=T,F+=T,T=0;F=0}}if(H-F>0&&N>H-F)do w.window[H++]=w.window[F++];while(--N!==0);else w.window.set(w.window.subarray(F,F+N),H),H+=N,F+=N,N=0;break}else if(!(T&64))S+=D[Y+2],S+=B&Le[T],Y=(I+S)*3,T=D[Y];else return x.msg="invalid distance code",N=x.avail_in-U,N=P>>3<N?P>>3:N,U+=N,G-=N,P-=N<<3,w.bitb=B,w.bitk=P,x.avail_in=U,x.total_in+=G-x.next_in_index,x.next_in_index=G,w.write=H,Z;while(!0);break}if(T&64)return T&32?(N=x.avail_in-U,N=P>>3<N?P>>3:N,U+=N,G-=N,P-=N<<3,w.bitb=B,w.bitk=P,x.avail_in=U,x.total_in+=G-x.next_in_index,x.next_in_index=G,w.write=H,ht):(x.msg="invalid literal/length code",N=x.avail_in-U,N=P>>3<N?P>>3:N,U+=N,G-=N,P-=N<<3,w.bitb=B,w.bitk=P,x.avail_in=U,x.total_in+=G-x.next_in_index,x.next_in_index=G,w.write=H,Z);if(S+=D[Y+2],S+=B&Le[T],Y=(I+S)*3,(T=D[Y])===0){B>>=D[Y+1],P-=D[Y+1],w.window[H++]=D[Y+2],re--;break}}while(!0)}while(re>=258&&U>=10);return N=x.avail_in-U,N=P>>3<N?P>>3:N,U+=N,G-=N,P-=N<<3,w.bitb=B,w.bitk=P,x.avail_in=U,x.total_in+=G-x.next_in_index,x.next_in_index=G,w.write=H,j}e.init=function(m,a,f,d,y,k){t=zr,u=m,p=a,v=f,h=d,C=y,E=k,r=null},e.proc=function(m,a,f){let d,y,k,w=0,x=0,S=0,D,I,T,B;for(S=a.next_in_index,D=a.avail_in,w=m.bitb,x=m.bitk,I=m.write,T=I<m.read?m.read-I-1:m.end-I;;)switch(t){case zr:if(T>=258&&D>=10&&(m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,f=g(u,p,v,h,C,E,m,a),S=a.next_in_index,D=a.avail_in,w=m.bitb,x=m.bitk,I=m.write,T=I<m.read?m.read-I-1:m.end-I,f!=j)){t=f==ht?Rs:Kr;break}s=u,r=v,o=h,t=wc;case wc:for(d=s;x<d;){if(D!==0)f=j;else return m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,m.inflate_flush(a,f);D--,w|=(a.read_byte(S++)&255)<<x,x+=8}if(y=(o+(w&Le[d]))*3,w>>>=r[y+1],x-=r[y+1],k=r[y],k===0){i=r[y+2],t=kc;break}if(k&16){l=k&15,n=r[y+2],t=yc;break}if(!(k&64)){s=k,o=y/3+r[y+2];break}if(k&32){t=Rs;break}return t=Kr,a.msg="invalid literal/length code",f=Z,m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,m.inflate_flush(a,f);case yc:for(d=l;x<d;){if(D!==0)f=j;else return m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,m.inflate_flush(a,f);D--,w|=(a.read_byte(S++)&255)<<x,x+=8}n+=w&Le[d],w>>=d,x-=d,s=p,r=C,o=E,t=Ac;case Ac:for(d=s;x<d;){if(D!==0)f=j;else return m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,m.inflate_flush(a,f);D--,w|=(a.read_byte(S++)&255)<<x,x+=8}if(y=(o+(w&Le[d]))*3,w>>=r[y+1],x-=r[y+1],k=r[y],k&16){l=k&15,c=r[y+2],t=Ec;break}if(!(k&64)){s=k,o=y/3+r[y+2];break}return t=Kr,a.msg="invalid distance code",f=Z,m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,m.inflate_flush(a,f);case Ec:for(d=l;x<d;){if(D!==0)f=j;else return m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,m.inflate_flush(a,f);D--,w|=(a.read_byte(S++)&255)<<x,x+=8}c+=w&Le[d],w>>=d,x-=d,t=xc;case xc:for(B=I-c;B<0;)B+=m.end;for(;n!==0;){if(T===0&&(I==m.end&&m.read!==0&&(I=0,T=I<m.read?m.read-I-1:m.end-I),T===0&&(m.write=I,f=m.inflate_flush(a,f),I=m.write,T=I<m.read?m.read-I-1:m.end-I,I==m.end&&m.read!==0&&(I=0,T=I<m.read?m.read-I-1:m.end-I),T===0)))return m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,m.inflate_flush(a,f);m.window[I++]=m.window[B++],T--,B==m.end&&(B=0),n--}t=zr;break;case kc:if(T===0&&(I==m.end&&m.read!==0&&(I=0,T=I<m.read?m.read-I-1:m.end-I),T===0&&(m.write=I,f=m.inflate_flush(a,f),I=m.write,T=I<m.read?m.read-I-1:m.end-I,I==m.end&&m.read!==0&&(I=0,T=I<m.read?m.read-I-1:m.end-I),T===0)))return m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,m.inflate_flush(a,f);f=j,m.window[I++]=i,T--,t=zr;break;case Rs:if(x>7&&(x-=8,D++,S--),m.write=I,f=m.inflate_flush(a,f),I=m.write,T=I<m.read?m.read-I-1:m.end-I,m.read!=m.write)return m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,m.inflate_flush(a,f);t=Sc;case Sc:return f=ht,m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,m.inflate_flush(a,f);case Kr:return f=Z,m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,m.inflate_flush(a,f);default:return f=Se,m.bitb=w,m.bitk=x,a.avail_in=D,a.total_in+=S-a.next_in_index,a.next_in_index=S,m.write=I,m.inflate_flush(a,f)}},e.free=function(){}}const Cc=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],gn=0,bs=1,Ic=2,Dc=3,Rc=4,bc=5,Zr=6,Jr=7,Tc=8,Zt=9;function j0(e,t){const n=this;let r=gn,o=0,s=0,i=0,l;const c=[0],u=[0],p=new Q0;let v=0,h=new Int32Array(Hu*3);const C=0,E=new ai;n.bitk=0,n.bitb=0,n.window=new Uint8Array(t),n.end=t,n.read=0,n.write=0,n.reset=function(g,m){m&&(m[0]=C),r==Zr&&p.free(g),r=gn,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(e,null),n.inflate_flush=function(g,m){let a,f,d;return f=g.next_out_index,d=n.read,a=(d<=n.write?n.write:n.end)-d,a>g.avail_out&&(a=g.avail_out),a!==0&&m==gt&&(m=j),g.avail_out-=a,g.total_out+=a,g.next_out.set(n.window.subarray(d,d+a),f),f+=a,d+=a,d==n.end&&(d=0,n.write==n.end&&(n.write=0),a=n.write-d,a>g.avail_out&&(a=g.avail_out),a!==0&&m==gt&&(m=j),g.avail_out-=a,g.total_out+=a,g.next_out.set(n.window.subarray(d,d+a),f),f+=a,d+=a),g.next_out_index=f,n.read=d,m},n.proc=function(g,m){let a,f,d,y,k,w,x,S;for(y=g.next_in_index,k=g.avail_in,f=n.bitb,d=n.bitk,w=n.write,x=w<n.read?n.read-w-1:n.end-w;;){let D,I,T,B,P,G,U,H;switch(r){case gn:for(;d<3;){if(k!==0)m=j;else return n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);k--,f|=(g.read_byte(y++)&255)<<d,d+=8}switch(a=f&7,v=a&1,a>>>1){case 0:f>>>=3,d-=3,a=d&7,f>>>=a,d-=a,r=bs;break;case 1:D=[],I=[],T=[[]],B=[[]],ai.inflate_trees_fixed(D,I,T,B),p.init(D[0],I[0],T[0],0,B[0],0),f>>>=3,d-=3,r=Zr;break;case 2:f>>>=3,d-=3,r=Dc;break;case 3:return f>>>=3,d-=3,r=Zt,g.msg="invalid block type",m=Z,n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m)}break;case bs:for(;d<32;){if(k!==0)m=j;else return n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);k--,f|=(g.read_byte(y++)&255)<<d,d+=8}if((~f>>>16&65535)!=(f&65535))return r=Zt,g.msg="invalid stored block lengths",m=Z,n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);o=f&65535,f=d=0,r=o!==0?Ic:v!==0?Jr:gn;break;case Ic:if(k===0||x===0&&(w==n.end&&n.read!==0&&(w=0,x=w<n.read?n.read-w-1:n.end-w),x===0&&(n.write=w,m=n.inflate_flush(g,m),w=n.write,x=w<n.read?n.read-w-1:n.end-w,w==n.end&&n.read!==0&&(w=0,x=w<n.read?n.read-w-1:n.end-w),x===0)))return n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);if(m=j,a=o,a>k&&(a=k),a>x&&(a=x),n.window.set(g.read_buf(y,a),w),y+=a,k-=a,w+=a,x-=a,(o-=a)!==0)break;r=v!==0?Jr:gn;break;case Dc:for(;d<14;){if(k!==0)m=j;else return n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);k--,f|=(g.read_byte(y++)&255)<<d,d+=8}if(s=a=f&16383,(a&31)>29||(a>>5&31)>29)return r=Zt,g.msg="too many length or distance symbols",m=Z,n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);if(a=258+(a&31)+(a>>5&31),!l||l.length<a)l=[];else for(S=0;S<a;S++)l[S]=0;f>>>=14,d-=14,i=0,r=Rc;case Rc:for(;i<4+(s>>>10);){for(;d<3;){if(k!==0)m=j;else return n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);k--,f|=(g.read_byte(y++)&255)<<d,d+=8}l[Cc[i++]]=f&7,f>>>=3,d-=3}for(;i<19;)l[Cc[i++]]=0;if(c[0]=7,a=E.inflate_trees_bits(l,c,u,h,g),a!=j)return m=a,m==Z&&(l=null,r=Zt),n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);i=0,r=bc;case bc:for(;a=s,!(i>=258+(a&31)+(a>>5&31));){let re,b;for(a=c[0];d<a;){if(k!==0)m=j;else return n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);k--,f|=(g.read_byte(y++)&255)<<d,d+=8}if(a=h[(u[0]+(f&Le[a]))*3+1],b=h[(u[0]+(f&Le[a]))*3+2],b<16)f>>>=a,d-=a,l[i++]=b;else{for(S=b==18?7:b-14,re=b==18?11:3;d<a+S;){if(k!==0)m=j;else return n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);k--,f|=(g.read_byte(y++)&255)<<d,d+=8}if(f>>>=a,d-=a,re+=f&Le[S],f>>>=S,d-=S,S=i,a=s,S+re>258+(a&31)+(a>>5&31)||b==16&&S<1)return l=null,r=Zt,g.msg="invalid bit length repeat",m=Z,n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);b=b==16?l[S-1]:0;do l[S++]=b;while(--re!==0);i=S}}if(u[0]=-1,P=[],G=[],U=[],H=[],P[0]=9,G[0]=6,a=s,a=E.inflate_trees_dynamic(257+(a&31),1+(a>>5&31),l,P,G,U,H,h,g),a!=j)return a==Z&&(l=null,r=Zt),m=a,n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);p.init(P[0],G[0],h,U[0],h,H[0]),r=Zr;case Zr:if(n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,(m=p.proc(n,g,m))!=ht)return n.inflate_flush(g,m);if(m=j,p.free(g),y=g.next_in_index,k=g.avail_in,f=n.bitb,d=n.bitk,w=n.write,x=w<n.read?n.read-w-1:n.end-w,v===0){r=gn;break}r=Jr;case Jr:if(n.write=w,m=n.inflate_flush(g,m),w=n.write,x=w<n.read?n.read-w-1:n.end-w,n.read!=n.write)return n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);r=Tc;case Tc:return m=ht,n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);case Zt:return m=Z,n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m);default:return m=Se,n.bitb=f,n.bitk=d,g.avail_in=k,g.total_in+=y-g.next_in_index,g.next_in_index=y,n.write=w,n.inflate_flush(g,m)}}},n.free=function(g){n.reset(g,null),n.window=null,h=null},n.set_dictionary=function(g,m,a){n.window.set(g.subarray(m,m+a),0),n.read=n.write=a},n.sync_point=function(){return r==bs?1:0}}const V0=32,G0=8,W0=0,Nc=1,Lc=2,Pc=3,Oc=4,Bc=5,Ts=6,Zn=7,Hc=12,St=13,Y0=[0,0,255,255];function X0(){const e=this;e.mode=0,e.method=0,e.was=[0],e.need=0,e.marker=0,e.wbits=0;function t(n){return!n||!n.istate?Se:(n.total_in=n.total_out=0,n.msg=null,n.istate.mode=Zn,n.istate.blocks.reset(n,null),j)}e.inflateEnd=function(n){return e.blocks&&e.blocks.free(n),e.blocks=null,j},e.inflateInit=function(n,r){return n.msg=null,e.blocks=null,r<8||r>15?(e.inflateEnd(n),Se):(e.wbits=r,n.istate.blocks=new j0(n,1<<r),t(n),j)},e.inflate=function(n,r){let o,s;if(!n||!n.istate||!n.next_in)return Se;const i=n.istate;for(r=r==L0?gt:j,o=gt;;)switch(i.mode){case W0:if(n.avail_in===0)return o;if(o=r,n.avail_in--,n.total_in++,((i.method=n.read_byte(n.next_in_index++))&15)!=G0){i.mode=St,n.msg="unknown compression method",i.marker=5;break}if((i.method>>4)+8>i.wbits){i.mode=St,n.msg="invalid window size",i.marker=5;break}i.mode=Nc;case Nc:if(n.avail_in===0)return o;if(o=r,n.avail_in--,n.total_in++,s=n.read_byte(n.next_in_index++)&255,((i.method<<8)+s)%31!==0){i.mode=St,n.msg="incorrect header check",i.marker=5;break}if(!(s&V0)){i.mode=Zn;break}i.mode=Lc;case Lc:if(n.avail_in===0)return o;o=r,n.avail_in--,n.total_in++,i.need=(n.read_byte(n.next_in_index++)&255)<<24&4278190080,i.mode=Pc;case Pc:if(n.avail_in===0)return o;o=r,n.avail_in--,n.total_in++,i.need+=(n.read_byte(n.next_in_index++)&255)<<16&16711680,i.mode=Oc;case Oc:if(n.avail_in===0)return o;o=r,n.avail_in--,n.total_in++,i.need+=(n.read_byte(n.next_in_index++)&255)<<8&65280,i.mode=Bc;case Bc:return n.avail_in===0?o:(o=r,n.avail_in--,n.total_in++,i.need+=n.read_byte(n.next_in_index++)&255,i.mode=Ts,T0);case Ts:return i.mode=St,n.msg="need dictionary",i.marker=0,Se;case Zn:if(o=i.blocks.proc(n,o),o==Z){i.mode=St,i.marker=0;break}if(o==j&&(o=r),o!=ht)return o;o=r,i.blocks.reset(n,i.was),i.mode=Hc;case Hc:return ht;case St:return Z;default:return Se}},e.inflateSetDictionary=function(n,r,o){let s=0,i=o;if(!n||!n.istate||n.istate.mode!=Ts)return Se;const l=n.istate;return i>=1<<l.wbits&&(i=(1<<l.wbits)-1,s=o-i),l.blocks.set_dictionary(r,s,i),l.mode=Zn,j},e.inflateSync=function(n){let r,o,s,i,l;if(!n||!n.istate)return Se;const c=n.istate;if(c.mode!=St&&(c.mode=St,c.marker=0),(r=n.avail_in)===0)return gt;for(o=n.next_in_index,s=c.marker;r!==0&&s<4;)n.read_byte(o)==Y0[s]?s++:n.read_byte(o)!==0?s=0:s=4-s,o++,r--;return n.total_in+=o-n.next_in_index,n.next_in_index=o,n.avail_in=r,c.marker=s,s!=4?Z:(i=n.total_in,l=n.total_out,t(n),n.total_in=i,n.total_out=l,c.mode=Zn,j)},e.inflateSyncPoint=function(n){return!n||!n.istate||!n.istate.blocks?Se:n.istate.blocks.sync_point()}}function Mu(){}Mu.prototype={inflateInit:function(e){const t=this;return t.istate=new X0,e||(e=b0),t.istate.inflateInit(t,e)},inflate:function(e){const t=this;return t.istate?t.istate.inflate(t,e):Se},inflateEnd:function(){const e=this;if(!e.istate)return Se;const t=e.istate.inflateEnd(e);return e.istate=null,t},inflateSync:function(){const e=this;return e.istate?e.istate.inflateSync(e):Se},inflateSetDictionary:function(e,t){const n=this;return n.istate?n.istate.inflateSetDictionary(n,e,t):Se},read_byte:function(e){return this.next_in[e]},read_buf:function(e,t){return this.next_in.subarray(e,e+t)}};function z0(e){const t=this,n=new Mu,r=e&&e.chunkSize?Math.floor(e.chunkSize*2):128*1024,o=N0,s=new Uint8Array(r);let i=!1;n.inflateInit(),n.next_out=s,t.append=function(l,c){const u=[];let p,v,h=0,C=0,E=0;if(l.length!==0){n.next_in_index=0,n.next_in=l,n.avail_in=l.length;do{if(n.next_out_index=0,n.avail_out=r,n.avail_in===0&&!i&&(n.next_in_index=0,i=!0),p=n.inflate(o),i&&p===gt){if(n.avail_in!==0)throw new Error("inflating: bad input")}else if(p!==j&&p!==ht)throw new Error("inflating: "+n.msg);if((i||p===ht)&&n.avail_in===l.length)throw new Error("inflating: bad input");n.next_out_index&&(n.next_out_index===r?u.push(new Uint8Array(s)):u.push(s.slice(0,n.next_out_index))),E+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=h&&(c(n.next_in_index),h=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return u.length>1?(v=new Uint8Array(E),u.forEach(function(g){v.set(g,C),C+=g.length})):v=u[0]||new Uint8Array(0),v}},t.flush=function(){n.inflateEnd()}}const K0={chunkSize:512*1024,maxWorkers:typeof navigator<"u"&&navigator.hardwareConcurrency||2,terminateWorkerTimeout:5e3,useWebWorkers:!0,workerScripts:void 0},ke=Object.assign({},K0);function Z0(){return ke}function Fu(e){if(e.baseURL!==void 0&&(ke.baseURL=e.baseURL),e.chunkSize!==void 0&&(ke.chunkSize=e.chunkSize),e.maxWorkers!==void 0&&(ke.maxWorkers=e.maxWorkers),e.terminateWorkerTimeout!==void 0&&(ke.terminateWorkerTimeout=e.terminateWorkerTimeout),e.useWebWorkers!==void 0&&(ke.useWebWorkers=e.useWebWorkers),e.Deflate!==void 0&&(ke.Deflate=e.Deflate),e.Inflate!==void 0&&(ke.Inflate=e.Inflate),e.workerScripts!==void 0){if(e.workerScripts.deflate){if(!Array.isArray(e.workerScripts.deflate))throw new Error("workerScripts.deflate must be an array");ke.workerScripts||(ke.workerScripts={}),ke.workerScripts.deflate=e.workerScripts.deflate}if(e.workerScripts.inflate){if(!Array.isArray(e.workerScripts.inflate))throw new Error("workerScripts.inflate must be an array");ke.workerScripts||(ke.workerScripts={}),ke.workerScripts.inflate=e.workerScripts.inflate}}}function J0(){return"application/octet-stream"}const _0=64,Uu="Abort error";async function $0(e,t,n,r,o,s,i){const l=Math.max(s.chunkSize,_0);return c();async function c(u=0,p=0){const v=i.signal;if(u<o){Ns(v,e);const h=await t.readUint8Array(u+r,Math.min(l,o-u)),C=h.length;Ns(v,e);const E=await e.append(h);if(Ns(v,e),p+=await Mc(n,E),i.onprogress)try{i.onprogress(u+C,o)}catch{}return c(u+l,p)}else{const h=await e.flush();return p+=await Mc(n,h.data),{signature:h.signature,length:p}}}}function Ns(e,t){if(e&&e.aborted)throw t.flush(),new Error(Uu)}async function Mc(e,t){return t.length&&await e.writeUint8Array(t),t.length}const qu="HTTP error ",hl="HTTP Range not supported",ui="text/plain",eh="Content-Length",th="Content-Range",nh="Accept-Ranges",rh="Range",oh="HEAD",gl="GET",Qu="bytes";class ju{constructor(){this.size=0}init(){this.initialized=!0}}class Gt extends ju{}class Qr extends ju{writeUint8Array(t){this.size+=t.length}}class sh extends Gt{constructor(t){super(),this.blobReader=new Vu(new Blob([t],{type:ui}))}async init(){super.init(),this.blobReader.init(),this.size=this.blobReader.size}async readUint8Array(t,n){return this.blobReader.readUint8Array(t,n)}}class ih extends Qr{constructor(t){super(),this.encoding=t,this.blob=new Blob([],{type:ui})}async writeUint8Array(t){super.writeUint8Array(t),this.blob=new Blob([this.blob,t.buffer],{type:ui})}getData(){if(this.blob.text)return this.blob.text();{const t=new FileReader;return new Promise((n,r)=>{t.onload=o=>n(o.target.result),t.onerror=()=>r(t.error),t.readAsText(this.blob,this.encoding)})}}}class lh extends Gt{constructor(t){super(),this.dataURI=t;let n=t.length;for(;t.charAt(n-1)=="=";)n--;this.dataStart=t.indexOf(",")+1,this.size=Math.floor((n-this.dataStart)*.75)}async readUint8Array(t,n){const r=new Uint8Array(n),o=Math.floor(t/3)*4,s=atob(this.dataURI.substring(o+this.dataStart,Math.ceil((t+n)/3)*4+this.dataStart)),i=t-Math.floor(o/4)*3;for(let l=i;l<i+n;l++)r[l-i]=s.charCodeAt(l);return r}}class ch extends Qr{constructor(t){super(),this.data="data:"+(t||"")+";base64,",this.pending=[]}async writeUint8Array(t){super.writeUint8Array(t);let n=0,r=this.pending;const o=this.pending.length;for(this.pending="",n=0;n<Math.floor((o+t.length)/3)*3-o;n++)r+=String.fromCharCode(t[n]);for(;n<t.length;n++)this.pending+=String.fromCharCode(t[n]);r.length>2?this.data+=btoa(r):this.pending=r}getData(){return this.data+btoa(this.pending)}}class Vu extends Gt{constructor(t){super(),this.blob=t,this.size=t.size}async readUint8Array(t,n){if(this.blob.arrayBuffer)return new Uint8Array(await this.blob.slice(t,t+n).arrayBuffer());{const r=new FileReader;return new Promise((o,s)=>{r.onload=i=>o(new Uint8Array(i.target.result)),r.onerror=()=>s(r.error),r.readAsArrayBuffer(this.blob.slice(t,t+n))})}}}class ah extends Qr{constructor(t){super(),this.contentType=t,this.arrayBuffers=[]}async writeUint8Array(t){super.writeUint8Array(t),this.arrayBuffers.push(t.buffer)}getData(){return this.blob||(this.blob=new Blob(this.arrayBuffers,{type:this.contentType})),this.blob}}class uh extends Gt{constructor(t,n){super(),this.url=t,this.preventHeadRequest=n.preventHeadRequest,this.useRangeHeader=n.useRangeHeader,this.forceRangeRequests=n.forceRangeRequests,this.options=Object.assign({},n),delete this.options.preventHeadRequest,delete this.options.useRangeHeader,delete this.options.forceRangeRequests,delete this.options.useXHR}async init(){super.init(),await Gu(this,fi,Fc)}async readUint8Array(t,n){return Wu(this,t,n,fi,Fc)}}class fh extends Gt{constructor(t,n){super(),this.url=t,this.preventHeadRequest=n.preventHeadRequest,this.useRangeHeader=n.useRangeHeader,this.forceRangeRequests=n.forceRangeRequests,this.options=n}async init(){super.init(),await Gu(this,di,Uc)}async readUint8Array(t,n){return Wu(this,t,n,di,Uc)}}async function Gu(e,t,n){if(gh(e.url)&&(e.useRangeHeader||e.forceRangeRequests)){const r=await t(gl,e,Yu(e));if(!e.forceRangeRequests&&r.headers.get(nh)!=Qu)throw new Error(hl);{let o;const s=r.headers.get(th);if(s){const i=s.trim().split(/\s*\/\s*/);if(i.length){const l=i[1];l&&l!="*"&&(o=Number(l))}}o===void 0?await qc(e,t,n):e.size=o}}else await qc(e,t,n)}async function Wu(e,t,n,r,o){if(e.useRangeHeader||e.forceRangeRequests){const s=await r(gl,e,Yu(e,t,n));if(s.status!=206)throw new Error(hl);return new Uint8Array(await s.arrayBuffer())}else return e.data||await o(e,e.options),new Uint8Array(e.data.subarray(t,t+n))}function Yu(e,t=0,n=1){return Object.assign({},ml(e),{[rh]:Qu+"="+t+"-"+(t+n-1)})}function ml(e){let t=e.options.headers;if(t)return Symbol.iterator in t?Object.fromEntries(t):t}async function Fc(e){await Xu(e,fi)}async function Uc(e){await Xu(e,di)}async function Xu(e,t){const n=await t(gl,e,ml(e));e.data=new Uint8Array(await n.arrayBuffer()),e.size||(e.size=e.data.length)}async function qc(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const o=(await t(oh,e,ml(e))).headers.get(eh);o?e.size=Number(o):await n(e,e.options)}}async function fi(e,{options:t,url:n},r){const o=await fetch(n,Object.assign({},t,{method:e,headers:r}));if(o.status<400)return o;throw new Error(qu+(o.statusText||o.status))}function di(e,{url:t},n){return new Promise((r,o)=>{const s=new XMLHttpRequest;if(s.addEventListener("load",()=>{if(s.status<400){const i=[];s.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(l=>{const c=l.trim().split(/\s*:\s*/);c[0]=c[0].trim().replace(/^[a-z]|-[a-z]/g,u=>u.toUpperCase()),i.push(c)}),r({status:s.status,arrayBuffer:()=>s.response,headers:new Map(i)})}else o(new Error(qu+(s.statusText||s.status)))},!1),s.addEventListener("error",i=>o(i.detail.error),!1),s.open(e,t),n)for(const i of Object.entries(n))s.setRequestHeader(i[0],i[1]);s.responseType="arraybuffer",s.send()})}class zu extends Gt{constructor(t,n={}){super(),this.url=t,n.useXHR?this.reader=new fh(t,n):this.reader=new uh(t,n)}set size(t){}get size(){return this.reader.size}async init(){super.init(),await this.reader.init()}async readUint8Array(t,n){return this.reader.readUint8Array(t,n)}}class dh extends zu{constructor(t,n={}){n.useRangeHeader=!0,super(t,n)}}class ph extends Gt{constructor(t){super(),this.array=t,this.size=t.length}async readUint8Array(t,n){return this.array.slice(t,t+n)}}class hh extends Qr{constructor(){super(),this.array=new Uint8Array(0)}async writeUint8Array(t){super.writeUint8Array(t);const n=this.array;this.array=new Uint8Array(n.length+t.length),this.array.set(n),this.array.set(t,n.length)}getData(){return this.array}}function gh(e){if(typeof document<"u"){const t=document.createElement("a");return t.href=e,t.protocol=="http:"||t.protocol=="https:"}else return/^https?:\/\//i.test(e)}const Oo=4294967295,Qc=65535,mh=8,vh=0,wh=99,yh=67324752,jc=33639248,Ah=101010256,Vc=101075792,Eh=117853008,Gc=22,Ls=20,Ps=56,xh=1,kh=39169,Sh=10,Ch=1,Ih=21589,Dh=28789,Rh=25461,Wc=1,bh=6,Yc=8,Xc=2048,zc=16,Th="/",Ku=[];for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t&1?t=t>>>1^3988292384:t=t>>>1;Ku[e]=t}class Ar{constructor(t){this.crc=t||-1}append(t){let n=this.crc|0;for(let r=0,o=t.length|0;r<o;r++)n=n>>>8^Ku[(n^t[r])&255];this.crc=n}get(){return~this.crc}}function Nh(e){if(typeof TextEncoder>"u"){e=unescape(encodeURIComponent(e));const t=new Uint8Array(e.length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}else return new TextEncoder().encode(e)}const Ce={concat(e,t){if(e.length===0||t.length===0)return e.concat(t);const n=e[e.length-1],r=Ce.getPartial(n);return r===32?e.concat(t):Ce._shiftRight(t,r,n|0,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(t===0)return 0;const n=e[t-1];return(t-1)*32+Ce.getPartial(n)},clamp(e,t){if(e.length*32<t)return e;e=e.slice(0,Math.ceil(t/32));const n=e.length;return t=t&31,n>0&&t&&(e[n-1]=Ce.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return e===32?t:(n?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,r){for(r===void 0&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(t===0)return r.concat(e);for(let i=0;i<e.length;i++)r.push(n|e[i]>>>t),n=e[i]<<32-t;const o=e.length?e[e.length-1]:0,s=Ce.getPartial(o);return r.push(Ce.partial(t+s&31,t+s>32?n:r.pop(),1)),r}},Zu={bytes:{fromBits(e){const n=Ce.bitLength(e)/8,r=new Uint8Array(n);let o;for(let s=0;s<n;s++)s&3||(o=e[s/4]),r[s]=o>>>24,o<<=8;return r},toBits(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],(n&3)===3&&(t.push(r),r=0);return n&3&&t.push(Ce.partial(8*(n&3),r)),t}}},vl={};vl.sha1=function(e){e?(this._h=e._h.slice(0),this._buffer=e._buffer.slice(0),this._length=e._length):this.reset()};vl.sha1.prototype={blockSize:512,reset:function(){const e=this;return e._h=this._init.slice(0),e._buffer=[],e._length=0,e},update:function(e){const t=this;typeof e=="string"&&(e=Zu.utf8String.toBits(e));const n=t._buffer=Ce.concat(t._buffer,e),r=t._length,o=t._length=r+Ce.bitLength(e);if(o>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const s=new Uint32Array(n);let i=0;for(let l=t.blockSize+r-(t.blockSize+r&t.blockSize-1);l<=o;l+=t.blockSize)t._block(s.subarray(16*i,16*(i+1))),i+=1;return n.splice(0,16*i),t},finalize:function(){const e=this;let t=e._buffer;const n=e._h;t=Ce.concat(t,[Ce.partial(1,1)]);for(let r=t.length+2;r&15;r++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),n},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:function(e,t,n,r){if(e<=19)return t&n|~t&r;if(e<=39)return t^n^r;if(e<=59)return t&n|t&r|n&r;if(e<=79)return t^n^r},_S:function(e,t){return t<<e|t>>>32-e},_block:function(e){const t=this,n=t._h,r=Array(80);for(let u=0;u<16;u++)r[u]=e[u];let o=n[0],s=n[1],i=n[2],l=n[3],c=n[4];for(let u=0;u<=79;u++){u>=16&&(r[u]=t._S(1,r[u-3]^r[u-8]^r[u-14]^r[u-16]));const p=t._S(5,o)+t._f(u,s,i,l)+c+r[u]+t._key[Math.floor(u/20)]|0;c=l,l=i,i=t._S(30,s),s=o,o=p}n[0]=n[0]+o|0,n[1]=n[1]+s|0,n[2]=n[2]+i|0,n[3]=n[3]+l|0,n[4]=n[4]+c|0}};const Ju={};Ju.aes=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],o=e.length;let s,i,l,c=1;if(o!==4&&o!==6&&o!==8)throw new Error("invalid aes key size");for(t._key=[i=e.slice(0),l=[]],s=o;s<4*o+28;s++){let u=i[s-1];(s%o===0||o===8&&s%o===4)&&(u=n[u>>>24]<<24^n[u>>16&255]<<16^n[u>>8&255]<<8^n[u&255],s%o===0&&(u=u<<8^u>>>24^c<<24,c=c<<1^(c>>7)*283)),i[s]=i[s-o]^u}for(let u=0;s;u++,s--){const p=i[u&3?s:s-4];s<=4||u<4?l[u]=p:l[u]=r[0][n[p>>>24]]^r[1][n[p>>16&255]]^r[2][n[p>>8&255]]^r[3][n[p&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],r=t[4],o=[],s=[];let i,l,c,u;for(let p=0;p<256;p++)s[(o[p]=p<<1^(p>>7)*283)^p]=p;for(let p=i=0;!n[p];p^=l||1,i=s[i]||1){let v=i^i<<1^i<<2^i<<3^i<<4;v=v>>8^v&255^99,n[p]=v,r[v]=p,u=o[c=o[l=o[p]]];let h=u*16843009^c*65537^l*257^p*16843008,C=o[v]*257^v*16843008;for(let E=0;E<4;E++)e[E][p]=C=C<<24^C>>>8,t[E][v]=h=h<<24^h>>>8}for(let p=0;p<5;p++)e[p]=e[p].slice(0),t[p]=t[p].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");const n=this._key[t],r=n.length/4-2,o=[0,0,0,0],s=this._tables[t],i=s[0],l=s[1],c=s[2],u=s[3],p=s[4];let v=e[0]^n[0],h=e[t?3:1]^n[1],C=e[2]^n[2],E=e[t?1:3]^n[3],g=4,m,a,f;for(let d=0;d<r;d++)m=i[v>>>24]^l[h>>16&255]^c[C>>8&255]^u[E&255]^n[g],a=i[h>>>24]^l[C>>16&255]^c[E>>8&255]^u[v&255]^n[g+1],f=i[C>>>24]^l[E>>16&255]^c[v>>8&255]^u[h&255]^n[g+2],E=i[E>>>24]^l[v>>16&255]^c[h>>8&255]^u[C&255]^n[g+3],g+=4,v=m,h=a,C=f;for(let d=0;d<4;d++)o[t?3&-d:d]=p[v>>>24]<<24^p[h>>16&255]<<16^p[C>>8&255]<<8^p[E&255]^n[g++],m=v,v=h,h=C,C=E,E=m;return o}};const _u={};_u.ctrGladman=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if((e>>24&255)===255){let t=e>>16&255,n=e>>8&255,r=e&255;t===255?(t=0,n===255?(n=0,r===255?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let r;if(!(r=t.length))return[];const o=Ce.bitLength(t);for(let s=0;s<r;s+=4){this.incCounter(n);const i=e.encrypt(n);t[s]^=i[0],t[s+1]^=i[1],t[s+2]^=i[2],t[s+3]^=i[3]}return Ce.clamp(t,o)}};const $u={};$u.hmacSha1=class{constructor(e){const t=this,n=t._hash=vl.sha1,r=[[],[]],o=n.prototype.blockSize/32;t._baseHash=[new n,new n],e.length>o&&(e=n.hash(e));for(let s=0;s<o;s++)r[0][s]=e[s]^909522486,r[1][s]=e[s]^1549556828;t._baseHash[0].update(r[0]),t._baseHash[1].update(r[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){const t=this;t._updated=!0,t._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}};const wl="Invalid pasword",wn=16,Lh="raw",ef={name:"PBKDF2"},Ph={name:"HMAC"},Oh="SHA-1",Bh=Object.assign({hash:Ph},ef),Hh=Object.assign({iterations:1e3,hash:{name:Oh}},ef),Mh=["deriveBits"],Er=[8,12,16],Jn=[16,24,32],It=10,tf=[0,0,0,0],it=Zu.bytes,nf=Ju.aes,rf=_u.ctrGladman,of=$u.hmacSha1;class Fh{constructor(t,n,r){Object.assign(this,{password:t,signed:n,strength:r-1,pendingInput:new Uint8Array(0)})}async append(t){const n=this;if(n.password){const o=Oe(t,0,Er[n.strength]+2);await qh(n,o,n.password),n.password=null,n.aesCtrGladman=new rf(new nf(n.keys.key),Array.from(tf)),n.hmac=new of(n.keys.authentication),t=Oe(t,Er[n.strength]+2)}const r=new Uint8Array(t.length-It-(t.length-It)%wn);return sf(n,t,r,0,It,!0)}flush(){const t=this,n=t.pendingInput,r=Oe(n,0,n.length-It),o=Oe(n,n.length-It);let s=new Uint8Array(0);if(r.length){const l=it.toBits(r);t.hmac.update(l);const c=t.aesCtrGladman.update(l);s=it.fromBits(c)}let i=!0;if(t.signed){const l=Oe(it.fromBits(t.hmac.digest()),0,It);for(let c=0;c<It;c++)l[c]!=o[c]&&(i=!1)}return{valid:i,data:s}}}class Uh{constructor(t,n){Object.assign(this,{password:t,strength:n-1,pendingInput:new Uint8Array(0)})}async append(t){const n=this;let r=new Uint8Array(0);n.password&&(r=await Qh(n,n.password),n.password=null,n.aesCtrGladman=new rf(new nf(n.keys.key),Array.from(tf)),n.hmac=new of(n.keys.authentication));const o=new Uint8Array(r.length+t.length-t.length%wn);return o.set(r,0),sf(n,t,o,r.length,0)}flush(){const t=this;let n=new Uint8Array(0);if(t.pendingInput.length){const o=t.aesCtrGladman.update(it.toBits(t.pendingInput));t.hmac.update(o),n=it.fromBits(o)}const r=Oe(it.fromBits(t.hmac.digest()),0,It);return{data:yl(n,r),signature:r}}}function sf(e,t,n,r,o,s){const i=t.length-o;e.pendingInput.length&&(t=yl(e.pendingInput,t),n=jh(n,i-i%wn));let l;for(l=0;l<=i-wn;l+=wn){const c=it.toBits(Oe(t,l,l+wn));s&&e.hmac.update(c);const u=e.aesCtrGladman.update(c);s||e.hmac.update(u),n.set(it.fromBits(u),l+r)}return e.pendingInput=Oe(t,l),n}async function qh(e,t,n){await lf(e,n,Oe(t,0,Er[e.strength]));const r=Oe(t,Er[e.strength]),o=e.keys.passwordVerification;if(o[0]!=r[0]||o[1]!=r[1])throw new Error(wl)}async function Qh(e,t){const n=crypto.getRandomValues(new Uint8Array(Er[e.strength]));return await lf(e,t,n),yl(n,e.keys.passwordVerification)}async function lf(e,t,n){const r=Nh(t),o=await crypto.subtle.importKey(Lh,r,Bh,!1,Mh),s=await crypto.subtle.deriveBits(Object.assign({salt:n},Hh),o,8*(Jn[e.strength]*2+2)),i=new Uint8Array(s);e.keys={key:it.toBits(Oe(i,0,Jn[e.strength])),authentication:it.toBits(Oe(i,Jn[e.strength],Jn[e.strength]*2)),passwordVerification:Oe(i,Jn[e.strength]*2)}}function yl(e,t){let n=e;return e.length+t.length&&(n=new Uint8Array(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function jh(e,t){if(t&&t>e.length){const n=e;e=new Uint8Array(t),e.set(n,0)}return e}function Oe(e,t,n){return e.subarray(t,n)}const Ln=12;class Vh{constructor(t,n){const r=this;Object.assign(r,{password:t,passwordVerification:n}),cf(r,t)}append(t){const n=this;if(n.password){const r=Kc(n,t.subarray(0,Ln));if(n.password=null,r[Ln-1]!=n.passwordVerification)throw new Error(wl);t=t.subarray(Ln)}return Kc(n,t)}flush(){return{valid:!0,data:new Uint8Array(0)}}}class Gh{constructor(t,n){const r=this;Object.assign(r,{password:t,passwordVerification:n}),cf(r,t)}append(t){const n=this;let r,o;if(n.password){n.password=null;const s=crypto.getRandomValues(new Uint8Array(Ln));s[Ln-1]=n.passwordVerification,r=new Uint8Array(t.length+s.length),r.set(Zc(n,s),0),o=Ln}else r=new Uint8Array(t.length),o=0;return r.set(Zc(n,t),o),r}flush(){return{data:new Uint8Array(0)}}}function Kc(e,t){const n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=af(e)^t[r],Al(e,n[r]);return n}function Zc(e,t){const n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=af(e)^t[r],Al(e,t[r]);return n}function cf(e,t){e.keys=[305419896,591751049,878082192],e.crcKey0=new Ar(e.keys[0]),e.crcKey2=new Ar(e.keys[2]);for(let n=0;n<t.length;n++)Al(e,t.charCodeAt(n))}function Al(e,t){e.crcKey0.append([t]),e.keys[0]=~e.crcKey0.get(),e.keys[1]=Jc(e.keys[1]+uf(e.keys[0])),e.keys[1]=Jc(Math.imul(e.keys[1],134775813)+1),e.crcKey2.append([e.keys[1]>>>24]),e.keys[2]=~e.crcKey2.get()}function af(e){const t=e.keys[2]|2;return uf(Math.imul(t,t^1)>>>8)}function uf(e){return e&255}function Jc(e){return e&4294967295}const Wh="deflate",ff="inflate",pi="Invalid signature";class Yh{constructor(t,{signature:n,password:r,signed:o,compressed:s,zipCrypto:i,passwordVerification:l,encryptionStrength:c},{chunkSize:u}){const p=!!r;Object.assign(this,{signature:n,encrypted:p,signed:o,compressed:s,inflate:s&&new t({chunkSize:u}),crc32:o&&new Ar,zipCrypto:i,decrypt:p&&i?new Vh(r,l):new Fh(r,o,c)})}async append(t){const n=this;return n.encrypted&&t.length&&(t=await n.decrypt.append(t)),n.compressed&&t.length&&(t=await n.inflate.append(t)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),t}async flush(){const t=this;let n,r=new Uint8Array(0);if(t.encrypted){const o=t.decrypt.flush();if(!o.valid)throw new Error(pi);r=o.data}if((!t.encrypted||t.zipCrypto)&&t.signed){const o=new DataView(new Uint8Array(4).buffer);if(n=t.crc32.get(),o.setUint32(0,n),t.signature!=o.getUint32(0,!1))throw new Error(pi)}return t.compressed&&(r=await t.inflate.append(r)||new Uint8Array(0),await t.inflate.flush()),{data:r,signature:n}}}class Xh{constructor(t,{encrypted:n,signed:r,compressed:o,level:s,zipCrypto:i,password:l,passwordVerification:c,encryptionStrength:u},{chunkSize:p}){Object.assign(this,{encrypted:n,signed:r,compressed:o,deflate:o&&new t({level:s||5,chunkSize:p}),crc32:r&&new Ar,zipCrypto:i,encrypt:n&&i?new Gh(l,c):new Uh(l,u)})}async append(t){const n=this;let r=t;return n.compressed&&t.length&&(r=await n.deflate.append(t)),n.encrypted&&r.length&&(r=await n.encrypt.append(r)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),r}async flush(){const t=this;let n,r=new Uint8Array(0);if(t.compressed&&(r=await t.deflate.flush()||new Uint8Array(0)),t.encrypted){r=await t.encrypt.append(r);const o=t.encrypt.flush();n=o.signature;const s=new Uint8Array(r.length+o.data.length);s.set(r,0),s.set(o.data,r.length),r=s}return(!t.encrypted||t.zipCrypto)&&t.signed&&(n=t.crc32.get()),{data:r,signature:n}}}function zh(e,t,n){if(t.codecType.startsWith(Wh))return new Xh(e,t,n);if(t.codecType.startsWith(ff))return new Yh(e,t,n)}const _c="init",$c="append",Os="flush",Kh="message";let ea=!0;const Bs=(e,t,n,r,o,s,i)=>(Object.assign(e,{busy:!0,codecConstructor:t,options:Object.assign({},n),scripts:i,terminate(){e.worker&&!e.busy&&(e.worker.terminate(),e.interface=null)},onTaskFinished(){e.busy=!1,o(e)}}),s?Jh(e,r):Zh(e,r));function Zh(e,t){const n=zh(e.codecConstructor,e.options,t);return{async append(r){try{return await n.append(r)}catch(o){throw e.onTaskFinished(),o}},async flush(){try{return await n.flush()}finally{e.onTaskFinished()}}}}function Jh(e,t){let n;const r={type:"module"};if(!e.interface){if(!ea)e.worker=o(r,t.baseURL);else try{e.worker=o({},t.baseURL)}catch{ea=!1,e.worker=o(r,t.baseURL)}e.worker.addEventListener(Kh,l,!1),e.interface={append(c){return s({type:$c,data:c})},flush(){return s({type:Os})}}}return e.interface;function o(c,u){let p;try{p=new URL(e.scripts[0],u)}catch{p=e.scripts[0]}return new Worker(p,c)}async function s(c){if(!n){const u=e.options,p=e.scripts.slice(1);await i({scripts:p,type:_c,options:u,config:{chunkSize:t.chunkSize}})}return i(c)}function i(c){const u=e.worker,p=new Promise((v,h)=>n={resolve:v,reject:h});try{if(c.data)try{c.data=c.data.buffer,u.postMessage(c,[c.data])}catch{u.postMessage(c)}else u.postMessage(c)}catch(v){n.reject(v),n=null,e.onTaskFinished()}return p}function l(c){const u=c.data;if(n){const p=u.error,v=u.type;if(p){const h=new Error(p.message);h.stack=p.stack,n.reject(h),n=null,e.onTaskFinished()}else if(v==_c||v==Os||v==$c){const h=u.data;v==Os?(n.resolve({data:new Uint8Array(h),signature:u.signature}),n=null,e.onTaskFinished()):n.resolve(h&&new Uint8Array(h))}}}}let Jt=[],Hs=[];function _h(e,t,n){const o=!(!t.compressed&&!t.signed&&!t.encrypted)&&(t.useWebWorkers||t.useWebWorkers===void 0&&n.useWebWorkers),s=o&&n.workerScripts?n.workerScripts[t.codecType]:[];if(Jt.length<n.maxWorkers){const l={};return Jt.push(l),Bs(l,e,t,n,i,o,s)}else{const l=Jt.find(c=>!c.busy);return l?(ta(l),Bs(l,e,t,n,i,o,s)):new Promise(c=>Hs.push({resolve:c,codecConstructor:e,options:t,webWorker:o,scripts:s}))}function i(l){if(Hs.length){const[{resolve:c,codecConstructor:u,options:p,webWorker:v,scripts:h}]=Hs.splice(0,1);c(Bs(l,u,p,n,i,v,h))}else l.worker?(ta(l),Number.isFinite(n.terminateWorkerTimeout)&&n.terminateWorkerTimeout>=0&&(l.terminateTimeout=setTimeout(()=>{Jt=Jt.filter(c=>c!=l),l.terminate()},n.terminateWorkerTimeout))):Jt=Jt.filter(c=>c!=l)}}function ta(e){e.terminateTimeout&&(clearTimeout(e.terminateTimeout),e.terminateTimeout=null)}const $h="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),eg=e=>{let t="";for(let n=0;n<e.length;n++)t+=$h[e[n]];return t};async function hi(e,t){if(t&&t.trim().toLowerCase()=="cp437")return eg(e);if(typeof TextDecoder>"u"){const n=new FileReader;return new Promise((r,o)=>{n.onload=s=>r(s.target.result),n.onerror=()=>o(n.error),n.readAsText(new Blob([e]))})}else return new TextDecoder(t).decode(e)}const tg=["filename","rawFilename","directory","encrypted","compressedSize","uncompressedSize","lastModDate","rawLastModDate","comment","rawComment","signature","extraField","rawExtraField","bitFlag","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","filenameUTF8","commentUTF8","offset","zip64","compressionMethod","extraFieldNTFS","lastAccessDate","creationDate","extraFieldExtendedTimestamp","version","versionMadeBy","msDosCompatible","internalFileAttribute","externalFileAttribute"];class na{constructor(t){tg.forEach(n=>this[n]=t[n])}}const Ao="File format is not recognized",df="End of central directory not found",pf="End of Zip64 central directory not found",hf="End of Zip64 central directory locator not found",gf="Central directory header not found",mf="Local file header not found",vf="Zip64 extra field not found",wf="File contains encrypted entry",yf="Encryption method not supported",gi="Compression method not supported",ra="utf-8",oa="cp437",sa=["uncompressedSize","compressedSize","offset"];class ng{constructor(t,n={}){Object.assign(this,{reader:t,options:n,config:Z0()})}async getEntries(t={}){const n=this,r=n.reader;if(r.initialized||await r.init(),r.size<Gc)throw new Error(Ao);const o=await cg(r,Ah,r.size,Gc,Qc*16);if(!o)throw new Error(df);const s=me(o);let i=ae(s,12),l=ae(s,16),c=He(s,8),u=0;if(l==Oo||i==Oo||c==Qc){const E=await bt(r,o.offset-Ls,Ls),g=me(E);if(ae(g,0)!=Eh)throw new Error(pf);l=Eo(g,8);let m=await bt(r,l,Ps),a=me(m);const f=o.offset-Ls-Ps;if(ae(a,0)!=Vc&&l!=f){const d=l;l=f,u=l-d,m=await bt(r,l,Ps),a=me(m)}if(ae(a,0)!=Vc)throw new Error(hf);c=Eo(a,32),i=Eo(a,40),l-=i}if(l<0||l>=r.size)throw new Error(Ao);let p=0,v=await bt(r,l,i),h=me(v);if(i){const E=o.offset-i;if(ae(h,p)!=jc&&l!=E){const g=l;l=E,u=l-g,v=await bt(r,l,i),h=me(v)}}if(l<0||l>=r.size)throw new Error(Ao);const C=[];for(let E=0;E<c;E++){const g=new rg(r,n.config,n.options);if(ae(h,p)!=jc)throw new Error(gf);Af(g,h,p+6);const m=!!g.bitFlag.languageEncodingFlag,a=p+46,f=a+g.filenameLength,d=f+g.extraFieldLength,y=He(h,p+4),k=(y&0)==0;Object.assign(g,{versionMadeBy:y,msDosCompatible:k,compressedSize:0,uncompressedSize:0,commentLength:He(h,p+32),directory:k&&(Pn(h,p+38)&zc)==zc,offset:ae(h,p+42)+u,internalFileAttribute:ae(h,p+34),externalFileAttribute:ae(h,p+38),rawFilename:v.subarray(a,f),filenameUTF8:m,commentUTF8:m,rawExtraField:v.subarray(f,d)});const w=d+g.commentLength;g.rawComment=v.subarray(d,w);const x=yn(n,t,"filenameEncoding"),S=yn(n,t,"commentEncoding"),[D,I]=await Promise.all([hi(g.rawFilename,g.filenameUTF8?ra:x||oa),hi(g.rawComment,g.commentUTF8?ra:S||oa)]);g.filename=D,g.comment=I,!g.directory&&g.filename.endsWith(Th)&&(g.directory=!0),await Ef(g,g,h,p+6);const T=new na(g);if(T.getData=(B,P)=>g.getData(B,T,P),C.push(T),p=w,t.onprogress)try{t.onprogress(E+1,c,new na(g))}catch{}}return C}async close(){}}class rg{constructor(t,n,r){Object.assign(this,{reader:t,config:n,options:r})}async getData(t,n,r={}){const o=this,{reader:s,offset:i,extraFieldAES:l,compressionMethod:c,config:u,bitFlag:p,signature:v,rawLastModDate:h,compressedSize:C}=o,E=o.localDirectory={};s.initialized||await s.init();let g=await bt(s,i,30);const m=me(g);let a=yn(o,r,"password");if(a=a&&a.length&&a,l&&l.originalCompressionMethod!=wh)throw new Error(gi);if(c!=vh&&c!=mh)throw new Error(gi);if(ae(m,0)!=yh)throw new Error(mf);Af(E,m,4),g=await bt(s,i,30+E.filenameLength+E.extraFieldLength),E.rawExtraField=g.subarray(30+E.filenameLength),await Ef(o,E,m,4),n.lastAccessDate=E.lastAccessDate,n.creationDate=E.creationDate;const f=o.encrypted&&E.encrypted,d=f&&!l;if(f){if(!d&&l.strength===void 0)throw new Error(yf);if(!a)throw new Error(wf)}const y=await _h(u.Inflate,{codecType:ff,password:a,zipCrypto:d,encryptionStrength:l&&l.strength,signed:yn(o,r,"checkSignature"),passwordVerification:d&&(p.dataDescriptor?h>>>8&255:v>>>24&255),signature:v,compressed:c!=0,encrypted:f,useWebWorkers:yn(o,r,"useWebWorkers")},u);t.initialized||await t.init();const k=yn(o,r,"signal"),w=i+30+E.filenameLength+E.extraFieldLength;return await $0(y,s,t,w,C,u,{onprogress:r.onprogress,signal:k}),t.getData()}}function Af(e,t,n){const r=e.rawBitFlag=He(t,n+2),o=(r&Wc)==Wc,s=ae(t,n+6);Object.assign(e,{encrypted:o,version:He(t,n),bitFlag:{level:(r&bh)>>1,dataDescriptor:(r&Yc)==Yc,languageEncodingFlag:(r&Xc)==Xc},rawLastModDate:s,lastModDate:ag(s),filenameLength:He(t,n+22),extraFieldLength:He(t,n+24)})}async function Ef(e,t,n,r){const o=t.rawExtraField,s=t.extraField=new Map,i=me(new Uint8Array(o));let l=0;try{for(;l<o.length;){const g=He(i,l),m=He(i,l+2);s.set(g,{type:g,data:o.slice(l+4,l+4+m)}),l+=4+m}}catch{}const c=He(n,r+4);t.signature=ae(n,r+10),t.uncompressedSize=ae(n,r+18),t.compressedSize=ae(n,r+14);const u=s.get(xh);u&&(og(u,t),t.extraFieldZip64=u);const p=s.get(Dh);p&&(await ia(p,"filename","rawFilename",t,e),t.extraFieldUnicodePath=p);const v=s.get(Rh);v&&(await ia(v,"comment","rawComment",t,e),t.extraFieldUnicodeComment=v);const h=s.get(kh);h?(sg(h,t,c),t.extraFieldAES=h):t.compressionMethod=c;const C=s.get(Sh);C&&(ig(C,t),t.extraFieldNTFS=C);const E=s.get(Ih);E&&(lg(E,t),t.extraFieldExtendedTimestamp=E)}function og(e,t){t.zip64=!0;const n=me(e.data);e.values=[];for(let o=0;o<Math.floor(e.data.length/8);o++)e.values.push(Eo(n,0+o*8));const r=sa.filter(o=>t[o]==Oo);for(let o=0;o<r.length;o++)e[r[o]]=e.values[o];sa.forEach(o=>{if(t[o]==Oo)if(e[o]!==void 0)t[o]=e[o];else throw new Error(vf)})}async function ia(e,t,n,r,o){const s=me(e.data);e.version=Pn(s,0),e.signature=ae(s,1);const i=new Ar;i.append(o[n]);const l=me(new Uint8Array(4));l.setUint32(0,i.get(),!0),e[t]=await hi(e.data.subarray(5)),e.valid=!o.bitFlag.languageEncodingFlag&&e.signature==ae(l,0),e.valid&&(r[t]=e[t],r[t+"UTF8"]=!0)}function sg(e,t,n){const r=me(e.data);e.vendorVersion=Pn(r,0),e.vendorId=Pn(r,2);const o=Pn(r,4);e.strength=o,e.originalCompressionMethod=n,t.compressionMethod=e.compressionMethod=He(r,5)}function ig(e,t){const n=me(e.data);let r=4,o;try{for(;r<e.data.length&&!o;){const s=He(n,r),i=He(n,r+2);s==Ch&&(o=e.data.slice(r+4,r+4+i)),r+=4+i}}catch{}try{if(o&&o.length==24){const s=me(o),i=s.getBigUint64(0,!0),l=s.getBigUint64(8,!0),c=s.getBigUint64(16,!0);Object.assign(e,{rawLastModDate:i,rawLastAccessDate:l,rawCreationDate:c});const u=Ms(i),p=Ms(l),v=Ms(c),h={lastModDate:u,lastAccessDate:p,creationDate:v};Object.assign(e,h),Object.assign(t,h)}}catch{}}function lg(e,t){const n=me(e.data),r=Pn(n,0),o=[],s=[];(r&1)==1&&(o.push("lastModDate"),s.push("rawLastModDate")),(r&2)==2&&(o.push("lastAccessDate"),s.push("rawLastAccessDate")),(r&4)==4&&(o.push("creationDate"),s.push("rawCreationDate"));let i=1;o.forEach((l,c)=>{if(e.data.length>=i+4){const u=ae(n,i);t[l]=e[l]=new Date(u*1e3);const p=s[c];e[p]=u}i+=4})}async function cg(e,t,n,r,o){const s=new Uint8Array(4),i=me(s);ug(i,0,t);const l=r+o;return await c(r)||await c(Math.min(l,n));async function c(u){const p=n-u,v=await bt(e,p,u);for(let h=v.length-r;h>=0;h--)if(v[h]==s[0]&&v[h+1]==s[1]&&v[h+2]==s[2]&&v[h+3]==s[3])return{offset:p+h,buffer:v.slice(h,h+r).buffer}}}function yn(e,t,n){return t[n]===void 0?e.options[n]:t[n]}function ag(e){const t=(e&4294901760)>>16,n=e&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(n&63488)>>11,(n&2016)>>5,(n&31)*2,0)}catch{}}function Ms(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function Pn(e,t){return e.getUint8(t)}function He(e,t){return e.getUint16(t,!0)}function ae(e,t){return e.getUint32(t,!0)}function Eo(e,t){return Number(e.getBigUint64(t,!0))}function ug(e,t,n){e.setUint32(t,n,!0)}function me(e){return new DataView(e.buffer)}function bt(e,t,n){return e.readUint8Array(t,n)}Fu({Inflate:z0});const fg=Object.freeze(Object.defineProperty({__proto__:null,BlobReader:Vu,BlobWriter:ah,Data64URIReader:lh,Data64URIWriter:ch,ERR_ABORT:Uu,ERR_BAD_FORMAT:Ao,ERR_CENTRAL_DIRECTORY_NOT_FOUND:gf,ERR_ENCRYPTED:wf,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:hf,ERR_EOCDR_NOT_FOUND:df,ERR_EOCDR_ZIP64_NOT_FOUND:pf,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:vf,ERR_HTTP_RANGE:hl,ERR_INVALID_PASSWORD:wl,ERR_INVALID_SIGNATURE:pi,ERR_LOCAL_FILE_HEADER_NOT_FOUND:mf,ERR_UNSUPPORTED_COMPRESSION:gi,ERR_UNSUPPORTED_ENCRYPTION:yf,HttpRangeReader:dh,HttpReader:zu,Reader:Gt,TextReader:sh,TextWriter:ih,Uint8ArrayReader:ph,Uint8ArrayWriter:hh,Writer:Qr,ZipReader:ng,configure:Fu,getMimeType:J0},Symbol.toStringTag,{value:"Module"}));var xf={exports:{}},Ue={},kf={exports:{}},Sf={};/**
+ * @license React
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */(function(e){function t(b,M){var N=b.length;b.push(M);e:for(;0<N;){var X=N-1>>>1,F=b[X];if(0<o(F,M))b[X]=M,b[N]=F,N=X;else break e}}function n(b){return b.length===0?null:b[0]}function r(b){if(b.length===0)return null;var M=b[0],N=b.pop();if(N!==M){b[0]=N;e:for(var X=0,F=b.length,Y=F>>>1;X<Y;){var zt=2*(X+1)-1,Is=b[zt],Kt=zt+1,Yr=b[Kt];if(0>o(Is,N))Kt<F&&0>o(Yr,Is)?(b[X]=Yr,b[Kt]=N,X=Kt):(b[X]=Is,b[zt]=N,X=zt);else if(Kt<F&&0>o(Yr,N))b[X]=Yr,b[Kt]=N,X=Kt;else break e}}return M}function o(b,M){var N=b.sortIndex-M.sortIndex;return N!==0?N:b.id-M.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var i=Date,l=i.now();e.unstable_now=function(){return i.now()-l}}var c=[],u=[],p=1,v=null,h=3,C=!1,E=!1,g=!1,m=typeof setTimeout=="function"?setTimeout:null,a=typeof clearTimeout=="function"?clearTimeout:null,f=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function d(b){for(var M=n(u);M!==null;){if(M.callback===null)r(u);else if(M.startTime<=b)r(u),M.sortIndex=M.expirationTime,t(c,M);else break;M=n(u)}}function y(b){if(g=!1,d(b),!E)if(n(c)!==null)E=!0,H(k);else{var M=n(u);M!==null&&re(y,M.startTime-b)}}function k(b,M){E=!1,g&&(g=!1,a(S),S=-1),C=!0;var N=h;try{for(d(M),v=n(c);v!==null&&(!(v.expirationTime>M)||b&&!T());){var X=v.callback;if(typeof X=="function"){v.callback=null,h=v.priorityLevel;var F=X(v.expirationTime<=M);M=e.unstable_now(),typeof F=="function"?v.callback=F:v===n(c)&&r(c),d(M)}else r(c);v=n(c)}if(v!==null)var Y=!0;else{var zt=n(u);zt!==null&&re(y,zt.startTime-M),Y=!1}return Y}finally{v=null,h=N,C=!1}}var w=!1,x=null,S=-1,D=5,I=-1;function T(){return!(e.unstable_now()-I<D)}function B(){if(x!==null){var b=e.unstable_now();I=b;var M=!0;try{M=x(!0,b)}finally{M?P():(w=!1,x=null)}}else w=!1}var P;if(typeof f=="function")P=function(){f(B)};else if(typeof MessageChannel<"u"){var G=new MessageChannel,U=G.port2;G.port1.onmessage=B,P=function(){U.postMessage(null)}}else P=function(){m(B,0)};function H(b){x=b,w||(w=!0,P())}function re(b,M){S=m(function(){b(e.unstable_now())},M)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(b){b.callback=null},e.unstable_continueExecution=function(){E||C||(E=!0,H(k))},e.unstable_forceFrameRate=function(b){0>b||125<b?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):D=0<b?Math.floor(1e3/b):5},e.unstable_getCurrentPriorityLevel=function(){return h},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(b){switch(h){case 1:case 2:case 3:var M=3;break;default:M=h}var N=h;h=M;try{return b()}finally{h=N}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(b,M){switch(b){case 1:case 2:case 3:case 4:case 5:break;default:b=3}var N=h;h=b;try{return M()}finally{h=N}},e.unstable_scheduleCallback=function(b,M,N){var X=e.unstable_now();switch(typeof N=="object"&&N!==null?(N=N.delay,N=typeof N=="number"&&0<N?X+N:X):N=X,b){case 1:var F=-1;break;case 2:F=250;break;case 5:F=1073741823;break;case 4:F=1e4;break;default:F=5e3}return F=N+F,b={id:p++,callback:M,priorityLevel:b,startTime:N,expirationTime:F,sortIndex:-1},N>X?(b.sortIndex=N,t(u,b),n(c)===null&&b===n(u)&&(g?(a(S),S=-1):g=!0,re(y,N-X))):(b.sortIndex=F,t(c,b),E||C||(E=!0,H(k))),b},e.unstable_shouldYield=T,e.unstable_wrapCallback=function(b){var M=h;return function(){var N=h;h=M;try{return b.apply(this,arguments)}finally{h=N}}}})(Sf);kf.exports=Sf;var dg=kf.exports;/**
+ * @license React
+ * react-dom.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Cf=Q,Fe=dg;function R(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var If=new Set,xr={};function pn(e,t){Qn(e,t),Qn(e+"Capture",t)}function Qn(e,t){for(xr[e]=t,e=0;e<t.length;e++)If.add(t[e])}var wt=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),mi=Object.prototype.hasOwnProperty,pg=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,la={},ca={};function hg(e){return mi.call(ca,e)?!0:mi.call(la,e)?!1:pg.test(e)?ca[e]=!0:(la[e]=!0,!1)}function gg(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function mg(e,t,n,r){if(t===null||typeof t>"u"||gg(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function xe(e,t,n,r,o,s,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=i}var pe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){pe[e]=new xe(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];pe[t]=new xe(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){pe[e]=new xe(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){pe[e]=new xe(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){pe[e]=new xe(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){pe[e]=new xe(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){pe[e]=new xe(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){pe[e]=new xe(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){pe[e]=new xe(e,5,!1,e.toLowerCase(),null,!1,!1)});var El=/[\-:]([a-z])/g;function xl(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(El,xl);pe[t]=new xe(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(El,xl);pe[t]=new xe(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(El,xl);pe[t]=new xe(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){pe[e]=new xe(e,1,!1,e.toLowerCase(),null,!1,!1)});pe.xlinkHref=new xe("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){pe[e]=new xe(e,1,!1,e.toLowerCase(),null,!0,!0)});function kl(e,t,n,r){var o=pe.hasOwnProperty(t)?pe[t]:null;(o!==null?o.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(mg(t,n,o,r)&&(n=null),r||o===null?hg(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=n===null?o.type===3?!1:"":n:(t=o.attributeName,r=o.attributeNamespace,n===null?e.removeAttribute(t):(o=o.type,n=o===3||o===4&&n===!0?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var Et=Cf.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_r=Symbol.for("react.element"),An=Symbol.for("react.portal"),En=Symbol.for("react.fragment"),Sl=Symbol.for("react.strict_mode"),vi=Symbol.for("react.profiler"),Df=Symbol.for("react.provider"),Rf=Symbol.for("react.context"),Cl=Symbol.for("react.forward_ref"),wi=Symbol.for("react.suspense"),yi=Symbol.for("react.suspense_list"),Il=Symbol.for("react.memo"),Dt=Symbol.for("react.lazy"),bf=Symbol.for("react.offscreen"),aa=Symbol.iterator;function _n(e){return e===null||typeof e!="object"?null:(e=aa&&e[aa]||e["@@iterator"],typeof e=="function"?e:null)}var te=Object.assign,Fs;function lr(e){if(Fs===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Fs=t&&t[1]||""}return`
+`+Fs+e}var Us=!1;function qs(e,t){if(!e||Us)return"";Us=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&typeof u.stack=="string"){for(var o=u.stack.split(`
+`),s=r.stack.split(`
+`),i=o.length-1,l=s.length-1;1<=i&&0<=l&&o[i]!==s[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==s[l]){if(i!==1||l!==1)do if(i--,l--,0>l||o[i]!==s[l]){var c=`
+`+o[i].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=i&&0<=l);break}}}finally{Us=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?lr(e):""}function vg(e){switch(e.tag){case 5:return lr(e.type);case 16:return lr("Lazy");case 13:return lr("Suspense");case 19:return lr("SuspenseList");case 0:case 2:case 15:return e=qs(e.type,!1),e;case 11:return e=qs(e.type.render,!1),e;case 1:return e=qs(e.type,!0),e;default:return""}}function Ai(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case En:return"Fragment";case An:return"Portal";case vi:return"Profiler";case Sl:return"StrictMode";case wi:return"Suspense";case yi:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Rf:return(e.displayName||"Context")+".Consumer";case Df:return(e._context.displayName||"Context")+".Provider";case Cl:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Il:return t=e.displayName||null,t!==null?t:Ai(e.type)||"Memo";case Dt:t=e._payload,e=e._init;try{return Ai(e(t))}catch{}}return null}function wg(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ai(t);case 8:return t===Sl?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Qt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Tf(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function yg(e){var t=Tf(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(i){r=""+i,s.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function $r(e){e._valueTracker||(e._valueTracker=yg(e))}function Nf(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Tf(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Bo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ei(e,t){var n=t.checked;return te({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function ua(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Qt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Lf(e,t){t=t.checked,t!=null&&kl(e,"checked",t,!1)}function xi(e,t){Lf(e,t);var n=Qt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ki(e,t.type,n):t.hasOwnProperty("defaultValue")&&ki(e,t.type,Qt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function fa(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ki(e,t,n){(t!=="number"||Bo(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var cr=Array.isArray;function On(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Qt(n),t=null,o=0;o<e.length;o++){if(e[o].value===n){e[o].selected=!0,r&&(e[o].defaultSelected=!0);return}t!==null||e[o].disabled||(t=e[o])}t!==null&&(t.selected=!0)}}function Si(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(R(91));return te({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function da(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(R(92));if(cr(n)){if(1<n.length)throw Error(R(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:Qt(n)}}function Pf(e,t){var n=Qt(t.value),r=Qt(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function pa(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function Of(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Ci(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Of(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var eo,Bf=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(eo=eo||document.createElement("div"),eo.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=eo.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function kr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var fr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ag=["Webkit","ms","Moz","O"];Object.keys(fr).forEach(function(e){Ag.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fr[t]=fr[e]})});function Hf(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||fr.hasOwnProperty(e)&&fr[e]?(""+t).trim():t+"px"}function Mf(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=Hf(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var Eg=te({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ii(e,t){if(t){if(Eg[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(R(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(R(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(R(61))}if(t.style!=null&&typeof t.style!="object")throw Error(R(62))}}function Di(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ri=null;function Dl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var bi=null,Bn=null,Hn=null;function ha(e){if(e=Gr(e)){if(typeof bi!="function")throw Error(R(280));var t=e.stateNode;t&&(t=ds(t),bi(e.stateNode,e.type,t))}}function Ff(e){Bn?Hn?Hn.push(e):Hn=[e]:Bn=e}function Uf(){if(Bn){var e=Bn,t=Hn;if(Hn=Bn=null,ha(e),t)for(e=0;e<t.length;e++)ha(t[e])}}function qf(e,t){return e(t)}function Qf(){}var Qs=!1;function jf(e,t,n){if(Qs)return e(t,n);Qs=!0;try{return qf(e,t,n)}finally{Qs=!1,(Bn!==null||Hn!==null)&&(Qf(),Uf())}}function Sr(e,t){var n=e.stateNode;if(n===null)return null;var r=ds(n);if(r===null)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(R(231,t,typeof n));return n}var Ti=!1;if(wt)try{var $n={};Object.defineProperty($n,"passive",{get:function(){Ti=!0}}),window.addEventListener("test",$n,$n),window.removeEventListener("test",$n,$n)}catch{Ti=!1}function xg(e,t,n,r,o,s,i,l,c){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(p){this.onError(p)}}var dr=!1,Ho=null,Mo=!1,Ni=null,kg={onError:function(e){dr=!0,Ho=e}};function Sg(e,t,n,r,o,s,i,l,c){dr=!1,Ho=null,xg.apply(kg,arguments)}function Cg(e,t,n,r,o,s,i,l,c){if(Sg.apply(this,arguments),dr){if(dr){var u=Ho;dr=!1,Ho=null}else throw Error(R(198));Mo||(Mo=!0,Ni=u)}}function hn(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function Vf(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function ga(e){if(hn(e)!==e)throw Error(R(188))}function Ig(e){var t=e.alternate;if(!t){if(t=hn(e),t===null)throw Error(R(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(o===null)break;var s=o.alternate;if(s===null){if(r=o.return,r!==null){n=r;continue}break}if(o.child===s.child){for(s=o.child;s;){if(s===n)return ga(o),e;if(s===r)return ga(o),t;s=s.sibling}throw Error(R(188))}if(n.return!==r.return)n=o,r=s;else{for(var i=!1,l=o.child;l;){if(l===n){i=!0,n=o,r=s;break}if(l===r){i=!0,r=o,n=s;break}l=l.sibling}if(!i){for(l=s.child;l;){if(l===n){i=!0,n=s,r=o;break}if(l===r){i=!0,r=s,n=o;break}l=l.sibling}if(!i)throw Error(R(189))}}if(n.alternate!==r)throw Error(R(190))}if(n.tag!==3)throw Error(R(188));return n.stateNode.current===n?e:t}function Gf(e){return e=Ig(e),e!==null?Wf(e):null}function Wf(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Wf(e);if(t!==null)return t;e=e.sibling}return null}var Yf=Fe.unstable_scheduleCallback,ma=Fe.unstable_cancelCallback,Dg=Fe.unstable_shouldYield,Rg=Fe.unstable_requestPaint,oe=Fe.unstable_now,bg=Fe.unstable_getCurrentPriorityLevel,Rl=Fe.unstable_ImmediatePriority,Xf=Fe.unstable_UserBlockingPriority,Fo=Fe.unstable_NormalPriority,Tg=Fe.unstable_LowPriority,zf=Fe.unstable_IdlePriority,cs=null,lt=null;function Ng(e){if(lt&&typeof lt.onCommitFiberRoot=="function")try{lt.onCommitFiberRoot(cs,e,void 0,(e.current.flags&128)===128)}catch{}}var et=Math.clz32?Math.clz32:Og,Lg=Math.log,Pg=Math.LN2;function Og(e){return e>>>=0,e===0?32:31-(Lg(e)/Pg|0)|0}var to=64,no=4194304;function ar(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Uo(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,s=e.pingedLanes,i=n&268435455;if(i!==0){var l=i&~o;l!==0?r=ar(l):(s&=i,s!==0&&(r=ar(s)))}else i=n&~o,i!==0?r=ar(i):s!==0&&(r=ar(s));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,s=t&-t,o>=s||o===16&&(s&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-et(t),o=1<<n,r|=e[n],t&=~o;return r}function Bg(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Hg(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,s=e.pendingLanes;0<s;){var i=31-et(s),l=1<<i,c=o[i];c===-1?(!(l&n)||l&r)&&(o[i]=Bg(l,t)):c<=t&&(e.expiredLanes|=l),s&=~l}}function Li(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Kf(){var e=to;return to<<=1,!(to&4194240)&&(to=64),e}function js(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function jr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-et(t),e[t]=n}function Mg(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-et(n),s=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~s}}function bl(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-et(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}var W=0;function Zf(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var Jf,Tl,_f,$f,ed,Pi=!1,ro=[],Bt=null,Ht=null,Mt=null,Cr=new Map,Ir=new Map,Tt=[],Fg="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function va(e,t){switch(e){case"focusin":case"focusout":Bt=null;break;case"dragenter":case"dragleave":Ht=null;break;case"mouseover":case"mouseout":Mt=null;break;case"pointerover":case"pointerout":Cr.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ir.delete(t.pointerId)}}function er(e,t,n,r,o,s){return e===null||e.nativeEvent!==s?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:s,targetContainers:[o]},t!==null&&(t=Gr(t),t!==null&&Tl(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,o!==null&&t.indexOf(o)===-1&&t.push(o),e)}function Ug(e,t,n,r,o){switch(t){case"focusin":return Bt=er(Bt,e,t,n,r,o),!0;case"dragenter":return Ht=er(Ht,e,t,n,r,o),!0;case"mouseover":return Mt=er(Mt,e,t,n,r,o),!0;case"pointerover":var s=o.pointerId;return Cr.set(s,er(Cr.get(s)||null,e,t,n,r,o)),!0;case"gotpointercapture":return s=o.pointerId,Ir.set(s,er(Ir.get(s)||null,e,t,n,r,o)),!0}return!1}function td(e){var t=tn(e.target);if(t!==null){var n=hn(t);if(n!==null){if(t=n.tag,t===13){if(t=Vf(n),t!==null){e.blockedOn=t,ed(e.priority,function(){_f(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function xo(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Oi(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Ri=r,n.target.dispatchEvent(r),Ri=null}else return t=Gr(n),t!==null&&Tl(t),e.blockedOn=n,!1;t.shift()}return!0}function wa(e,t,n){xo(e)&&n.delete(t)}function qg(){Pi=!1,Bt!==null&&xo(Bt)&&(Bt=null),Ht!==null&&xo(Ht)&&(Ht=null),Mt!==null&&xo(Mt)&&(Mt=null),Cr.forEach(wa),Ir.forEach(wa)}function tr(e,t){e.blockedOn===t&&(e.blockedOn=null,Pi||(Pi=!0,Fe.unstable_scheduleCallback(Fe.unstable_NormalPriority,qg)))}function Dr(e){function t(o){return tr(o,e)}if(0<ro.length){tr(ro[0],e);for(var n=1;n<ro.length;n++){var r=ro[n];r.blockedOn===e&&(r.blockedOn=null)}}for(Bt!==null&&tr(Bt,e),Ht!==null&&tr(Ht,e),Mt!==null&&tr(Mt,e),Cr.forEach(t),Ir.forEach(t),n=0;n<Tt.length;n++)r=Tt[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<Tt.length&&(n=Tt[0],n.blockedOn===null);)td(n),n.blockedOn===null&&Tt.shift()}var Mn=Et.ReactCurrentBatchConfig,qo=!0;function Qg(e,t,n,r){var o=W,s=Mn.transition;Mn.transition=null;try{W=1,Nl(e,t,n,r)}finally{W=o,Mn.transition=s}}function jg(e,t,n,r){var o=W,s=Mn.transition;Mn.transition=null;try{W=4,Nl(e,t,n,r)}finally{W=o,Mn.transition=s}}function Nl(e,t,n,r){if(qo){var o=Oi(e,t,n,r);if(o===null)_s(e,t,r,Qo,n),va(e,r);else if(Ug(o,e,t,n,r))r.stopPropagation();else if(va(e,r),t&4&&-1<Fg.indexOf(e)){for(;o!==null;){var s=Gr(o);if(s!==null&&Jf(s),s=Oi(e,t,n,r),s===null&&_s(e,t,r,Qo,n),s===o)break;o=s}o!==null&&r.stopPropagation()}else _s(e,t,r,null,n)}}var Qo=null;function Oi(e,t,n,r){if(Qo=null,e=Dl(r),e=tn(e),e!==null)if(t=hn(e),t===null)e=null;else if(n=t.tag,n===13){if(e=Vf(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Qo=e,null}function nd(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(bg()){case Rl:return 1;case Xf:return 4;case Fo:case Tg:return 16;case zf:return 536870912;default:return 16}default:return 16}}var Pt=null,Ll=null,ko=null;function rd(){if(ko)return ko;var e,t=Ll,n=t.length,r,o="value"in Pt?Pt.value:Pt.textContent,s=o.length;for(e=0;e<n&&t[e]===o[e];e++);var i=n-e;for(r=1;r<=i&&t[n-r]===o[s-r];r++);return ko=o.slice(e,1<r?1-r:void 0)}function So(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function oo(){return!0}function ya(){return!1}function qe(e){function t(n,r,o,s,i){this._reactName=n,this._targetInst=o,this.type=r,this.nativeEvent=s,this.target=i,this.currentTarget=null;for(var l in e)e.hasOwnProperty(l)&&(n=e[l],this[l]=n?n(s):s[l]);return this.isDefaultPrevented=(s.defaultPrevented!=null?s.defaultPrevented:s.returnValue===!1)?oo:ya,this.isPropagationStopped=ya,this}return te(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=oo)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=oo)},persist:function(){},isPersistent:oo}),t}var zn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Pl=qe(zn),Vr=te({},zn,{view:0,detail:0}),Vg=qe(Vr),Vs,Gs,nr,as=te({},Vr,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ol,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==nr&&(nr&&e.type==="mousemove"?(Vs=e.screenX-nr.screenX,Gs=e.screenY-nr.screenY):Gs=Vs=0,nr=e),Vs)},movementY:function(e){return"movementY"in e?e.movementY:Gs}}),Aa=qe(as),Gg=te({},as,{dataTransfer:0}),Wg=qe(Gg),Yg=te({},Vr,{relatedTarget:0}),Ws=qe(Yg),Xg=te({},zn,{animationName:0,elapsedTime:0,pseudoElement:0}),zg=qe(Xg),Kg=te({},zn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Zg=qe(Kg),Jg=te({},zn,{data:0}),Ea=qe(Jg),_g={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},$g={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},e1={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function t1(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=e1[e])?!!t[e]:!1}function Ol(){return t1}var n1=te({},Vr,{key:function(e){if(e.key){var t=_g[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=So(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?$g[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ol,charCode:function(e){return e.type==="keypress"?So(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?So(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),r1=qe(n1),o1=te({},as,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),xa=qe(o1),s1=te({},Vr,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ol}),i1=qe(s1),l1=te({},zn,{propertyName:0,elapsedTime:0,pseudoElement:0}),c1=qe(l1),a1=te({},as,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),u1=qe(a1),f1=[9,13,27,32],Bl=wt&&"CompositionEvent"in window,pr=null;wt&&"documentMode"in document&&(pr=document.documentMode);var d1=wt&&"TextEvent"in window&&!pr,od=wt&&(!Bl||pr&&8<pr&&11>=pr),ka=String.fromCharCode(32),Sa=!1;function sd(e,t){switch(e){case"keyup":return f1.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function id(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var xn=!1;function p1(e,t){switch(e){case"compositionend":return id(t);case"keypress":return t.which!==32?null:(Sa=!0,ka);case"textInput":return e=t.data,e===ka&&Sa?null:e;default:return null}}function h1(e,t){if(xn)return e==="compositionend"||!Bl&&sd(e,t)?(e=rd(),ko=Ll=Pt=null,xn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return od&&t.locale!=="ko"?null:t.data;default:return null}}var g1={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Ca(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!g1[e.type]:t==="textarea"}function ld(e,t,n,r){Ff(r),t=jo(t,"onChange"),0<t.length&&(n=new Pl("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var hr=null,Rr=null;function m1(e){wd(e,0)}function us(e){var t=Cn(e);if(Nf(t))return e}function v1(e,t){if(e==="change")return t}var cd=!1;if(wt){var Ys;if(wt){var Xs="oninput"in document;if(!Xs){var Ia=document.createElement("div");Ia.setAttribute("oninput","return;"),Xs=typeof Ia.oninput=="function"}Ys=Xs}else Ys=!1;cd=Ys&&(!document.documentMode||9<document.documentMode)}function Da(){hr&&(hr.detachEvent("onpropertychange",ad),Rr=hr=null)}function ad(e){if(e.propertyName==="value"&&us(Rr)){var t=[];ld(t,Rr,e,Dl(e)),jf(m1,t)}}function w1(e,t,n){e==="focusin"?(Da(),hr=t,Rr=n,hr.attachEvent("onpropertychange",ad)):e==="focusout"&&Da()}function y1(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return us(Rr)}function A1(e,t){if(e==="click")return us(t)}function E1(e,t){if(e==="input"||e==="change")return us(t)}function x1(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var tt=typeof Object.is=="function"?Object.is:x1;function br(e,t){if(tt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!mi.call(t,o)||!tt(e[o],t[o]))return!1}return!0}function Ra(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ba(e,t){var n=Ra(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ra(n)}}function ud(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?ud(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function fd(){for(var e=window,t=Bo();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Bo(e.document)}return t}function Hl(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function k1(e){var t=fd(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&ud(n.ownerDocument.documentElement,n)){if(r!==null&&Hl(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,s=Math.min(r.start,o);r=r.end===void 0?s:Math.min(r.end,o),!e.extend&&s>r&&(o=r,r=s,s=o),o=ba(n,s);var i=ba(n,r);o&&i&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),s>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var S1=wt&&"documentMode"in document&&11>=document.documentMode,kn=null,Bi=null,gr=null,Hi=!1;function Ta(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Hi||kn==null||kn!==Bo(r)||(r=kn,"selectionStart"in r&&Hl(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),gr&&br(gr,r)||(gr=r,r=jo(Bi,"onSelect"),0<r.length&&(t=new Pl("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=kn)))}function so(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Sn={animationend:so("Animation","AnimationEnd"),animationiteration:so("Animation","AnimationIteration"),animationstart:so("Animation","AnimationStart"),transitionend:so("Transition","TransitionEnd")},zs={},dd={};wt&&(dd=document.createElement("div").style,"AnimationEvent"in window||(delete Sn.animationend.animation,delete Sn.animationiteration.animation,delete Sn.animationstart.animation),"TransitionEvent"in window||delete Sn.transitionend.transition);function fs(e){if(zs[e])return zs[e];if(!Sn[e])return e;var t=Sn[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in dd)return zs[e]=t[n];return e}var pd=fs("animationend"),hd=fs("animationiteration"),gd=fs("animationstart"),md=fs("transitionend"),vd=new Map,Na="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Wt(e,t){vd.set(e,t),pn(t,[e])}for(var Ks=0;Ks<Na.length;Ks++){var Zs=Na[Ks],C1=Zs.toLowerCase(),I1=Zs[0].toUpperCase()+Zs.slice(1);Wt(C1,"on"+I1)}Wt(pd,"onAnimationEnd");Wt(hd,"onAnimationIteration");Wt(gd,"onAnimationStart");Wt("dblclick","onDoubleClick");Wt("focusin","onFocus");Wt("focusout","onBlur");Wt(md,"onTransitionEnd");Qn("onMouseEnter",["mouseout","mouseover"]);Qn("onMouseLeave",["mouseout","mouseover"]);Qn("onPointerEnter",["pointerout","pointerover"]);Qn("onPointerLeave",["pointerout","pointerover"]);pn("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));pn("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));pn("onBeforeInput",["compositionend","keypress","textInput","paste"]);pn("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));pn("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));pn("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var ur="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),D1=new Set("cancel close invalid load scroll toggle".split(" ").concat(ur));function La(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,Cg(r,t,void 0,e),e.currentTarget=null}function wd(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var s=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],c=l.instance,u=l.currentTarget;if(l=l.listener,c!==s&&o.isPropagationStopped())break e;La(o,l,u),s=c}else for(i=0;i<r.length;i++){if(l=r[i],c=l.instance,u=l.currentTarget,l=l.listener,c!==s&&o.isPropagationStopped())break e;La(o,l,u),s=c}}}if(Mo)throw e=Ni,Mo=!1,Ni=null,e}function K(e,t){var n=t[Qi];n===void 0&&(n=t[Qi]=new Set);var r=e+"__bubble";n.has(r)||(yd(t,e,2,!1),n.add(r))}function Js(e,t,n){var r=0;t&&(r|=4),yd(n,e,r,t)}var io="_reactListening"+Math.random().toString(36).slice(2);function Tr(e){if(!e[io]){e[io]=!0,If.forEach(function(n){n!=="selectionchange"&&(D1.has(n)||Js(n,!1,e),Js(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[io]||(t[io]=!0,Js("selectionchange",!1,t))}}function yd(e,t,n,r){switch(nd(t)){case 1:var o=Qg;break;case 4:o=jg;break;default:o=Nl}n=o.bind(null,t,n,e),o=void 0,!Ti||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(o=!0),r?o!==void 0?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):o!==void 0?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function _s(e,t,n,r,o){var s=r;if(!(t&1)&&!(t&2)&&r!==null)e:for(;;){if(r===null)return;var i=r.tag;if(i===3||i===4){var l=r.stateNode.containerInfo;if(l===o||l.nodeType===8&&l.parentNode===o)break;if(i===4)for(i=r.return;i!==null;){var c=i.tag;if((c===3||c===4)&&(c=i.stateNode.containerInfo,c===o||c.nodeType===8&&c.parentNode===o))return;i=i.return}for(;l!==null;){if(i=tn(l),i===null)return;if(c=i.tag,c===5||c===6){r=s=i;continue e}l=l.parentNode}}r=r.return}jf(function(){var u=s,p=Dl(n),v=[];e:{var h=vd.get(e);if(h!==void 0){var C=Pl,E=e;switch(e){case"keypress":if(So(n)===0)break e;case"keydown":case"keyup":C=r1;break;case"focusin":E="focus",C=Ws;break;case"focusout":E="blur",C=Ws;break;case"beforeblur":case"afterblur":C=Ws;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":C=Aa;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":C=Wg;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":C=i1;break;case pd:case hd:case gd:C=zg;break;case md:C=c1;break;case"scroll":C=Vg;break;case"wheel":C=u1;break;case"copy":case"cut":case"paste":C=Zg;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":C=xa}var g=(t&4)!==0,m=!g&&e==="scroll",a=g?h!==null?h+"Capture":null:h;g=[];for(var f=u,d;f!==null;){d=f;var y=d.stateNode;if(d.tag===5&&y!==null&&(d=y,a!==null&&(y=Sr(f,a),y!=null&&g.push(Nr(f,y,d)))),m)break;f=f.return}0<g.length&&(h=new C(h,E,null,n,p),v.push({event:h,listeners:g}))}}if(!(t&7)){e:{if(h=e==="mouseover"||e==="pointerover",C=e==="mouseout"||e==="pointerout",h&&n!==Ri&&(E=n.relatedTarget||n.fromElement)&&(tn(E)||E[yt]))break e;if((C||h)&&(h=p.window===p?p:(h=p.ownerDocument)?h.defaultView||h.parentWindow:window,C?(E=n.relatedTarget||n.toElement,C=u,E=E?tn(E):null,E!==null&&(m=hn(E),E!==m||E.tag!==5&&E.tag!==6)&&(E=null)):(C=null,E=u),C!==E)){if(g=Aa,y="onMouseLeave",a="onMouseEnter",f="mouse",(e==="pointerout"||e==="pointerover")&&(g=xa,y="onPointerLeave",a="onPointerEnter",f="pointer"),m=C==null?h:Cn(C),d=E==null?h:Cn(E),h=new g(y,f+"leave",C,n,p),h.target=m,h.relatedTarget=d,y=null,tn(p)===u&&(g=new g(a,f+"enter",E,n,p),g.target=d,g.relatedTarget=m,y=g),m=y,C&&E)t:{for(g=C,a=E,f=0,d=g;d;d=mn(d))f++;for(d=0,y=a;y;y=mn(y))d++;for(;0<f-d;)g=mn(g),f--;for(;0<d-f;)a=mn(a),d--;for(;f--;){if(g===a||a!==null&&g===a.alternate)break t;g=mn(g),a=mn(a)}g=null}else g=null;C!==null&&Pa(v,h,C,g,!1),E!==null&&m!==null&&Pa(v,m,E,g,!0)}}e:{if(h=u?Cn(u):window,C=h.nodeName&&h.nodeName.toLowerCase(),C==="select"||C==="input"&&h.type==="file")var k=v1;else if(Ca(h))if(cd)k=E1;else{k=y1;var w=w1}else(C=h.nodeName)&&C.toLowerCase()==="input"&&(h.type==="checkbox"||h.type==="radio")&&(k=A1);if(k&&(k=k(e,u))){ld(v,k,n,p);break e}w&&w(e,h,u),e==="focusout"&&(w=h._wrapperState)&&w.controlled&&h.type==="number"&&ki(h,"number",h.value)}switch(w=u?Cn(u):window,e){case"focusin":(Ca(w)||w.contentEditable==="true")&&(kn=w,Bi=u,gr=null);break;case"focusout":gr=Bi=kn=null;break;case"mousedown":Hi=!0;break;case"contextmenu":case"mouseup":case"dragend":Hi=!1,Ta(v,n,p);break;case"selectionchange":if(S1)break;case"keydown":case"keyup":Ta(v,n,p)}var x;if(Bl)e:{switch(e){case"compositionstart":var S="onCompositionStart";break e;case"compositionend":S="onCompositionEnd";break e;case"compositionupdate":S="onCompositionUpdate";break e}S=void 0}else xn?sd(e,n)&&(S="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(S="onCompositionStart");S&&(od&&n.locale!=="ko"&&(xn||S!=="onCompositionStart"?S==="onCompositionEnd"&&xn&&(x=rd()):(Pt=p,Ll="value"in Pt?Pt.value:Pt.textContent,xn=!0)),w=jo(u,S),0<w.length&&(S=new Ea(S,e,null,n,p),v.push({event:S,listeners:w}),x?S.data=x:(x=id(n),x!==null&&(S.data=x)))),(x=d1?p1(e,n):h1(e,n))&&(u=jo(u,"onBeforeInput"),0<u.length&&(p=new Ea("onBeforeInput","beforeinput",null,n,p),v.push({event:p,listeners:u}),p.data=x))}wd(v,t)})}function Nr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function jo(e,t){for(var n=t+"Capture",r=[];e!==null;){var o=e,s=o.stateNode;o.tag===5&&s!==null&&(o=s,s=Sr(e,n),s!=null&&r.unshift(Nr(e,s,o)),s=Sr(e,t),s!=null&&r.push(Nr(e,s,o))),e=e.return}return r}function mn(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Pa(e,t,n,r,o){for(var s=t._reactName,i=[];n!==null&&n!==r;){var l=n,c=l.alternate,u=l.stateNode;if(c!==null&&c===r)break;l.tag===5&&u!==null&&(l=u,o?(c=Sr(n,s),c!=null&&i.unshift(Nr(n,c,l))):o||(c=Sr(n,s),c!=null&&i.push(Nr(n,c,l)))),n=n.return}i.length!==0&&e.push({event:t,listeners:i})}var R1=/\r\n?/g,b1=/\u0000|\uFFFD/g;function Oa(e){return(typeof e=="string"?e:""+e).replace(R1,`
+`).replace(b1,"")}function lo(e,t,n){if(t=Oa(t),Oa(e)!==t&&n)throw Error(R(425))}function Vo(){}var Mi=null,Fi=null;function Ui(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var qi=typeof setTimeout=="function"?setTimeout:void 0,T1=typeof clearTimeout=="function"?clearTimeout:void 0,Ba=typeof Promise=="function"?Promise:void 0,N1=typeof queueMicrotask=="function"?queueMicrotask:typeof Ba<"u"?function(e){return Ba.resolve(null).then(e).catch(L1)}:qi;function L1(e){setTimeout(function(){throw e})}function $s(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&o.nodeType===8)if(n=o.data,n==="/$"){if(r===0){e.removeChild(o),Dr(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=o}while(n);Dr(t)}function ft(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function Ha(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var Kn=Math.random().toString(36).slice(2),st="__reactFiber$"+Kn,Lr="__reactProps$"+Kn,yt="__reactContainer$"+Kn,Qi="__reactEvents$"+Kn,P1="__reactListeners$"+Kn,O1="__reactHandles$"+Kn;function tn(e){var t=e[st];if(t)return t;for(var n=e.parentNode;n;){if(t=n[yt]||n[st]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Ha(e);e!==null;){if(n=e[st])return n;e=Ha(e)}return t}e=n,n=e.parentNode}return null}function Gr(e){return e=e[st]||e[yt],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Cn(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(R(33))}function ds(e){return e[Lr]||null}var ji=[],In=-1;function Yt(e){return{current:e}}function J(e){0>In||(e.current=ji[In],ji[In]=null,In--)}function z(e,t){In++,ji[In]=e.current,e.current=t}var jt={},we=Yt(jt),be=Yt(!1),ln=jt;function jn(e,t){var n=e.type.contextTypes;if(!n)return jt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},s;for(s in n)o[s]=t[s];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Te(e){return e=e.childContextTypes,e!=null}function Go(){J(be),J(we)}function Ma(e,t,n){if(we.current!==jt)throw Error(R(168));z(we,t),z(be,n)}function Ad(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(R(108,wg(e)||"Unknown",o));return te({},n,r)}function Wo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||jt,ln=we.current,z(we,e),z(be,be.current),!0}function Fa(e,t,n){var r=e.stateNode;if(!r)throw Error(R(169));n?(e=Ad(e,t,ln),r.__reactInternalMemoizedMergedChildContext=e,J(be),J(we),z(we,e)):J(be),z(be,n)}var ut=null,ps=!1,ei=!1;function Ed(e){ut===null?ut=[e]:ut.push(e)}function B1(e){ps=!0,Ed(e)}function Xt(){if(!ei&&ut!==null){ei=!0;var e=0,t=W;try{var n=ut;for(W=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}ut=null,ps=!1}catch(o){throw ut!==null&&(ut=ut.slice(e+1)),Yf(Rl,Xt),o}finally{W=t,ei=!1}}return null}var H1=Et.ReactCurrentBatchConfig;function Ke(e,t){if(e&&e.defaultProps){t=te({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}var Yo=Yt(null),Xo=null,Dn=null,Ml=null;function Fl(){Ml=Dn=Xo=null}function Ul(e){var t=Yo.current;J(Yo),e._currentValue=t}function Vi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Fn(e,t){Xo=e,Ml=Dn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Re=!0),e.firstContext=null)}function Ye(e){var t=e._currentValue;if(Ml!==e)if(e={context:e,memoizedValue:t,next:null},Dn===null){if(Xo===null)throw Error(R(308));Dn=e,Xo.dependencies={lanes:0,firstContext:e}}else Dn=Dn.next=e;return t}var $e=null,Rt=!1;function ql(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function xd(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function mt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ft(e,t){var n=e.updateQueue;n!==null&&(n=n.shared,fp(e)?(e=n.interleaved,e===null?(t.next=t,$e===null?$e=[n]:$e.push(n)):(t.next=e.next,e.next=t),n.interleaved=t):(e=n.pending,e===null?t.next=t:(t.next=e.next,e.next=t),n.pending=t))}function Co(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,bl(e,n)}}function Ua(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?o=s=i:s=s.next=i,n=n.next}while(n!==null);s===null?o=s=t:s=s.next=t}else o=s=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:s,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function zo(e,t,n,r){var o=e.updateQueue;Rt=!1;var s=o.firstBaseUpdate,i=o.lastBaseUpdate,l=o.shared.pending;if(l!==null){o.shared.pending=null;var c=l,u=c.next;c.next=null,i===null?s=u:i.next=u,i=c;var p=e.alternate;p!==null&&(p=p.updateQueue,l=p.lastBaseUpdate,l!==i&&(l===null?p.firstBaseUpdate=u:l.next=u,p.lastBaseUpdate=c))}if(s!==null){var v=o.baseState;i=0,p=u=c=null,l=s;do{var h=l.lane,C=l.eventTime;if((r&h)===h){p!==null&&(p=p.next={eventTime:C,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var E=e,g=l;switch(h=t,C=n,g.tag){case 1:if(E=g.payload,typeof E=="function"){v=E.call(C,v,h);break e}v=E;break e;case 3:E.flags=E.flags&-65537|128;case 0:if(E=g.payload,h=typeof E=="function"?E.call(C,v,h):E,h==null)break e;v=te({},v,h);break e;case 2:Rt=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,h=o.effects,h===null?o.effects=[l]:h.push(l))}else C={eventTime:C,lane:h,tag:l.tag,payload:l.payload,callback:l.callback,next:null},p===null?(u=p=C,c=v):p=p.next=C,i|=h;if(l=l.next,l===null){if(l=o.shared.pending,l===null)break;h=l,l=h.next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null}}while(1);if(p===null&&(c=v),o.baseState=c,o.firstBaseUpdate=u,o.lastBaseUpdate=p,t=o.shared.interleaved,t!==null){o=t;do i|=o.lane,o=o.next;while(o!==t)}else s===null&&(o.shared.lanes=0);un|=i,e.lanes=i,e.memoizedState=v}}function qa(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(o!==null){if(r.callback=null,r=n,typeof o!="function")throw Error(R(191,o));o.call(r)}}}var kd=new Cf.Component().refs;function Gi(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:te({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var hs={isMounted:function(e){return(e=e._reactInternals)?hn(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Ae(),o=qt(e),s=mt(r,o);s.payload=t,n!=null&&(s.callback=n),Ft(e,s),t=We(e,o,r),t!==null&&Co(t,e,o)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Ae(),o=qt(e),s=mt(r,o);s.tag=1,s.payload=t,n!=null&&(s.callback=n),Ft(e,s),t=We(e,o,r),t!==null&&Co(t,e,o)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Ae(),r=qt(e),o=mt(n,r);o.tag=2,t!=null&&(o.callback=t),Ft(e,o),t=We(e,r,n),t!==null&&Co(t,e,r)}};function Qa(e,t,n,r,o,s,i){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,s,i):t.prototype&&t.prototype.isPureReactComponent?!br(n,r)||!br(o,s):!0}function Sd(e,t,n){var r=!1,o=jt,s=t.contextType;return typeof s=="object"&&s!==null?s=Ye(s):(o=Te(t)?ln:we.current,r=t.contextTypes,s=(r=r!=null)?jn(e,o):jt),t=new t(n,s),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=hs,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=s),t}function ja(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&hs.enqueueReplaceState(t,t.state,null)}function Wi(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=kd,ql(e);var s=t.contextType;typeof s=="object"&&s!==null?o.context=Ye(s):(s=Te(t)?ln:we.current,o.context=jn(e,s)),o.state=e.memoizedState,s=t.getDerivedStateFromProps,typeof s=="function"&&(Gi(e,t,s,n),o.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof o.getSnapshotBeforeUpdate=="function"||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(t=o.state,typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount(),t!==o.state&&hs.enqueueReplaceState(o,o.state,null),zo(e,n,o,r),o.state=e.memoizedState),typeof o.componentDidMount=="function"&&(e.flags|=4194308)}var Rn=[],bn=0,Ko=null,Zo=0,Qe=[],je=0,cn=null,dt=1,pt="";function $t(e,t){Rn[bn++]=Zo,Rn[bn++]=Ko,Ko=e,Zo=t}function Cd(e,t,n){Qe[je++]=dt,Qe[je++]=pt,Qe[je++]=cn,cn=e;var r=dt;e=pt;var o=32-et(r)-1;r&=~(1<<o),n+=1;var s=32-et(t)+o;if(30<s){var i=o-o%5;s=(r&(1<<i)-1).toString(32),r>>=i,o-=i,dt=1<<32-et(t)+o|n<<o|r,pt=s+e}else dt=1<<s|n<<o|r,pt=e}function Ql(e){e.return!==null&&($t(e,1),Cd(e,1,0))}function jl(e){for(;e===Ko;)Ko=Rn[--bn],Rn[bn]=null,Zo=Rn[--bn],Rn[bn]=null;for(;e===cn;)cn=Qe[--je],Qe[je]=null,pt=Qe[--je],Qe[je]=null,dt=Qe[--je],Qe[je]=null}var Me=null,De=null,_=!1,Je=null;function Id(e,t){var n=Ve(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Va(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,Me=e,De=ft(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Me=e,De=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=cn!==null?{id:dt,overflow:pt}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=Ve(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,Me=e,De=null,!0):!1;default:return!1}}function Yi(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Xi(e){if(_){var t=De;if(t){var n=t;if(!Va(e,t)){if(Yi(e))throw Error(R(418));t=ft(n.nextSibling);var r=Me;t&&Va(e,t)?Id(r,n):(e.flags=e.flags&-4097|2,_=!1,Me=e)}}else{if(Yi(e))throw Error(R(418));e.flags=e.flags&-4097|2,_=!1,Me=e}}}function Ga(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Me=e}function rr(e){if(e!==Me)return!1;if(!_)return Ga(e),_=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Ui(e.type,e.memoizedProps)),t&&(t=De)){if(Yi(e)){for(e=De;e;)e=ft(e.nextSibling);throw Error(R(418))}for(;t;)Id(e,t),t=ft(t.nextSibling)}if(Ga(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(R(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){De=ft(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}De=null}}else De=Me?ft(e.stateNode.nextSibling):null;return!0}function Vn(){De=Me=null,_=!1}function Vl(e){Je===null?Je=[e]:Je.push(e)}function or(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(R(309));var r=n.stateNode}if(!r)throw Error(R(147,e));var o=r,s=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===s?t.ref:(t=function(i){var l=o.refs;l===kd&&(l=o.refs={}),i===null?delete l[s]:l[s]=i},t._stringRef=s,t)}if(typeof e!="string")throw Error(R(284));if(!n._owner)throw Error(R(290,e))}return e}function co(e,t){throw e=Object.prototype.toString.call(t),Error(R(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Wa(e){var t=e._init;return t(e._payload)}function Dd(e){function t(a,f){if(e){var d=a.deletions;d===null?(a.deletions=[f],a.flags|=16):d.push(f)}}function n(a,f){if(!e)return null;for(;f!==null;)t(a,f),f=f.sibling;return null}function r(a,f){for(a=new Map;f!==null;)f.key!==null?a.set(f.key,f):a.set(f.index,f),f=f.sibling;return a}function o(a,f){return a=Vt(a,f),a.index=0,a.sibling=null,a}function s(a,f,d){return a.index=d,e?(d=a.alternate,d!==null?(d=d.index,d<f?(a.flags|=2,f):d):(a.flags|=2,f)):(a.flags|=1048576,f)}function i(a){return e&&a.alternate===null&&(a.flags|=2),a}function l(a,f,d,y){return f===null||f.tag!==6?(f=ii(d,a.mode,y),f.return=a,f):(f=o(f,d),f.return=a,f)}function c(a,f,d,y){var k=d.type;return k===En?p(a,f,d.props.children,y,d.key):f!==null&&(f.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Dt&&Wa(k)===f.type)?(y=o(f,d.props),y.ref=or(a,f,d),y.return=a,y):(y=To(d.type,d.key,d.props,null,a.mode,y),y.ref=or(a,f,d),y.return=a,y)}function u(a,f,d,y){return f===null||f.tag!==4||f.stateNode.containerInfo!==d.containerInfo||f.stateNode.implementation!==d.implementation?(f=li(d,a.mode,y),f.return=a,f):(f=o(f,d.children||[]),f.return=a,f)}function p(a,f,d,y,k){return f===null||f.tag!==7?(f=sn(d,a.mode,y,k),f.return=a,f):(f=o(f,d),f.return=a,f)}function v(a,f,d){if(typeof f=="string"&&f!==""||typeof f=="number")return f=ii(""+f,a.mode,d),f.return=a,f;if(typeof f=="object"&&f!==null){switch(f.$$typeof){case _r:return d=To(f.type,f.key,f.props,null,a.mode,d),d.ref=or(a,null,f),d.return=a,d;case An:return f=li(f,a.mode,d),f.return=a,f;case Dt:var y=f._init;return v(a,y(f._payload),d)}if(cr(f)||_n(f))return f=sn(f,a.mode,d,null),f.return=a,f;co(a,f)}return null}function h(a,f,d,y){var k=f!==null?f.key:null;if(typeof d=="string"&&d!==""||typeof d=="number")return k!==null?null:l(a,f,""+d,y);if(typeof d=="object"&&d!==null){switch(d.$$typeof){case _r:return d.key===k?c(a,f,d,y):null;case An:return d.key===k?u(a,f,d,y):null;case Dt:return k=d._init,h(a,f,k(d._payload),y)}if(cr(d)||_n(d))return k!==null?null:p(a,f,d,y,null);co(a,d)}return null}function C(a,f,d,y,k){if(typeof y=="string"&&y!==""||typeof y=="number")return a=a.get(d)||null,l(f,a,""+y,k);if(typeof y=="object"&&y!==null){switch(y.$$typeof){case _r:return a=a.get(y.key===null?d:y.key)||null,c(f,a,y,k);case An:return a=a.get(y.key===null?d:y.key)||null,u(f,a,y,k);case Dt:var w=y._init;return C(a,f,d,w(y._payload),k)}if(cr(y)||_n(y))return a=a.get(d)||null,p(f,a,y,k,null);co(f,y)}return null}function E(a,f,d,y){for(var k=null,w=null,x=f,S=f=0,D=null;x!==null&&S<d.length;S++){x.index>S?(D=x,x=null):D=x.sibling;var I=h(a,x,d[S],y);if(I===null){x===null&&(x=D);break}e&&x&&I.alternate===null&&t(a,x),f=s(I,f,S),w===null?k=I:w.sibling=I,w=I,x=D}if(S===d.length)return n(a,x),_&&$t(a,S),k;if(x===null){for(;S<d.length;S++)x=v(a,d[S],y),x!==null&&(f=s(x,f,S),w===null?k=x:w.sibling=x,w=x);return _&&$t(a,S),k}for(x=r(a,x);S<d.length;S++)D=C(x,a,S,d[S],y),D!==null&&(e&&D.alternate!==null&&x.delete(D.key===null?S:D.key),f=s(D,f,S),w===null?k=D:w.sibling=D,w=D);return e&&x.forEach(function(T){return t(a,T)}),_&&$t(a,S),k}function g(a,f,d,y){var k=_n(d);if(typeof k!="function")throw Error(R(150));if(d=k.call(d),d==null)throw Error(R(151));for(var w=k=null,x=f,S=f=0,D=null,I=d.next();x!==null&&!I.done;S++,I=d.next()){x.index>S?(D=x,x=null):D=x.sibling;var T=h(a,x,I.value,y);if(T===null){x===null&&(x=D);break}e&&x&&T.alternate===null&&t(a,x),f=s(T,f,S),w===null?k=T:w.sibling=T,w=T,x=D}if(I.done)return n(a,x),_&&$t(a,S),k;if(x===null){for(;!I.done;S++,I=d.next())I=v(a,I.value,y),I!==null&&(f=s(I,f,S),w===null?k=I:w.sibling=I,w=I);return _&&$t(a,S),k}for(x=r(a,x);!I.done;S++,I=d.next())I=C(x,a,S,I.value,y),I!==null&&(e&&I.alternate!==null&&x.delete(I.key===null?S:I.key),f=s(I,f,S),w===null?k=I:w.sibling=I,w=I);return e&&x.forEach(function(B){return t(a,B)}),_&&$t(a,S),k}function m(a,f,d,y){if(typeof d=="object"&&d!==null&&d.type===En&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case _r:e:{for(var k=d.key,w=f;w!==null;){if(w.key===k){if(k=d.type,k===En){if(w.tag===7){n(a,w.sibling),f=o(w,d.props.children),f.return=a,a=f;break e}}else if(w.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Dt&&Wa(k)===w.type){n(a,w.sibling),f=o(w,d.props),f.ref=or(a,w,d),f.return=a,a=f;break e}n(a,w);break}else t(a,w);w=w.sibling}d.type===En?(f=sn(d.props.children,a.mode,y,d.key),f.return=a,a=f):(y=To(d.type,d.key,d.props,null,a.mode,y),y.ref=or(a,f,d),y.return=a,a=y)}return i(a);case An:e:{for(w=d.key;f!==null;){if(f.key===w)if(f.tag===4&&f.stateNode.containerInfo===d.containerInfo&&f.stateNode.implementation===d.implementation){n(a,f.sibling),f=o(f,d.children||[]),f.return=a,a=f;break e}else{n(a,f);break}else t(a,f);f=f.sibling}f=li(d,a.mode,y),f.return=a,a=f}return i(a);case Dt:return w=d._init,m(a,f,w(d._payload),y)}if(cr(d))return E(a,f,d,y);if(_n(d))return g(a,f,d,y);co(a,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,f!==null&&f.tag===6?(n(a,f.sibling),f=o(f,d),f.return=a,a=f):(n(a,f),f=ii(d,a.mode,y),f.return=a,a=f),i(a)):n(a,f)}return m}var Gn=Dd(!0),Rd=Dd(!1),Wr={},ct=Yt(Wr),Pr=Yt(Wr),Or=Yt(Wr);function nn(e){if(e===Wr)throw Error(R(174));return e}function Gl(e,t){switch(z(Or,t),z(Pr,e),z(ct,Wr),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Ci(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Ci(t,e)}J(ct),z(ct,t)}function Wn(){J(ct),J(Pr),J(Or)}function bd(e){nn(Or.current);var t=nn(ct.current),n=Ci(t,e.type);t!==n&&(z(Pr,e),z(ct,n))}function Wl(e){Pr.current===e&&(J(ct),J(Pr))}var $=Yt(0);function Jo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ti=[];function Yl(){for(var e=0;e<ti.length;e++)ti[e]._workInProgressVersionPrimary=null;ti.length=0}var Io=Et.ReactCurrentDispatcher,ni=Et.ReactCurrentBatchConfig,an=0,ee=null,ie=null,ue=null,_o=!1,mr=!1,Br=0,M1=0;function he(){throw Error(R(321))}function Xl(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!tt(e[n],t[n]))return!1;return!0}function zl(e,t,n,r,o,s){if(an=s,ee=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Io.current=e===null||e.memoizedState===null?Q1:j1,e=n(r,o),mr){s=0;do{if(mr=!1,Br=0,25<=s)throw Error(R(301));s+=1,ue=ie=null,t.updateQueue=null,Io.current=V1,e=n(r,o)}while(mr)}if(Io.current=$o,t=ie!==null&&ie.next!==null,an=0,ue=ie=ee=null,_o=!1,t)throw Error(R(300));return e}function Kl(){var e=Br!==0;return Br=0,e}function rt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ue===null?ee.memoizedState=ue=e:ue=ue.next=e,ue}function Xe(){if(ie===null){var e=ee.alternate;e=e!==null?e.memoizedState:null}else e=ie.next;var t=ue===null?ee.memoizedState:ue.next;if(t!==null)ue=t,ie=e;else{if(e===null)throw Error(R(310));ie=e,e={memoizedState:ie.memoizedState,baseState:ie.baseState,baseQueue:ie.baseQueue,queue:ie.queue,next:null},ue===null?ee.memoizedState=ue=e:ue=ue.next=e}return ue}function Hr(e,t){return typeof t=="function"?t(e):t}function ri(e){var t=Xe(),n=t.queue;if(n===null)throw Error(R(311));n.lastRenderedReducer=e;var r=ie,o=r.baseQueue,s=n.pending;if(s!==null){if(o!==null){var i=o.next;o.next=s.next,s.next=i}r.baseQueue=o=s,n.pending=null}if(o!==null){s=o.next,r=r.baseState;var l=i=null,c=null,u=s;do{var p=u.lane;if((an&p)===p)c!==null&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var v={lane:p,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};c===null?(l=c=v,i=r):c=c.next=v,ee.lanes|=p,un|=p}u=u.next}while(u!==null&&u!==s);c===null?i=r:c.next=l,tt(r,t.memoizedState)||(Re=!0),t.memoizedState=r,t.baseState=i,t.baseQueue=c,n.lastRenderedState=r}if(e=n.interleaved,e!==null){o=e;do s=o.lane,ee.lanes|=s,un|=s,o=o.next;while(o!==e)}else o===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function oi(e){var t=Xe(),n=t.queue;if(n===null)throw Error(R(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,s=t.memoizedState;if(o!==null){n.pending=null;var i=o=o.next;do s=e(s,i.action),i=i.next;while(i!==o);tt(s,t.memoizedState)||(Re=!0),t.memoizedState=s,t.baseQueue===null&&(t.baseState=s),n.lastRenderedState=s}return[s,r]}function Td(){}function Nd(e,t){var n=ee,r=Xe(),o=t(),s=!tt(r.memoizedState,o);if(s&&(r.memoizedState=o,Re=!0),r=r.queue,Zl(Od.bind(null,n,r,e),[e]),r.getSnapshot!==t||s||ue!==null&&ue.memoizedState.tag&1){if(n.flags|=2048,Mr(9,Pd.bind(null,n,r,o,t),void 0,null),ce===null)throw Error(R(349));an&30||Ld(n,t,o)}return o}function Ld(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=ee.updateQueue,t===null?(t={lastEffect:null,stores:null},ee.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Pd(e,t,n,r){t.value=n,t.getSnapshot=r,Bd(t)&&We(e,1,-1)}function Od(e,t,n){return n(function(){Bd(t)&&We(e,1,-1)})}function Bd(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!tt(e,n)}catch{return!0}}function Ya(e){var t=rt();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Hr,lastRenderedState:e},t.queue=e,e=e.dispatch=q1.bind(null,ee,e),[t.memoizedState,e]}function Mr(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=ee.updateQueue,t===null?(t={lastEffect:null,stores:null},ee.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function Hd(){return Xe().memoizedState}function Do(e,t,n,r){var o=rt();ee.flags|=e,o.memoizedState=Mr(1|t,n,void 0,r===void 0?null:r)}function gs(e,t,n,r){var o=Xe();r=r===void 0?null:r;var s=void 0;if(ie!==null){var i=ie.memoizedState;if(s=i.destroy,r!==null&&Xl(r,i.deps)){o.memoizedState=Mr(t,n,s,r);return}}ee.flags|=e,o.memoizedState=Mr(1|t,n,s,r)}function Xa(e,t){return Do(8390656,8,e,t)}function Zl(e,t){return gs(2048,8,e,t)}function Md(e,t){return gs(4,2,e,t)}function Fd(e,t){return gs(4,4,e,t)}function Ud(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function qd(e,t,n){return n=n!=null?n.concat([e]):null,gs(4,4,Ud.bind(null,t,e),n)}function Jl(){}function Qd(e,t){var n=Xe();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Xl(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function jd(e,t){var n=Xe();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Xl(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Vd(e,t,n){return an&21?(tt(n,t)||(n=Kf(),ee.lanes|=n,un|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Re=!0),e.memoizedState=n)}function F1(e,t){var n=W;W=n!==0&&4>n?n:4,e(!0);var r=ni.transition;ni.transition={};try{e(!1),t()}finally{W=n,ni.transition=r}}function Gd(){return Xe().memoizedState}function U1(e,t,n){var r=qt(e);n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Wd(e)?Yd(t,n):(Xd(e,t,n),n=Ae(),e=We(e,r,n),e!==null&&zd(e,t,r))}function q1(e,t,n){var r=qt(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Wd(e))Yd(t,o);else{Xd(e,t,o);var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var i=t.lastRenderedState,l=s(i,n);if(o.hasEagerState=!0,o.eagerState=l,tt(l,i))return}catch{}finally{}n=Ae(),e=We(e,r,n),e!==null&&zd(e,t,r)}}function Wd(e){var t=e.alternate;return e===ee||t!==null&&t===ee}function Yd(e,t){mr=_o=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Xd(e,t,n){fp(e)?(e=t.interleaved,e===null?(n.next=n,$e===null?$e=[t]:$e.push(t)):(n.next=e.next,e.next=n),t.interleaved=n):(e=t.pending,e===null?n.next=n:(n.next=e.next,e.next=n),t.pending=n)}function zd(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,bl(e,n)}}var $o={readContext:Ye,useCallback:he,useContext:he,useEffect:he,useImperativeHandle:he,useInsertionEffect:he,useLayoutEffect:he,useMemo:he,useReducer:he,useRef:he,useState:he,useDebugValue:he,useDeferredValue:he,useTransition:he,useMutableSource:he,useSyncExternalStore:he,useId:he,unstable_isNewReconciler:!1},Q1={readContext:Ye,useCallback:function(e,t){return rt().memoizedState=[e,t===void 0?null:t],e},useContext:Ye,useEffect:Xa,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Do(4194308,4,Ud.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Do(4194308,4,e,t)},useInsertionEffect:function(e,t){return Do(4,2,e,t)},useMemo:function(e,t){var n=rt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=rt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=U1.bind(null,ee,e),[r.memoizedState,e]},useRef:function(e){var t=rt();return e={current:e},t.memoizedState=e},useState:Ya,useDebugValue:Jl,useDeferredValue:function(e){return rt().memoizedState=e},useTransition:function(){var e=Ya(!1),t=e[0];return e=F1.bind(null,e[1]),rt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ee,o=rt();if(_){if(n===void 0)throw Error(R(407));n=n()}else{if(n=t(),ce===null)throw Error(R(349));an&30||Ld(r,t,n)}o.memoizedState=n;var s={value:n,getSnapshot:t};return o.queue=s,Xa(Od.bind(null,r,s,e),[e]),r.flags|=2048,Mr(9,Pd.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=rt(),t=ce.identifierPrefix;if(_){var n=pt,r=dt;n=(r&~(1<<32-et(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Br++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=M1++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},j1={readContext:Ye,useCallback:Qd,useContext:Ye,useEffect:Zl,useImperativeHandle:qd,useInsertionEffect:Md,useLayoutEffect:Fd,useMemo:jd,useReducer:ri,useRef:Hd,useState:function(){return ri(Hr)},useDebugValue:Jl,useDeferredValue:function(e){var t=Xe();return Vd(t,ie.memoizedState,e)},useTransition:function(){var e=ri(Hr)[0],t=Xe().memoizedState;return[e,t]},useMutableSource:Td,useSyncExternalStore:Nd,useId:Gd,unstable_isNewReconciler:!1},V1={readContext:Ye,useCallback:Qd,useContext:Ye,useEffect:Zl,useImperativeHandle:qd,useInsertionEffect:Md,useLayoutEffect:Fd,useMemo:jd,useReducer:oi,useRef:Hd,useState:function(){return oi(Hr)},useDebugValue:Jl,useDeferredValue:function(e){var t=Xe();return ie===null?t.memoizedState=e:Vd(t,ie.memoizedState,e)},useTransition:function(){var e=oi(Hr)[0],t=Xe().memoizedState;return[e,t]},useMutableSource:Td,useSyncExternalStore:Nd,useId:Gd,unstable_isNewReconciler:!1};function _l(e,t){try{var n="",r=t;do n+=vg(r),r=r.return;while(r);var o=n}catch(s){o=`
+Error generating stack: `+s.message+`
+`+s.stack}return{value:e,source:t,stack:o}}function zi(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var G1=typeof WeakMap=="function"?WeakMap:Map;function Kd(e,t,n){n=mt(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){ts||(ts=!0,rl=r),zi(e,t)},n}function Zd(e,t,n){n=mt(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){zi(e,t)}}var s=e.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(n.callback=function(){zi(e,t),typeof r!="function"&&(Ut===null?Ut=new Set([this]):Ut.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function za(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new G1;var o=new Set;r.set(t,o)}else o=r.get(t),o===void 0&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=rm.bind(null,e,t,n),t.then(e,e))}function Ka(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Za(e,t,n,r,o){return e.mode&1?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=mt(-1,1),t.tag=2,Ft(n,t))),n.lanes|=1),e)}var Jd,Ki,_d,$d;Jd=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Ki=function(){};_d=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,nn(ct.current);var s=null;switch(n){case"input":o=Ei(e,o),r=Ei(e,r),s=[];break;case"select":o=te({},o,{value:void 0}),r=te({},r,{value:void 0}),s=[];break;case"textarea":o=Si(e,o),r=Si(e,r),s=[];break;default:typeof o.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Vo)}Ii(n,r);var i;n=null;for(u in o)if(!r.hasOwnProperty(u)&&o.hasOwnProperty(u)&&o[u]!=null)if(u==="style"){var l=o[u];for(i in l)l.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(xr.hasOwnProperty(u)?s||(s=[]):(s=s||[]).push(u,null));for(u in r){var c=r[u];if(l=o!=null?o[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(c!=null||l!=null))if(u==="style")if(l){for(i in l)!l.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&l[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(s||(s=[]),s.push(u,n)),n=c;else u==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,l=l?l.__html:void 0,c!=null&&l!==c&&(s=s||[]).push(u,c)):u==="children"?typeof c!="string"&&typeof c!="number"||(s=s||[]).push(u,""+c):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(xr.hasOwnProperty(u)?(c!=null&&u==="onScroll"&&K("scroll",e),s||l===c||(s=[])):(s=s||[]).push(u,c))}n&&(s=s||[]).push("style",n);var u=s;(t.updateQueue=u)&&(t.flags|=4)}};$d=function(e,t,n,r){n!==r&&(t.flags|=4)};function sr(e,t){if(!_)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ge(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags&14680064,r|=o.flags&14680064,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function W1(e,t,n){var r=t.pendingProps;switch(jl(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ge(t),null;case 1:return Te(t.type)&&Go(),ge(t),null;case 3:return r=t.stateNode,Wn(),J(be),J(we),Yl(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(rr(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Je!==null&&(il(Je),Je=null))),Ki(e,t),ge(t),null;case 5:Wl(t);var o=nn(Or.current);if(n=t.type,e!==null&&t.stateNode!=null)_d(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(R(166));return ge(t),null}if(e=nn(ct.current),rr(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[st]=t,r[Lr]=s,e=(t.mode&1)!==0,n){case"dialog":K("cancel",r),K("close",r);break;case"iframe":case"object":case"embed":K("load",r);break;case"video":case"audio":for(o=0;o<ur.length;o++)K(ur[o],r);break;case"source":K("error",r);break;case"img":case"image":case"link":K("error",r),K("load",r);break;case"details":K("toggle",r);break;case"input":ua(r,s),K("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!s.multiple},K("invalid",r);break;case"textarea":da(r,s),K("invalid",r)}Ii(n,s),o=null;for(var i in s)if(s.hasOwnProperty(i)){var l=s[i];i==="children"?typeof l=="string"?r.textContent!==l&&(s.suppressHydrationWarning!==!0&&lo(r.textContent,l,e),o=["children",l]):typeof l=="number"&&r.textContent!==""+l&&(s.suppressHydrationWarning!==!0&&lo(r.textContent,l,e),o=["children",""+l]):xr.hasOwnProperty(i)&&l!=null&&i==="onScroll"&&K("scroll",r)}switch(n){case"input":$r(r),fa(r,s,!0);break;case"textarea":$r(r),pa(r);break;case"select":case"option":break;default:typeof s.onClick=="function"&&(r.onclick=Vo)}r=o,t.updateQueue=r,r!==null&&(t.flags|=4)}else{i=o.nodeType===9?o:o.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Of(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=i.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[st]=t,e[Lr]=r,Jd(e,t,!1,!1),t.stateNode=e;e:{switch(i=Di(n,r),n){case"dialog":K("cancel",e),K("close",e),o=r;break;case"iframe":case"object":case"embed":K("load",e),o=r;break;case"video":case"audio":for(o=0;o<ur.length;o++)K(ur[o],e);o=r;break;case"source":K("error",e),o=r;break;case"img":case"image":case"link":K("error",e),K("load",e),o=r;break;case"details":K("toggle",e),o=r;break;case"input":ua(e,r),o=Ei(e,r),K("invalid",e);break;case"option":o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=te({},r,{value:void 0}),K("invalid",e);break;case"textarea":da(e,r),o=Si(e,r),K("invalid",e);break;default:o=r}Ii(n,o),l=o;for(s in l)if(l.hasOwnProperty(s)){var c=l[s];s==="style"?Mf(e,c):s==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&Bf(e,c)):s==="children"?typeof c=="string"?(n!=="textarea"||c!=="")&&kr(e,c):typeof c=="number"&&kr(e,""+c):s!=="suppressContentEditableWarning"&&s!=="suppressHydrationWarning"&&s!=="autoFocus"&&(xr.hasOwnProperty(s)?c!=null&&s==="onScroll"&&K("scroll",e):c!=null&&kl(e,s,c,i))}switch(n){case"input":$r(e),fa(e,r,!1);break;case"textarea":$r(e),pa(e);break;case"option":r.value!=null&&e.setAttribute("value",""+Qt(r.value));break;case"select":e.multiple=!!r.multiple,s=r.value,s!=null?On(e,!!r.multiple,s,!1):r.defaultValue!=null&&On(e,!!r.multiple,r.defaultValue,!0);break;default:typeof o.onClick=="function"&&(e.onclick=Vo)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return ge(t),null;case 6:if(e&&t.stateNode!=null)$d(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(R(166));if(n=nn(Or.current),nn(ct.current),rr(t)){if(r=t.stateNode,n=t.memoizedProps,r[st]=t,(s=r.nodeValue!==n)&&(e=Me,e!==null))switch(e.tag){case 3:lo(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&lo(r.nodeValue,n,(e.mode&1)!==0)}s&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[st]=t,t.stateNode=r}return ge(t),null;case 13:if(J($),r=t.memoizedState,_&&De!==null&&t.mode&1&&!(t.flags&128)){for(r=De;r;)r=ft(r.nextSibling);return Vn(),t.flags|=98560,t}if(r!==null&&r.dehydrated!==null){if(r=rr(t),e===null){if(!r)throw Error(R(318));if(r=t.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(R(317));r[st]=t}else Vn(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;return ge(t),null}return Je!==null&&(il(Je),Je=null),t.flags&128?(t.lanes=n,t):(r=r!==null,n=!1,e===null?rr(t):n=e.memoizedState!==null,r!==n&&r&&(t.child.flags|=8192,t.mode&1&&(e===null||$.current&1?le===0&&(le=3):oc())),t.updateQueue!==null&&(t.flags|=4),ge(t),null);case 4:return Wn(),Ki(e,t),e===null&&Tr(t.stateNode.containerInfo),ge(t),null;case 10:return Ul(t.type._context),ge(t),null;case 17:return Te(t.type)&&Go(),ge(t),null;case 19:if(J($),s=t.memoizedState,s===null)return ge(t),null;if(r=(t.flags&128)!==0,i=s.rendering,i===null)if(r)sr(s,!1);else{if(le!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(i=Jo(e),i!==null){for(t.flags|=128,sr(s,!1),r=i.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)s=n,e=r,s.flags&=14680066,i=s.alternate,i===null?(s.childLanes=0,s.lanes=e,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=i.childLanes,s.lanes=i.lanes,s.child=i.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=i.memoizedProps,s.memoizedState=i.memoizedState,s.updateQueue=i.updateQueue,s.type=i.type,e=i.dependencies,s.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return z($,$.current&1|2),t.child}e=e.sibling}s.tail!==null&&oe()>Yn&&(t.flags|=128,r=!0,sr(s,!1),t.lanes=4194304)}else{if(!r)if(e=Jo(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),sr(s,!0),s.tail===null&&s.tailMode==="hidden"&&!i.alternate&&!_)return ge(t),null}else 2*oe()-s.renderingStartTime>Yn&&n!==1073741824&&(t.flags|=128,r=!0,sr(s,!1),t.lanes=4194304);s.isBackwards?(i.sibling=t.child,t.child=i):(n=s.last,n!==null?n.sibling=i:t.child=i,s.last=i)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=oe(),t.sibling=null,n=$.current,z($,r?n&1|2:n&1),t):(ge(t),null);case 22:case 23:return rc(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Pe&1073741824&&(ge(t),t.subtreeFlags&6&&(t.flags|=8192)):ge(t),null;case 24:return null;case 25:return null}throw Error(R(156,t.tag))}var Y1=Et.ReactCurrentOwner,Re=!1;function ye(e,t,n,r){t.child=e===null?Rd(t,null,n,r):Gn(t,e.child,n,r)}function Ja(e,t,n,r,o){n=n.render;var s=t.ref;return Fn(t,o),r=zl(e,t,n,r,s,o),n=Kl(),e!==null&&!Re?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,At(e,t,o)):(_&&n&&Ql(t),t.flags|=1,ye(e,t,r,o),t.child)}function _a(e,t,n,r,o){if(e===null){var s=n.type;return typeof s=="function"&&!sc(s)&&s.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=s,ep(e,t,s,r,o)):(e=To(n.type,null,r,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(s=e.child,!(e.lanes&o)){var i=s.memoizedProps;if(n=n.compare,n=n!==null?n:br,n(i,r)&&e.ref===t.ref)return At(e,t,o)}return t.flags|=1,e=Vt(s,r),e.ref=t.ref,e.return=t,t.child=e}function ep(e,t,n,r,o){if(e!==null){var s=e.memoizedProps;if(br(s,r)&&e.ref===t.ref)if(Re=!1,t.pendingProps=r=s,(e.lanes&o)!==0)e.flags&131072&&(Re=!0);else return t.lanes=e.lanes,At(e,t,o)}return Zi(e,t,n,r,o)}function tp(e,t,n){var r=t.pendingProps,o=r.children,s=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},z(Nn,Pe),Pe|=n;else if(n&1073741824)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=s!==null?s.baseLanes:n,z(Nn,Pe),Pe|=r;else return e=s!==null?s.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,z(Nn,Pe),Pe|=e,null;else s!==null?(r=s.baseLanes|n,t.memoizedState=null):r=n,z(Nn,Pe),Pe|=r;return ye(e,t,o,n),t.child}function np(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Zi(e,t,n,r,o){var s=Te(n)?ln:we.current;return s=jn(t,s),Fn(t,o),n=zl(e,t,n,r,s,o),r=Kl(),e!==null&&!Re?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,At(e,t,o)):(_&&r&&Ql(t),t.flags|=1,ye(e,t,n,o),t.child)}function $a(e,t,n,r,o){if(Te(n)){var s=!0;Wo(t)}else s=!1;if(Fn(t,o),t.stateNode===null)e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),Sd(t,n,r),Wi(t,n,r,o),r=!0;else if(e===null){var i=t.stateNode,l=t.memoizedProps;i.props=l;var c=i.context,u=n.contextType;typeof u=="object"&&u!==null?u=Ye(u):(u=Te(n)?ln:we.current,u=jn(t,u));var p=n.getDerivedStateFromProps,v=typeof p=="function"||typeof i.getSnapshotBeforeUpdate=="function";v||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(l!==r||c!==u)&&ja(t,i,r,u),Rt=!1;var h=t.memoizedState;i.state=h,zo(t,r,i,o),c=t.memoizedState,l!==r||h!==c||be.current||Rt?(typeof p=="function"&&(Gi(t,n,p,r),c=t.memoizedState),(l=Rt||Qa(t,n,l,r,h,c,u))?(v||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),i.props=r,i.state=c,i.context=u,r=l):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,xd(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ke(t.type,l),i.props=u,v=t.pendingProps,h=i.context,c=n.contextType,typeof c=="object"&&c!==null?c=Ye(c):(c=Te(n)?ln:we.current,c=jn(t,c));var C=n.getDerivedStateFromProps;(p=typeof C=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(l!==v||h!==c)&&ja(t,i,r,c),Rt=!1,h=t.memoizedState,i.state=h,zo(t,r,i,o);var E=t.memoizedState;l!==v||h!==E||be.current||Rt?(typeof C=="function"&&(Gi(t,n,C,r),E=t.memoizedState),(u=Rt||Qa(t,n,u,r,h,E,c)||!1)?(p||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,E,c),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,E,c)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=E),i.props=r,i.state=E,i.context=c,r=u):(typeof i.componentDidUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),r=!1)}return Ji(e,t,n,r,s,o)}function Ji(e,t,n,r,o,s){np(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return o&&Fa(t,n,!1),At(e,t,s);r=t.stateNode,Y1.current=t;var l=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=Gn(t,e.child,null,s),t.child=Gn(t,null,l,s)):ye(e,t,l,s),t.memoizedState=r.state,o&&Fa(t,n,!0),t.child}function rp(e){var t=e.stateNode;t.pendingContext?Ma(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Ma(e,t.context,!1),Gl(e,t.containerInfo)}function eu(e,t,n,r,o){return Vn(),Vl(o),t.flags|=256,ye(e,t,n,r),t.child}var ao={dehydrated:null,treeContext:null,retryLane:0};function uo(e){return{baseLanes:e,cachePool:null,transitions:null}}function tu(e,t){return{baseLanes:e.baseLanes|t,cachePool:null,transitions:e.transitions}}function op(e,t,n){var r=t.pendingProps,o=$.current,s=!1,i=(t.flags&128)!==0,l;if((l=i)||(l=e!==null&&e.memoizedState===null?!1:(o&2)!==0),l?(s=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),z($,o&1),e===null)return Xi(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=r.children,e=r.fallback,s?(r=t.mode,s=t.child,o={mode:"hidden",children:o},!(r&1)&&s!==null?(s.childLanes=0,s.pendingProps=o):s=os(o,r,0,null),e=sn(e,r,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=uo(n),t.memoizedState=ao,e):_i(t,o));if(o=e.memoizedState,o!==null){if(l=o.dehydrated,l!==null){if(i)return t.flags&256?(t.flags&=-257,fo(e,t,n,Error(R(422)))):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(s=r.fallback,o=t.mode,r=os({mode:"visible",children:r.children},o,0,null),s=sn(s,o,n,null),s.flags|=2,r.return=t,s.return=t,r.sibling=s,t.child=r,t.mode&1&&Gn(t,e.child,null,n),t.child.memoizedState=uo(n),t.memoizedState=ao,s);if(!(t.mode&1))t=fo(e,t,n,null);else if(l.data==="$!")t=fo(e,t,n,Error(R(419)));else if(r=(n&e.childLanes)!==0,Re||r){if(r=ce,r!==null){switch(n&-n){case 4:s=2;break;case 16:s=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:s=32;break;case 536870912:s=268435456;break;default:s=0}r=s&(r.suspendedLanes|n)?0:s,r!==0&&r!==o.retryLane&&(o.retryLane=r,We(e,r,-1))}oc(),t=fo(e,t,n,Error(R(421)))}else l.data==="$?"?(t.flags|=128,t.child=e.child,t=om.bind(null,e),l._reactRetry=t,t=null):(n=o.treeContext,De=ft(l.nextSibling),Me=t,_=!0,Je=null,n!==null&&(Qe[je++]=dt,Qe[je++]=pt,Qe[je++]=cn,dt=n.id,pt=n.overflow,cn=t),t=_i(t,t.pendingProps.children),t.flags|=4096);return t}return s?(r=ru(e,t,r.children,r.fallback,n),s=t.child,o=e.child.memoizedState,s.memoizedState=o===null?uo(n):tu(o,n),s.childLanes=e.childLanes&~n,t.memoizedState=ao,r):(n=nu(e,t,r.children,n),t.memoizedState=null,n)}return s?(r=ru(e,t,r.children,r.fallback,n),s=t.child,o=e.child.memoizedState,s.memoizedState=o===null?uo(n):tu(o,n),s.childLanes=e.childLanes&~n,t.memoizedState=ao,r):(n=nu(e,t,r.children,n),t.memoizedState=null,n)}function _i(e,t){return t=os({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function nu(e,t,n,r){var o=e.child;return e=o.sibling,n=Vt(o,{mode:"visible",children:n}),!(t.mode&1)&&(n.lanes=r),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n}function ru(e,t,n,r,o){var s=t.mode;e=e.child;var i=e.sibling,l={mode:"hidden",children:n};return!(s&1)&&t.child!==e?(n=t.child,n.childLanes=0,n.pendingProps=l,t.deletions=null):(n=Vt(e,l),n.subtreeFlags=e.subtreeFlags&14680064),i!==null?r=Vt(i,r):(r=sn(r,s,o,null),r.flags|=2),r.return=t,n.return=t,n.sibling=r,t.child=n,r}function fo(e,t,n,r){return r!==null&&Vl(r),Gn(t,e.child,null,n),e=_i(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function ou(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Vi(e.return,t,n)}function si(e,t,n,r,o){var s=e.memoizedState;s===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(s.isBackwards=t,s.rendering=null,s.renderingStartTime=0,s.last=r,s.tail=n,s.tailMode=o)}function sp(e,t,n){var r=t.pendingProps,o=r.revealOrder,s=r.tail;if(ye(e,t,r.children,n),r=$.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&ou(e,n,t);else if(e.tag===19)ou(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(z($,r),!(t.mode&1))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;n!==null;)e=n.alternate,e!==null&&Jo(e)===null&&(o=n),n=n.sibling;n=o,n===null?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),si(t,!1,o,n,s);break;case"backwards":for(n=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&Jo(e)===null){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}si(t,!0,n,null,s);break;case"together":si(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function At(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),un|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(R(153));if(t.child!==null){for(e=t.child,n=Vt(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Vt(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function X1(e,t,n){switch(t.tag){case 3:rp(t),Vn();break;case 5:bd(t);break;case 1:Te(t.type)&&Wo(t);break;case 4:Gl(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;z(Yo,r._currentValue),r._currentValue=o;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(z($,$.current&1),t.flags|=128,null):n&t.child.childLanes?op(e,t,n):(z($,$.current&1),e=At(e,t,n),e!==null?e.sibling:null);z($,$.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return sp(e,t,n);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),z($,$.current),r)break;return null;case 22:case 23:return t.lanes=0,tp(e,t,n)}return At(e,t,n)}function z1(e,t){switch(jl(t),t.tag){case 1:return Te(t.type)&&Go(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wn(),J(be),J(we),Yl(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Wl(t),null;case 13:if(J($),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(R(340));Vn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return J($),null;case 4:return Wn(),null;case 10:return Ul(t.type._context),null;case 22:case 23:return rc(),null;case 24:return null;default:return null}}var po=!1,ve=!1,K1=typeof WeakSet=="function"?WeakSet:Set,L=null;function Tn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ne(e,t,r)}else n.current=null}function $i(e,t,n){try{n()}catch(r){ne(e,t,r)}}var su=!1;function Z1(e,t){if(Mi=qo,e=fd(),Hl(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var i=0,l=-1,c=-1,u=0,p=0,v=e,h=null;t:for(;;){for(var C;v!==n||o!==0&&v.nodeType!==3||(l=i+o),v!==s||r!==0&&v.nodeType!==3||(c=i+r),v.nodeType===3&&(i+=v.nodeValue.length),(C=v.firstChild)!==null;)h=v,v=C;for(;;){if(v===e)break t;if(h===n&&++u===o&&(l=i),h===s&&++p===r&&(c=i),(C=v.nextSibling)!==null)break;v=h,h=v.parentNode}v=C}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Fi={focusedElem:e,selectionRange:n},qo=!1,L=t;L!==null;)if(t=L,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,L=e;else for(;L!==null;){t=L;try{var E=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var g=E.memoizedProps,m=E.memoizedState,a=t.stateNode,f=a.getSnapshotBeforeUpdate(t.elementType===t.type?g:Ke(t.type,g),m);a.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var d=t.stateNode.containerInfo;if(d.nodeType===1)d.textContent="";else if(d.nodeType===9){var y=d.body;y!=null&&(y.textContent="")}break;case 5:case 6:case 4:case 17:break;default:throw Error(R(163))}}catch(k){ne(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,L=e;break}L=t.return}return E=su,su=!1,E}function vr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var s=o.destroy;o.destroy=void 0,s!==void 0&&$i(t,n,s)}o=o.next}while(o!==r)}}function ms(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function el(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function ip(e){var t=e.alternate;t!==null&&(e.alternate=null,ip(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[st],delete t[Lr],delete t[Qi],delete t[P1],delete t[O1])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function lp(e){return e.tag===5||e.tag===3||e.tag===4}function iu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||lp(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function tl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Vo));else if(r!==4&&(e=e.child,e!==null))for(tl(e,t,n),e=e.sibling;e!==null;)tl(e,t,n),e=e.sibling}function nl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(nl(e,t,n),e=e.sibling;e!==null;)nl(e,t,n),e=e.sibling}var fe=null,Ze=!1;function Ct(e,t,n){for(n=n.child;n!==null;)cp(e,t,n),n=n.sibling}function cp(e,t,n){if(lt&&typeof lt.onCommitFiberUnmount=="function")try{lt.onCommitFiberUnmount(cs,n)}catch{}switch(n.tag){case 5:ve||Tn(n,t);case 6:var r=fe,o=Ze;fe=null,Ct(e,t,n),fe=r,Ze=o,fe!==null&&(Ze?(e=fe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):fe.removeChild(n.stateNode));break;case 18:fe!==null&&(Ze?(e=fe,n=n.stateNode,e.nodeType===8?$s(e.parentNode,n):e.nodeType===1&&$s(e,n),Dr(e)):$s(fe,n.stateNode));break;case 4:r=fe,o=Ze,fe=n.stateNode.containerInfo,Ze=!0,Ct(e,t,n),fe=r,Ze=o;break;case 0:case 11:case 14:case 15:if(!ve&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var s=o,i=s.destroy;s=s.tag,i!==void 0&&(s&2||s&4)&&$i(n,t,i),o=o.next}while(o!==r)}Ct(e,t,n);break;case 1:if(!ve&&(Tn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){ne(n,t,l)}Ct(e,t,n);break;case 21:Ct(e,t,n);break;case 22:n.mode&1?(ve=(r=ve)||n.memoizedState!==null,Ct(e,t,n),ve=r):Ct(e,t,n);break;default:Ct(e,t,n)}}function lu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new K1),t.forEach(function(r){var o=sm.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function ze(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var o=n[r];try{var s=e,i=t,l=i;e:for(;l!==null;){switch(l.tag){case 5:fe=l.stateNode,Ze=!1;break e;case 3:fe=l.stateNode.containerInfo,Ze=!0;break e;case 4:fe=l.stateNode.containerInfo,Ze=!0;break e}l=l.return}if(fe===null)throw Error(R(160));cp(s,i,o),fe=null,Ze=!1;var c=o.alternate;c!==null&&(c.return=null),o.return=null}catch(u){ne(o,t,u)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)ap(t,e),t=t.sibling}function ap(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(ze(t,e),nt(e),r&4){try{vr(3,e,e.return),ms(3,e)}catch(E){ne(e,e.return,E)}try{vr(5,e,e.return)}catch(E){ne(e,e.return,E)}}break;case 1:ze(t,e),nt(e),r&512&&n!==null&&Tn(n,n.return);break;case 5:if(ze(t,e),nt(e),r&512&&n!==null&&Tn(n,n.return),e.flags&32){var o=e.stateNode;try{kr(o,"")}catch(E){ne(e,e.return,E)}}if(r&4&&(o=e.stateNode,o!=null)){var s=e.memoizedProps,i=n!==null?n.memoizedProps:s,l=e.type,c=e.updateQueue;if(e.updateQueue=null,c!==null)try{l==="input"&&s.type==="radio"&&s.name!=null&&Lf(o,s),Di(l,i);var u=Di(l,s);for(i=0;i<c.length;i+=2){var p=c[i],v=c[i+1];p==="style"?Mf(o,v):p==="dangerouslySetInnerHTML"?Bf(o,v):p==="children"?kr(o,v):kl(o,p,v,u)}switch(l){case"input":xi(o,s);break;case"textarea":Pf(o,s);break;case"select":var h=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!s.multiple;var C=s.value;C!=null?On(o,!!s.multiple,C,!1):h!==!!s.multiple&&(s.defaultValue!=null?On(o,!!s.multiple,s.defaultValue,!0):On(o,!!s.multiple,s.multiple?[]:"",!1))}o[Lr]=s}catch(E){ne(e,e.return,E)}}break;case 6:if(ze(t,e),nt(e),r&4){if(e.stateNode===null)throw Error(R(162));u=e.stateNode,p=e.memoizedProps;try{u.nodeValue=p}catch(E){ne(e,e.return,E)}}break;case 3:if(ze(t,e),nt(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Dr(t.containerInfo)}catch(E){ne(e,e.return,E)}break;case 4:ze(t,e),nt(e);break;case 13:ze(t,e),nt(e),u=e.child,u.flags&8192&&u.memoizedState!==null&&(u.alternate===null||u.alternate.memoizedState===null)&&(tc=oe()),r&4&&lu(e);break;case 22:if(u=n!==null&&n.memoizedState!==null,e.mode&1?(ve=(p=ve)||u,ze(t,e),ve=p):ze(t,e),nt(e),r&8192){p=e.memoizedState!==null;e:for(v=null,h=e;;){if(h.tag===5){if(v===null){v=h;try{o=h.stateNode,p?(s=o.style,typeof s.setProperty=="function"?s.setProperty("display","none","important"):s.display="none"):(l=h.stateNode,c=h.memoizedProps.style,i=c!=null&&c.hasOwnProperty("display")?c.display:null,l.style.display=Hf("display",i))}catch(E){ne(e,e.return,E)}}}else if(h.tag===6){if(v===null)try{h.stateNode.nodeValue=p?"":h.memoizedProps}catch(E){ne(e,e.return,E)}}else if((h.tag!==22&&h.tag!==23||h.memoizedState===null||h===e)&&h.child!==null){h.child.return=h,h=h.child;continue}if(h===e)break e;for(;h.sibling===null;){if(h.return===null||h.return===e)break e;v===h&&(v=null),h=h.return}v===h&&(v=null),h.sibling.return=h.return,h=h.sibling}if(p&&!u&&e.mode&1)for(L=e,e=e.child;e!==null;){for(u=L=e;L!==null;){switch(p=L,v=p.child,p.tag){case 0:case 11:case 14:case 15:vr(4,p,p.return);break;case 1:if(Tn(p,p.return),s=p.stateNode,typeof s.componentWillUnmount=="function"){h=p,C=p.return;try{o=h,s.props=o.memoizedProps,s.state=o.memoizedState,s.componentWillUnmount()}catch(E){ne(h,C,E)}}break;case 5:Tn(p,p.return);break;case 22:if(p.memoizedState!==null){au(u);continue}}v!==null?(v.return=p,L=v):au(u)}e=e.sibling}}break;case 19:ze(t,e),nt(e),r&4&&lu(e);break;case 21:break;default:ze(t,e),nt(e)}}function nt(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(lp(n)){var r=n;break e}n=n.return}throw Error(R(160))}switch(r.tag){case 5:var o=r.stateNode;r.flags&32&&(kr(o,""),r.flags&=-33);var s=iu(e);nl(e,s,o);break;case 3:case 4:var i=r.stateNode.containerInfo,l=iu(e);tl(e,l,i);break;default:throw Error(R(161))}}catch(c){ne(e,e.return,c)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function J1(e,t,n){L=e,up(e)}function up(e,t,n){for(var r=(e.mode&1)!==0;L!==null;){var o=L,s=o.child;if(o.tag===22&&r){var i=o.memoizedState!==null||po;if(!i){var l=o.alternate,c=l!==null&&l.memoizedState!==null||ve;l=po;var u=ve;if(po=i,(ve=c)&&!u)for(L=o;L!==null;)i=L,c=i.child,i.tag===22&&i.memoizedState!==null?uu(o):c!==null?(c.return=i,L=c):uu(o);for(;s!==null;)L=s,up(s),s=s.sibling;L=o,po=l,ve=u}cu(e)}else o.subtreeFlags&8772&&s!==null?(s.return=o,L=s):cu(e)}}function cu(e){for(;L!==null;){var t=L;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:ve||ms(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!ve)if(n===null)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:Ke(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var s=t.updateQueue;s!==null&&qa(t,s,r);break;case 3:var i=t.updateQueue;if(i!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}qa(t,i,n)}break;case 5:var l=t.stateNode;if(n===null&&t.flags&4){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var u=t.alternate;if(u!==null){var p=u.memoizedState;if(p!==null){var v=p.dehydrated;v!==null&&Dr(v)}}}break;case 19:case 17:case 21:case 22:case 23:break;default:throw Error(R(163))}ve||t.flags&512&&el(t)}catch(h){ne(t,t.return,h)}}if(t===e){L=null;break}if(n=t.sibling,n!==null){n.return=t.return,L=n;break}L=t.return}}function au(e){for(;L!==null;){var t=L;if(t===e){L=null;break}var n=t.sibling;if(n!==null){n.return=t.return,L=n;break}L=t.return}}function uu(e){for(;L!==null;){var t=L;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{ms(4,t)}catch(c){ne(t,n,c)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var o=t.return;try{r.componentDidMount()}catch(c){ne(t,o,c)}}var s=t.return;try{el(t)}catch(c){ne(t,s,c)}break;case 5:var i=t.return;try{el(t)}catch(c){ne(t,i,c)}}}catch(c){ne(t,t.return,c)}if(t===e){L=null;break}var l=t.sibling;if(l!==null){l.return=t.return,L=l;break}L=t.return}}var _1=Math.ceil,es=Et.ReactCurrentDispatcher,$l=Et.ReactCurrentOwner,Ge=Et.ReactCurrentBatchConfig,V=0,ce=null,se=null,de=0,Pe=0,Nn=Yt(0),le=0,Fr=null,un=0,vs=0,ec=0,wr=null,Ie=null,tc=0,Yn=1/0,at=null,ts=!1,rl=null,Ut=null,ho=!1,Ot=null,ns=0,yr=0,ol=null,Ro=-1,bo=0;function Ae(){return V&6?oe():Ro!==-1?Ro:Ro=oe()}function qt(e){return e.mode&1?V&2&&de!==0?de&-de:H1.transition!==null?(bo===0&&(bo=Kf()),bo):(e=W,e!==0||(e=window.event,e=e===void 0?16:nd(e.type)),e):1}function We(e,t,n){if(50<yr)throw yr=0,ol=null,Error(R(185));var r=ws(e,t);return r===null?null:(jr(r,t,n),(!(V&2)||r!==ce)&&(r===ce&&(!(V&2)&&(vs|=t),le===4&&Nt(r,de)),Ne(r,n),t===1&&V===0&&!(e.mode&1)&&(Yn=oe()+500,ps&&Xt())),r)}function ws(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}function fp(e){return(ce!==null||$e!==null)&&(e.mode&1)!==0&&(V&2)===0}function Ne(e,t){var n=e.callbackNode;Hg(e,t);var r=Uo(e,e===ce?de:0);if(r===0)n!==null&&ma(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&ma(n),t===1)e.tag===0?B1(fu.bind(null,e)):Ed(fu.bind(null,e)),N1(function(){V===0&&Xt()}),n=null;else{switch(Zf(r)){case 1:n=Rl;break;case 4:n=Xf;break;case 16:n=Fo;break;case 536870912:n=zf;break;default:n=Fo}n=yp(n,dp.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function dp(e,t){if(Ro=-1,bo=0,V&6)throw Error(R(327));var n=e.callbackNode;if(Un()&&e.callbackNode!==n)return null;var r=Uo(e,e===ce?de:0);if(r===0)return null;if(r&30||r&e.expiredLanes||t)t=rs(e,r);else{t=r;var o=V;V|=2;var s=hp();(ce!==e||de!==t)&&(at=null,Yn=oe()+500,on(e,t));do try{tm();break}catch(l){pp(e,l)}while(1);Fl(),es.current=s,V=o,se!==null?t=0:(ce=null,de=0,t=le)}if(t!==0){if(t===2&&(o=Li(e),o!==0&&(r=o,t=sl(e,o))),t===1)throw n=Fr,on(e,0),Nt(e,r),Ne(e,oe()),n;if(t===6)Nt(e,r);else{if(o=e.current.alternate,!(r&30)&&!$1(o)&&(t=rs(e,r),t===2&&(s=Li(e),s!==0&&(r=s,t=sl(e,s))),t===1))throw n=Fr,on(e,0),Nt(e,r),Ne(e,oe()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(R(345));case 2:en(e,Ie,at);break;case 3:if(Nt(e,r),(r&130023424)===r&&(t=tc+500-oe(),10<t)){if(Uo(e,0)!==0)break;if(o=e.suspendedLanes,(o&r)!==r){Ae(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=qi(en.bind(null,e,Ie,at),t);break}en(e,Ie,at);break;case 4:if(Nt(e,r),(r&4194240)===r)break;for(t=e.eventTimes,o=-1;0<r;){var i=31-et(r);s=1<<i,i=t[i],i>o&&(o=i),r&=~s}if(r=o,r=oe()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*_1(r/1960))-r,10<r){e.timeoutHandle=qi(en.bind(null,e,Ie,at),r);break}en(e,Ie,at);break;case 5:en(e,Ie,at);break;default:throw Error(R(329))}}}return Ne(e,oe()),e.callbackNode===n?dp.bind(null,e):null}function sl(e,t){var n=wr;return e.current.memoizedState.isDehydrated&&(on(e,t).flags|=256),e=rs(e,t),e!==2&&(t=Ie,Ie=n,t!==null&&il(t)),e}function il(e){Ie===null?Ie=e:Ie.push.apply(Ie,e)}function $1(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var o=n[r],s=o.getSnapshot;o=o.value;try{if(!tt(s(),o))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Nt(e,t){for(t&=~ec,t&=~vs,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-et(t),r=1<<n;e[n]=-1,t&=~r}}function fu(e){if(V&6)throw Error(R(327));Un();var t=Uo(e,0);if(!(t&1))return Ne(e,oe()),null;var n=rs(e,t);if(e.tag!==0&&n===2){var r=Li(e);r!==0&&(t=r,n=sl(e,r))}if(n===1)throw n=Fr,on(e,0),Nt(e,t),Ne(e,oe()),n;if(n===6)throw Error(R(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,en(e,Ie,at),Ne(e,oe()),null}function nc(e,t){var n=V;V|=1;try{return e(t)}finally{V=n,V===0&&(Yn=oe()+500,ps&&Xt())}}function fn(e){Ot!==null&&Ot.tag===0&&!(V&6)&&Un();var t=V;V|=1;var n=Ge.transition,r=W;try{if(Ge.transition=null,W=1,e)return e()}finally{W=r,Ge.transition=n,V=t,!(V&6)&&Xt()}}function rc(){Pe=Nn.current,J(Nn)}function on(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,T1(n)),se!==null)for(n=se.return;n!==null;){var r=n;switch(jl(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&Go();break;case 3:Wn(),J(be),J(we),Yl();break;case 5:Wl(r);break;case 4:Wn();break;case 13:J($);break;case 19:J($);break;case 10:Ul(r.type._context);break;case 22:case 23:rc()}n=n.return}if(ce=e,se=e=Vt(e.current,null),de=Pe=t,le=0,Fr=null,ec=vs=un=0,Ie=wr=null,$e!==null){for(t=0;t<$e.length;t++)if(n=$e[t],r=n.interleaved,r!==null){n.interleaved=null;var o=r.next,s=n.pending;if(s!==null){var i=s.next;s.next=o,r.next=i}n.pending=r}$e=null}return e}function pp(e,t){do{var n=se;try{if(Fl(),Io.current=$o,_o){for(var r=ee.memoizedState;r!==null;){var o=r.queue;o!==null&&(o.pending=null),r=r.next}_o=!1}if(an=0,ue=ie=ee=null,mr=!1,Br=0,$l.current=null,n===null||n.return===null){le=1,Fr=t,se=null;break}e:{var s=e,i=n.return,l=n,c=t;if(t=de,l.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){var u=c,p=l,v=p.tag;if(!(p.mode&1)&&(v===0||v===11||v===15)){var h=p.alternate;h?(p.updateQueue=h.updateQueue,p.memoizedState=h.memoizedState,p.lanes=h.lanes):(p.updateQueue=null,p.memoizedState=null)}var C=Ka(i);if(C!==null){C.flags&=-257,Za(C,i,l,s,t),C.mode&1&&za(s,u,t),t=C,c=u;var E=t.updateQueue;if(E===null){var g=new Set;g.add(c),t.updateQueue=g}else E.add(c);break e}else{if(!(t&1)){za(s,u,t),oc();break e}c=Error(R(426))}}else if(_&&l.mode&1){var m=Ka(i);if(m!==null){!(m.flags&65536)&&(m.flags|=256),Za(m,i,l,s,t),Vl(c);break e}}s=c,le!==4&&(le=2),wr===null?wr=[s]:wr.push(s),c=_l(c,l),l=i;do{switch(l.tag){case 3:l.flags|=65536,t&=-t,l.lanes|=t;var a=Kd(l,c,t);Ua(l,a);break e;case 1:s=c;var f=l.type,d=l.stateNode;if(!(l.flags&128)&&(typeof f.getDerivedStateFromError=="function"||d!==null&&typeof d.componentDidCatch=="function"&&(Ut===null||!Ut.has(d)))){l.flags|=65536,t&=-t,l.lanes|=t;var y=Zd(l,s,t);Ua(l,y);break e}}l=l.return}while(l!==null)}mp(n)}catch(k){t=k,se===n&&n!==null&&(se=n=n.return);continue}break}while(1)}function hp(){var e=es.current;return es.current=$o,e===null?$o:e}function oc(){(le===0||le===3||le===2)&&(le=4),ce===null||!(un&268435455)&&!(vs&268435455)||Nt(ce,de)}function rs(e,t){var n=V;V|=2;var r=hp();(ce!==e||de!==t)&&(at=null,on(e,t));do try{em();break}catch(o){pp(e,o)}while(1);if(Fl(),V=n,es.current=r,se!==null)throw Error(R(261));return ce=null,de=0,le}function em(){for(;se!==null;)gp(se)}function tm(){for(;se!==null&&!Dg();)gp(se)}function gp(e){var t=wp(e.alternate,e,Pe);e.memoizedProps=e.pendingProps,t===null?mp(e):se=t,$l.current=null}function mp(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=z1(n,t),n!==null){n.flags&=32767,se=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{le=6,se=null;return}}else if(n=W1(n,t,Pe),n!==null){se=n;return}if(t=t.sibling,t!==null){se=t;return}se=t=e}while(t!==null);le===0&&(le=5)}function en(e,t,n){var r=W,o=Ge.transition;try{Ge.transition=null,W=1,nm(e,t,n,r)}finally{Ge.transition=o,W=r}return null}function nm(e,t,n,r){do Un();while(Ot!==null);if(V&6)throw Error(R(327));n=e.finishedWork;var o=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(R(177));e.callbackNode=null,e.callbackPriority=0;var s=n.lanes|n.childLanes;if(Mg(e,s),e===ce&&(se=ce=null,de=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||ho||(ho=!0,yp(Fo,function(){return Un(),null})),s=(n.flags&15990)!==0,n.subtreeFlags&15990||s){s=Ge.transition,Ge.transition=null;var i=W;W=1;var l=V;V|=4,$l.current=null,Z1(e,n),ap(n,e),k1(Fi),qo=!!Mi,Fi=Mi=null,e.current=n,J1(n),Rg(),V=l,W=i,Ge.transition=s}else e.current=n;if(ho&&(ho=!1,Ot=e,ns=o),s=e.pendingLanes,s===0&&(Ut=null),Ng(n.stateNode),Ne(e,oe()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)r(t[n]);if(ts)throw ts=!1,e=rl,rl=null,e;return ns&1&&e.tag!==0&&Un(),s=e.pendingLanes,s&1?e===ol?yr++:(yr=0,ol=e):yr=0,Xt(),null}function Un(){if(Ot!==null){var e=Zf(ns),t=Ge.transition,n=W;try{if(Ge.transition=null,W=16>e?16:e,Ot===null)var r=!1;else{if(e=Ot,Ot=null,ns=0,V&6)throw Error(R(331));var o=V;for(V|=4,L=e.current;L!==null;){var s=L,i=s.child;if(L.flags&16){var l=s.deletions;if(l!==null){for(var c=0;c<l.length;c++){var u=l[c];for(L=u;L!==null;){var p=L;switch(p.tag){case 0:case 11:case 15:vr(8,p,s)}var v=p.child;if(v!==null)v.return=p,L=v;else for(;L!==null;){p=L;var h=p.sibling,C=p.return;if(ip(p),p===u){L=null;break}if(h!==null){h.return=C,L=h;break}L=C}}}var E=s.alternate;if(E!==null){var g=E.child;if(g!==null){E.child=null;do{var m=g.sibling;g.sibling=null,g=m}while(g!==null)}}L=s}}if(s.subtreeFlags&2064&&i!==null)i.return=s,L=i;else e:for(;L!==null;){if(s=L,s.flags&2048)switch(s.tag){case 0:case 11:case 15:vr(9,s,s.return)}var a=s.sibling;if(a!==null){a.return=s.return,L=a;break e}L=s.return}}var f=e.current;for(L=f;L!==null;){i=L;var d=i.child;if(i.subtreeFlags&2064&&d!==null)d.return=i,L=d;else e:for(i=f;L!==null;){if(l=L,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:ms(9,l)}}catch(k){ne(l,l.return,k)}if(l===i){L=null;break e}var y=l.sibling;if(y!==null){y.return=l.return,L=y;break e}L=l.return}}if(V=o,Xt(),lt&&typeof lt.onPostCommitFiberRoot=="function")try{lt.onPostCommitFiberRoot(cs,e)}catch{}r=!0}return r}finally{W=n,Ge.transition=t}}return!1}function du(e,t,n){t=_l(n,t),t=Kd(e,t,1),Ft(e,t),t=Ae(),e=ws(e,1),e!==null&&(jr(e,1,t),Ne(e,t))}function ne(e,t,n){if(e.tag===3)du(e,e,n);else for(;t!==null;){if(t.tag===3){du(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(Ut===null||!Ut.has(r))){e=_l(n,e),e=Zd(t,e,1),Ft(t,e),e=Ae(),t=ws(t,1),t!==null&&(jr(t,1,e),Ne(t,e));break}}t=t.return}}function rm(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=Ae(),e.pingedLanes|=e.suspendedLanes&n,ce===e&&(de&n)===n&&(le===4||le===3&&(de&130023424)===de&&500>oe()-tc?on(e,0):ec|=n),Ne(e,t)}function vp(e,t){t===0&&(e.mode&1?(t=no,no<<=1,!(no&130023424)&&(no=4194304)):t=1);var n=Ae();e=ws(e,t),e!==null&&(jr(e,t,n),Ne(e,n))}function om(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),vp(e,n)}function sm(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(R(314))}r!==null&&r.delete(t),vp(e,n)}var wp;wp=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||be.current)Re=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Re=!1,X1(e,t,n);Re=!!(e.flags&131072)}else Re=!1,_&&t.flags&1048576&&Cd(t,Zo,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps;var o=jn(t,we.current);Fn(t,n),o=zl(null,t,r,e,o,n);var s=Kl();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Te(r)?(s=!0,Wo(t)):s=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,ql(t),o.updater=hs,t.stateNode=o,o._reactInternals=t,Wi(t,r,e,n),t=Ji(null,t,r,!0,s,n)):(t.tag=0,_&&s&&Ql(t),ye(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=lm(r),e=Ke(r,e),o){case 0:t=Zi(null,t,r,e,n);break e;case 1:t=$a(null,t,r,e,n);break e;case 11:t=Ja(null,t,r,e,n);break e;case 14:t=_a(null,t,r,Ke(r.type,e),n);break e}throw Error(R(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Ke(r,o),Zi(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Ke(r,o),$a(e,t,r,o,n);case 3:e:{if(rp(t),e===null)throw Error(R(387));r=t.pendingProps,s=t.memoizedState,o=s.element,xd(e,t),zo(t,r,null,n);var i=t.memoizedState;if(r=i.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){o=Error(R(423)),t=eu(e,t,r,n,o);break e}else if(r!==o){o=Error(R(424)),t=eu(e,t,r,n,o);break e}else for(De=ft(t.stateNode.containerInfo.firstChild),Me=t,_=!0,Je=null,n=Rd(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Vn(),r===o){t=At(e,t,n);break e}ye(e,t,r,n)}t=t.child}return t;case 5:return bd(t),e===null&&Xi(t),r=t.type,o=t.pendingProps,s=e!==null?e.memoizedProps:null,i=o.children,Ui(r,o)?i=null:s!==null&&Ui(r,s)&&(t.flags|=32),np(e,t),ye(e,t,i,n),t.child;case 6:return e===null&&Xi(t),null;case 13:return op(e,t,n);case 4:return Gl(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Gn(t,null,r,n):ye(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Ke(r,o),Ja(e,t,r,o,n);case 7:return ye(e,t,t.pendingProps,n),t.child;case 8:return ye(e,t,t.pendingProps.children,n),t.child;case 12:return ye(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,s=t.memoizedProps,i=o.value,z(Yo,r._currentValue),r._currentValue=i,s!==null)if(tt(s.value,i)){if(s.children===o.children&&!be.current){t=At(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var l=s.dependencies;if(l!==null){i=s.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(s.tag===1){c=mt(-1,n&-n),c.tag=2;var u=s.updateQueue;if(u!==null){u=u.shared;var p=u.pending;p===null?c.next=c:(c.next=p.next,p.next=c),u.pending=c}}s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),Vi(s.return,n,t),l.lanes|=n;break}c=c.next}}else if(s.tag===10)i=s.type===t.type?null:s.child;else if(s.tag===18){if(i=s.return,i===null)throw Error(R(341));i.lanes|=n,l=i.alternate,l!==null&&(l.lanes|=n),Vi(i,n,t),i=s.sibling}else i=s.child;if(i!==null)i.return=s;else for(i=s;i!==null;){if(i===t){i=null;break}if(s=i.sibling,s!==null){s.return=i.return,i=s;break}i=i.return}s=i}ye(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Fn(t,n),o=Ye(o),r=r(o),t.flags|=1,ye(e,t,r,n),t.child;case 14:return r=t.type,o=Ke(r,t.pendingProps),o=Ke(r.type,o),_a(e,t,r,o,n);case 15:return ep(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Ke(r,o),e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,Te(r)?(e=!0,Wo(t)):e=!1,Fn(t,n),Sd(t,r,o),Wi(t,r,o,n),Ji(null,t,r,!0,e,n);case 19:return sp(e,t,n);case 22:return tp(e,t,n)}throw Error(R(156,t.tag))};function yp(e,t){return Yf(e,t)}function im(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ve(e,t,n,r){return new im(e,t,n,r)}function sc(e){return e=e.prototype,!(!e||!e.isReactComponent)}function lm(e){if(typeof e=="function")return sc(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Cl)return 11;if(e===Il)return 14}return 2}function Vt(e,t){var n=e.alternate;return n===null?(n=Ve(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function To(e,t,n,r,o,s){var i=2;if(r=e,typeof e=="function")sc(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case En:return sn(n.children,o,s,t);case Sl:i=8,o|=8;break;case vi:return e=Ve(12,n,t,o|2),e.elementType=vi,e.lanes=s,e;case wi:return e=Ve(13,n,t,o),e.elementType=wi,e.lanes=s,e;case yi:return e=Ve(19,n,t,o),e.elementType=yi,e.lanes=s,e;case bf:return os(n,o,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Df:i=10;break e;case Rf:i=9;break e;case Cl:i=11;break e;case Il:i=14;break e;case Dt:i=16,r=null;break e}throw Error(R(130,e==null?e:typeof e,""))}return t=Ve(i,n,t,o),t.elementType=e,t.type=r,t.lanes=s,t}function sn(e,t,n,r){return e=Ve(7,e,r,t),e.lanes=n,e}function os(e,t,n,r){return e=Ve(22,e,r,t),e.elementType=bf,e.lanes=n,e.stateNode={},e}function ii(e,t,n){return e=Ve(6,e,null,t),e.lanes=n,e}function li(e,t,n){return t=Ve(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function cm(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=js(0),this.expirationTimes=js(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=js(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function ic(e,t,n,r,o,s,i,l,c){return e=new cm(e,t,n,l,c),t===1?(t=1,s===!0&&(t|=8)):t=0,s=Ve(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ql(s),e}function am(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:An,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function Ap(e){if(!e)return jt;e=e._reactInternals;e:{if(hn(e)!==e||e.tag!==1)throw Error(R(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Te(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(R(171))}if(e.tag===1){var n=e.type;if(Te(n))return Ad(e,n,t)}return t}function Ep(e,t,n,r,o,s,i,l,c){return e=ic(n,r,!0,e,o,s,i,l,c),e.context=Ap(null),n=e.current,r=Ae(),o=qt(n),s=mt(r,o),s.callback=t??null,Ft(n,s),e.current.lanes=o,jr(e,o,r),Ne(e,r),e}function ys(e,t,n,r){var o=t.current,s=Ae(),i=qt(o);return n=Ap(n),t.context===null?t.context=n:t.pendingContext=n,t=mt(s,i),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),Ft(o,t),e=We(o,i,s),e!==null&&Co(e,o,i),i}function ss(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function pu(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function lc(e,t){pu(e,t),(e=e.alternate)&&pu(e,t)}function um(){return null}var xp=typeof reportError=="function"?reportError:function(e){console.error(e)};function cc(e){this._internalRoot=e}As.prototype.render=cc.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(R(409));ys(e,t,null,null)};As.prototype.unmount=cc.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;fn(function(){ys(null,e,null,null)}),t[yt]=null}};function As(e){this._internalRoot=e}As.prototype.unstable_scheduleHydration=function(e){if(e){var t=$f();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Tt.length&&t!==0&&t<Tt[n].priority;n++);Tt.splice(n,0,e),n===0&&td(e)}};function ac(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Es(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function hu(){}function fm(e,t,n,r,o){if(o){if(typeof r=="function"){var s=r;r=function(){var u=ss(i);s.call(u)}}var i=Ep(t,r,e,0,null,!1,!1,"",hu);return e._reactRootContainer=i,e[yt]=i.current,Tr(e.nodeType===8?e.parentNode:e),fn(),i}for(;o=e.lastChild;)e.removeChild(o);if(typeof r=="function"){var l=r;r=function(){var u=ss(c);l.call(u)}}var c=ic(e,0,!1,null,null,!1,!1,"",hu);return e._reactRootContainer=c,e[yt]=c.current,Tr(e.nodeType===8?e.parentNode:e),fn(function(){ys(t,c,n,r)}),c}function xs(e,t,n,r,o){var s=n._reactRootContainer;if(s){var i=s;if(typeof o=="function"){var l=o;o=function(){var c=ss(i);l.call(c)}}ys(t,i,e,o)}else i=fm(n,t,e,o,r);return ss(i)}Jf=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=ar(t.pendingLanes);n!==0&&(bl(t,n|1),Ne(t,oe()),!(V&6)&&(Yn=oe()+500,Xt()))}break;case 13:var r=Ae();fn(function(){return We(e,1,r)}),lc(e,1)}};Tl=function(e){if(e.tag===13){var t=Ae();We(e,134217728,t),lc(e,134217728)}};_f=function(e){if(e.tag===13){var t=Ae(),n=qt(e);We(e,n,t),lc(e,n)}};$f=function(){return W};ed=function(e,t){var n=W;try{return W=e,t()}finally{W=n}};bi=function(e,t,n){switch(t){case"input":if(xi(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=ds(r);if(!o)throw Error(R(90));Nf(r),xi(r,o)}}}break;case"textarea":Pf(e,n);break;case"select":t=n.value,t!=null&&On(e,!!n.multiple,t,!1)}};qf=nc;Qf=fn;var dm={usingClientEntryPoint:!1,Events:[Gr,Cn,ds,Ff,Uf,nc]},ir={findFiberByHostInstance:tn,bundleType:0,version:"18.1.0",rendererPackageName:"react-dom"},pm={bundleType:ir.bundleType,version:ir.version,rendererPackageName:ir.rendererPackageName,rendererConfig:ir.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Et.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Gf(e),e===null?null:e.stateNode},findFiberByHostInstance:ir.findFiberByHostInstance||um,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.1.0-next-22edb9f77-20220426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var go=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!go.isDisabled&&go.supportsFiber)try{cs=go.inject(pm),lt=go}catch{}}Ue.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=dm;Ue.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!ac(t))throw Error(R(200));return am(e,t,null,n)};Ue.createRoot=function(e,t){if(!ac(e))throw Error(R(299));var n=!1,r="",o=xp;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(o=t.onRecoverableError)),t=ic(e,1,!1,null,null,n,!1,r,o),e[yt]=t.current,Tr(e.nodeType===8?e.parentNode:e),new cc(t)};Ue.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(R(188)):(e=Object.keys(e).join(","),Error(R(268,e)));return e=Gf(t),e=e===null?null:e.stateNode,e};Ue.flushSync=function(e){return fn(e)};Ue.hydrate=function(e,t,n){if(!Es(t))throw Error(R(200));return xs(null,e,t,!0,n)};Ue.hydrateRoot=function(e,t,n){if(!ac(e))throw Error(R(405));var r=n!=null&&n.hydratedSources||null,o=!1,s="",i=xp;if(n!=null&&(n.unstable_strictMode===!0&&(o=!0),n.identifierPrefix!==void 0&&(s=n.identifierPrefix),n.onRecoverableError!==void 0&&(i=n.onRecoverableError)),t=Ep(t,null,e,1,n??null,o,!1,s,i),e[yt]=t.current,Tr(e),r)for(e=0;e<r.length;e++)n=r[e],o=n._getVersion,o=o(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new As(t)};Ue.render=function(e,t,n){if(!Es(t))throw Error(R(200));return xs(null,e,t,!1,n)};Ue.unmountComponentAtNode=function(e){if(!Es(e))throw Error(R(40));return e._reactRootContainer?(fn(function(){xs(null,null,e,!1,function(){e._reactRootContainer=null,e[yt]=null})}),!0):!1};Ue.unstable_batchedUpdates=nc;Ue.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Es(n))throw Error(R(200));if(e==null||e._reactInternals===void 0)throw Error(R(38));return xs(e,t,n,!1,r)};Ue.version="18.1.0-next-22edb9f77-20220426";function kp(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(kp)}catch(e){console.error(e)}}kp(),xf.exports=Ue;var hm=xf.exports;function gm(e){const t=/[\\^$.*+?()[\]{}|]/g,n=RegExp(t.source);return e&&n.test(e)?e.replace(t,"\\$&"):e||""}function Sp(e){var t;return((t=e.match(/@([\S]+)/g))==null?void 0:t.map(n=>n.slice(1)))||[]}function Cp(e){let t=0;for(let n=0;n<e.length;n++)t=e.charCodeAt(n)+((t<<8)-t);return Math.abs(t%6)}let mm=class ll{constructor(){xt(this,"project",[]);xt(this,"status",[]);xt(this,"text",[]);xt(this,"labels",[])}empty(){return this.project.length+this.status.length+this.text.length===0}static parse(t){const n=ll.tokenize(t),r=new Set,o=new Set,s=[],i=new Set;for(const c of n){if(c.startsWith("p:")){r.add(c.slice(2));continue}if(c.startsWith("s:")){o.add(c.slice(2));continue}if(c.startsWith("@")){i.add(c);continue}s.push(c.toLowerCase())}const l=new ll;return l.text=s,l.project=[...r],l.status=[...o],l.labels=[...i],l}static tokenize(t){const n=[];let r,o=[];for(let s=0;s<t.length;++s){const i=t[s];if(r&&i==="\\"&&t[s+1]===r){o.push(r),++s;continue}if(i==='"'||i==="'"){r===i?(n.push(o.join("").toLowerCase()),o=[],r=void 0):r?o.push(i):r=i;continue}if(r){o.push(i);continue}if(i===" "){o.length&&(n.push(o.join("").toLowerCase()),o=[]);continue}o.push(i)}return o.length&&n.push(o.join("").toLowerCase()),n}matches(t){if(!t.searchValues){let r="passed";t.outcome==="unexpected"&&(r="failed"),t.outcome==="flaky"&&(r="flaky"),t.outcome==="skipped"&&(r="skipped");const o={text:(r+" "+t.projectName+" "+t.location.file+" "+t.path.join(" ")+" "+t.title).toLowerCase(),project:t.projectName.toLowerCase(),status:r,file:t.location.file,line:String(t.location.line)};t.searchValues=o}const n=t.searchValues;if(this.project.length&&!!!this.project.find(o=>n.project.includes(o))||this.status.length&&!!!this.status.find(o=>n.status.includes(o)))return!1;if(this.text.length)for(const r of this.text){if(n.text.includes(r))continue;const o=r.split(":");if(!(o.length===2&&n.file.includes(o[0])&&n.line.includes(o[1])))return!1}return!(this.labels.length&&!this.labels.every(o=>{var s;return(s=n.text)==null?void 0:s.match(new RegExp(`(\\s|^)${gm(o)}(\\s|$)`,"g"))}))}};const Ip=()=>A("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16","data-view-component":"true",className:"octicon subnav-search-icon",children:A("path",{fillRule:"evenodd",d:"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"})}),uc=()=>A("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16",className:"octicon color-fg-muted",children:A("path",{fillRule:"evenodd",d:"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"})}),is=()=>A("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16","data-view-component":"true",className:"octicon color-fg-muted",children:A("path",{fillRule:"evenodd",d:"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z"})}),fc=()=>A("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16","data-view-component":"true",className:"octicon color-text-warning",children:A("path",{fillRule:"evenodd",d:"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"})}),Dp=()=>A("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16","data-view-component":"true",className:"octicon color-fg-muted",children:A("path",{fillRule:"evenodd",d:"M3.5 1.75a.25.25 0 01.25-.25h3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h2.086a.25.25 0 01.177.073l2.914 2.914a.25.25 0 01.073.177v8.586a.25.25 0 01-.25.25h-.5a.75.75 0 000 1.5h.5A1.75 1.75 0 0014 13.25V4.664c0-.464-.184-.909-.513-1.237L10.573.513A1.75 1.75 0 009.336 0H3.75A1.75 1.75 0 002 1.75v11.5c0 .649.353 1.214.874 1.515a.75.75 0 10.752-1.298.25.25 0 01-.126-.217V1.75zM8.75 3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM6 5.25a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5A.75.75 0 016 5.25zm2 1.5A.75.75 0 018.75 6h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 6.75zm-1.25.75a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM8 9.75A.75.75 0 018.75 9h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 9.75zm-.75.75a1.75 1.75 0 00-1.75 1.75v3c0 .414.336.75.75.75h2.5a.75.75 0 00.75-.75v-3a1.75 1.75 0 00-1.75-1.75h-.5zM7 12.25a.25.25 0 01.25-.25h.5a.25.25 0 01.25.25v2.25H7v-2.25z"})}),Rp=()=>A("svg",{className:"octicon color-text-danger",viewBox:"0 0 16 16",version:"1.1",width:"16",height:"16","aria-hidden":"true",children:A("path",{fillRule:"evenodd",d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})}),bp=()=>A("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16","data-view-component":"true",className:"octicon color-icon-success",children:A("path",{fillRule:"evenodd",d:"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"})}),Tp=()=>A("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16","data-view-component":"true",className:"octicon color-text-danger",children:A("path",{fillRule:"evenodd",d:"M5.75.75A.75.75 0 016.5 0h3a.75.75 0 010 1.5h-.75v1l-.001.041a6.718 6.718 0 013.464 1.435l.007-.006.75-.75a.75.75 0 111.06 1.06l-.75.75-.006.007a6.75 6.75 0 11-10.548 0L2.72 5.03l-.75-.75a.75.75 0 011.06-1.06l.75.75.007.006A6.718 6.718 0 017.25 2.541a.756.756 0 010-.041v-1H6.5a.75.75 0 01-.75-.75zM8 14.5A5.25 5.25 0 108 4a5.25 5.25 0 000 10.5zm.389-6.7l1.33-1.33a.75.75 0 111.061 1.06L9.45 8.861A1.502 1.502 0 018 10.75a1.5 1.5 0 11.389-2.95z"})}),Np=()=>A("svg",{className:"octicon",viewBox:"0 0 16 16",version:"1.1",width:"16",height:"16","aria-hidden":"true"}),vm=()=>A("svg",{className:"octicon",viewBox:"0 0 16 16",width:"16",height:"16",children:A("path",{"fill-rule":"evenodd",d:"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"})}),wm=()=>A("svg",{className:"octicon",viewBox:"0 0 16 16",width:"16",height:"16",children:A("path",{"fill-rule":"evenodd",d:"M4.75 0a.75.75 0 01.75.75V2h5V.75a.75.75 0 011.5 0V2h1.25c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0113.25 16H2.75A1.75 1.75 0 011 14.25V3.75C1 2.784 1.784 2 2.75 2H4V.75A.75.75 0 014.75 0zm0 3.5h8.5a.25.25 0 01.25.25V6h-11V3.75a.25.25 0 01.25-.25h2zm-2.25 4v6.75c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25V7.5h-11z"})}),ym=()=>A("svg",{className:"octicon",viewBox:"0 0 16 16",width:"16",height:"16",children:A("path",{"fill-rule":"evenodd",d:"M10.5 5a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm.061 3.073a4 4 0 10-5.123 0 6.004 6.004 0 00-3.431 5.142.75.75 0 001.498.07 4.5 4.5 0 018.99 0 .75.75 0 101.498-.07 6.005 6.005 0 00-3.432-5.142z"})}),Am=()=>A("svg",{className:"octicon",viewBox:"0 0 16 16",width:"16",height:"16",children:A("path",{"fill-rule":"evenodd",d:"M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"})}),Lp=()=>A("svg",{className:"octicon",viewBox:"0 0 48 48",version:"1.1",width:"20",height:"20","aria-hidden":"true",children:A("path",{xmlns:"http://www.w3.org/2000/svg",d:"M11.85 32H36.2l-7.35-9.95-6.55 8.7-4.6-6.45ZM7 40q-1.2 0-2.1-.9Q4 38.2 4 37V11q0-1.2.9-2.1Q5.8 8 7 8h34q1.2 0 2.1.9.9.9.9 2.1v26q0 1.2-.9 2.1-.9.9-2.1.9Zm0-29v26-26Zm34 26V11H7v26Z"})}),Pp=()=>A("svg",{className:"octicon",viewBox:"0 0 48 48",version:"1.1",width:"20",height:"20","aria-hidden":"true",children:A("path",{xmlns:"http://www.w3.org/2000/svg",d:"m19.6 32.35 13-8.45-13-8.45ZM7 40q-1.2 0-2.1-.9Q4 38.2 4 37V11q0-1.2.9-2.1Q5.8 8 7 8h34q1.2 0 2.1.9.9.9.9 2.1v26q0 1.2-.9 2.1-.9.9-2.1.9Zm0-3h34V11H7v26Zm0 0V11v26Z"})}),Op=()=>A("svg",{className:"octicon",viewBox:"0 0 48 48",version:"1.1",width:"20",height:"20","aria-hidden":"true",children:A("path",{xmlns:"http://www.w3.org/2000/svg",d:"M7 37h9.35V11H7v26Zm12.35 0h9.3V11h-9.3v26Zm12.3 0H41V11h-9.35v26ZM7 40q-1.2 0-2.1-.9Q4 38.2 4 37V11q0-1.2.9-2.1Q5.8 8 7 8h34q1.2 0 2.1.9.9.9.9 2.1v26q0 1.2-.9 2.1-.9.9-2.1.9Z"})}),Em=()=>A("svg",{className:"octicon",viewBox:"0 0 16 16",version:"1.1",width:"16",height:"16","aria-hidden":"true"}),xm=Object.freeze(Object.defineProperty({__proto__:null,attachment:Dp,blank:Np,calendar:wm,check:bp,clock:Tp,commit:Am,cross:Rp,downArrow:uc,empty:Em,externalLink:vm,image:Lp,person:ym,rightArrow:is,search:Ip,trace:Op,video:Pp,warning:fc},Symbol.toStringTag,{value:"Module"}));const Bp=({title:e,loadChildren:t,onClick:n,expandByDefault:r,depth:o,selected:s,style:i})=>{const[l,c]=Q.useState(r||!1);return O("div",{className:"tree-item",style:i,children:[O("span",{className:s?"tree-item-title selected":"tree-item-title",style:{whiteSpace:"nowrap",paddingLeft:o*22+4},onClick:()=>{n==null||n(),c(!l)},children:[t&&!!l&&uc(),t&&!l&&is(),!t&&A("span",{style:{visibility:"hidden"},children:is()}),e]}),l&&(t==null?void 0:t())]})};function Hp(e){window.history.pushState({},"",e);const t=new PopStateEvent("popstate");window.dispatchEvent(t)}const gu=({predicate:e,children:t})=>{const[n,r]=Q.useState(e(new URLSearchParams(window.location.hash.slice(1))));return Q.useEffect(()=>{const o=()=>r(e(new URLSearchParams(window.location.hash.slice(1))));return window.addEventListener("popstate",o),()=>window.removeEventListener("popstate",o)},[e]),n?t:null},_e=({href:e,className:t,children:n,title:r})=>A("a",{style:{textDecoration:"none",color:"var(--color-fg-default)"},className:`${t||""}`,href:e,title:r,children:n}),Mp=({projectNames:e,projectName:t})=>{const n=encodeURIComponent(t),r=t===n?t:`"${n.replace(/%22/g,"%5C%22")}"`;return A(_e,{href:`#?q=p:${r}`,children:A("span",{className:"label label-color-"+e.indexOf(t)%6,style:{margin:"6px 0 0 6px"},children:t})})},rn=({attachment:e,href:t,linkName:n})=>A(Bp,{title:O("span",{children:[e.contentType===km?fc():Dp(),e.path&&A("a",{href:t||e.path,target:"_blank",children:n||e.name}),e.body&&A("span",{children:e.name})]}),loadChildren:e.body?()=>[A("div",{className:"attachment-body",children:e.body})]:void 0,depth:0,style:{lineHeight:"32px"}});function Fp(e){return`trace/index.html?${e.map((t,n)=>`trace=${new URL(t.path,window.location.href)}`).join("&")}`}const km="x-playwright/missing";function Ur(e){switch(e){case"failed":case"unexpected":return Rp();case"passed":case"expected":return bp();case"timedOut":return Tp();case"flaky":return fc();case"skipped":case"interrupted":return Np()}}const Sm=({stats:e,filterText:t,setFilterText:n})=>(Q.useEffect(()=>{const r=()=>{const o=new URLSearchParams(window.location.hash.slice(1));n(o.get("q")||"")};return window.addEventListener("popstate",r),()=>{window.removeEventListener("popstate",r)}},[n]),A(dn,{children:O("div",{className:"pt-3",children:[A("div",{className:"header-view-status-container ml-2 pl-2 d-flex",children:A(Cm,{stats:e})}),O("form",{className:"subnav-search",onSubmit:r=>{r.preventDefault(),Hp(`#?q=${t?encodeURIComponent(t):""}`)},children:[Ip(),A("input",{type:"search",spellCheck:!1,className:"form-control subnav-search-input input-contrast width-full",value:t,onChange:r=>{n(r.target.value)}})]})]})})),Cm=({stats:e})=>O("nav",{className:"d-flex no-wrap",children:[O(_e,{className:"subnav-item",href:"#?",children:["All ",A("span",{className:"d-inline counter",children:e.total})]}),O(_e,{className:"subnav-item",href:"#?q=s:passed",children:["Passed ",A("span",{className:"d-inline counter",children:e.expected})]}),O(_e,{className:"subnav-item",href:"#?q=s:failed",children:[!!e.unexpected&&Ur("unexpected")," Failed ",A("span",{className:"d-inline counter",children:e.unexpected})]}),O(_e,{className:"subnav-item",href:"#?q=s:flaky",children:[!!e.flaky&&Ur("flaky")," Flaky ",A("span",{className:"d-inline counter",children:e.flaky})]}),O(_e,{className:"subnav-item",href:"#?q=s:skipped",children:["Skipped ",A("span",{className:"d-inline counter",children:e.skipped})]})]});const Up=({header:e,expanded:t,setExpanded:n,children:r,noInsets:o,dataTestId:s,targetRef:i})=>O("div",{className:"chip","data-test-id":s,ref:i,children:[O("div",{className:"chip-header"+(n?" expanded-"+t:""),onClick:()=>n==null?void 0:n(!t),title:typeof e=="string"?e:void 0,children:[n&&!!t&&uc(),n&&!t&&is(),e]}),(!n||t)&&A("div",{className:"chip-body"+(o?" chip-body-no-insets":""),children:r})]}),ot=({header:e,initialExpanded:t,noInsets:n,children:r,dataTestId:o,targetRef:s})=>{const[i,l]=Q.useState(t||t===void 0);return A(Up,{header:e,expanded:i,setExpanded:l,noInsets:n,dataTestId:o,targetRef:s,children:r})};class Im extends Q.Component{constructor(){super(...arguments);xt(this,"state",{error:null,errorInfo:null})}componentDidCatch(n,r){this.setState({error:n,errorInfo:r})}render(){var n,r,o;return this.state.error||this.state.errorInfo?O(ot,{header:"Commit Metainfo Error",dataTestId:"metadata-error",children:[A("p",{children:"An error was encountered when trying to render Commit Metainfo. Please file a GitHub issue to report this error."}),A("p",{children:O("pre",{style:{overflow:"scroll"},children:[(n=this.state.error)==null?void 0:n.message,A("br",{}),(r=this.state.error)==null?void 0:r.stack,A("br",{}),(o=this.state.errorInfo)==null?void 0:o.componentStack]})})]}):this.props.children}}const Dm=e=>A(Im,{children:A(Rm,{...e})}),Rm=e=>Object.keys(e).find(t=>t.startsWith("revision.")||t.startsWith("ci."))?O(ot,{header:O("span",{children:[e["revision.id"]&&A("span",{style:{float:"right"},children:e["revision.id"].slice(0,7)}),e["revision.subject"]||"Commit Metainfo"]}),initialExpanded:!1,dataTestId:"metadata-chip",children:[e["revision.subject"]&&A(vn,{testId:"revision.subject",content:A("span",{children:e["revision.subject"]})}),e["revision.id"]&&A(vn,{testId:"revision.id",content:A("span",{children:e["revision.id"]}),href:e["revision.link"],icon:"commit"}),(e["revision.author"]||e["revision.email"])&&A(vn,{content:`${e["revision.author"]} ${e["revision.email"]}`,icon:"person"}),e["revision.timestamp"]&&A(vn,{testId:"revision.timestamp",content:O(dn,{children:[Intl.DateTimeFormat(void 0,{dateStyle:"full"}).format(e["revision.timestamp"])," ",Intl.DateTimeFormat(void 0,{timeStyle:"long"}).format(e["revision.timestamp"])]}),icon:"calendar"}),e["ci.link"]&&A(vn,{content:"CI/CD Logs",href:e["ci.link"],icon:"externalLink"}),e.timestamp&&A(vn,{content:O("span",{style:{color:"var(--color-fg-subtle)"},children:["Report generated on ",Intl.DateTimeFormat(void 0,{dateStyle:"full",timeStyle:"long"}).format(e.timestamp)]})})]}):null,vn=({content:e,icon:t,href:n,testId:r})=>O("div",{className:"my-1 hbox","data-test-id":r,children:[A("div",{className:"mr-2",children:xm[t||"blank"]()}),A("div",{style:{flex:1},children:n?A("a",{href:n,target:"_blank",rel:"noopener noreferrer",children:e}):e})]});const qp=({tabs:e,selectedTab:t,setSelectedTab:n})=>A("div",{className:"tabbed-pane",children:O("div",{className:"vbox",children:[A("div",{className:"hbox",style:{flex:"none"},children:A("div",{className:"tabbed-pane-tab-strip",children:e.map(r=>A("div",{className:"tabbed-pane-tab-element "+(t===r.id?"selected":""),onClick:()=>n(r.id),children:A("div",{className:"tabbed-pane-tab-label",children:r.title})},r.id))})}),e.map(r=>{if(t===r.id)return A("div",{className:"tab-content",children:r.render()},r.id)})]})});var Qp={},vt={};const bm="Á",Tm="á",Nm="Ă",Lm="ă",Pm="∾",Om="∿",Bm="∾̳",Hm="Â",Mm="â",Fm="´",Um="А",qm="а",Qm="Æ",jm="æ",Vm="⁡",Gm="𝔄",Wm="𝔞",Ym="À",Xm="à",zm="ℵ",Km="ℵ",Zm="Α",Jm="α",_m="Ā",$m="ā",ev="⨿",tv="&",nv="&",rv="⩕",ov="⩓",sv="∧",iv="⩜",lv="⩘",cv="⩚",av="∠",uv="⦤",fv="∠",dv="⦨",pv="⦩",hv="⦪",gv="⦫",mv="⦬",vv="⦭",wv="⦮",yv="⦯",Av="∡",Ev="∟",xv="⊾",kv="⦝",Sv="∢",Cv="Å",Iv="⍼",Dv="Ą",Rv="ą",bv="𝔸",Tv="𝕒",Nv="⩯",Lv="≈",Pv="⩰",Ov="≊",Bv="≋",Hv="'",Mv="⁡",Fv="≈",Uv="≊",qv="Å",Qv="å",jv="𝒜",Vv="𝒶",Gv="≔",Wv="*",Yv="≈",Xv="≍",zv="Ã",Kv="ã",Zv="Ä",Jv="ä",_v="∳",$v="⨑",ew="≌",tw="϶",nw="‵",rw="∽",ow="⋍",sw="∖",iw="⫧",lw="⊽",cw="⌅",aw="⌆",uw="⌅",fw="⎵",dw="⎶",pw="≌",hw="Б",gw="б",mw="„",vw="∵",ww="∵",yw="∵",Aw="⦰",Ew="϶",xw="ℬ",kw="ℬ",Sw="Β",Cw="β",Iw="ℶ",Dw="≬",Rw="𝔅",bw="𝔟",Tw="⋂",Nw="◯",Lw="⋃",Pw="⨀",Ow="⨁",Bw="⨂",Hw="⨆",Mw="★",Fw="▽",Uw="△",qw="⨄",Qw="⋁",jw="⋀",Vw="⤍",Gw="⧫",Ww="▪",Yw="▴",Xw="▾",zw="◂",Kw="▸",Zw="␣",Jw="▒",_w="░",$w="▓",ey="█",ty="=⃥",ny="≡⃥",ry="⫭",oy="⌐",sy="𝔹",iy="𝕓",ly="⊥",cy="⊥",ay="⋈",uy="⧉",fy="┐",dy="╕",py="╖",hy="╗",gy="┌",my="╒",vy="╓",wy="╔",yy="─",Ay="═",Ey="┬",xy="╤",ky="╥",Sy="╦",Cy="┴",Iy="╧",Dy="╨",Ry="╩",by="⊟",Ty="⊞",Ny="⊠",Ly="┘",Py="╛",Oy="╜",By="╝",Hy="└",My="╘",Fy="╙",Uy="╚",qy="│",Qy="║",jy="┼",Vy="╪",Gy="╫",Wy="╬",Yy="┤",Xy="╡",zy="╢",Ky="╣",Zy="├",Jy="╞",_y="╟",$y="╠",eA="‵",tA="˘",nA="˘",rA="¦",oA="𝒷",sA="ℬ",iA="⁏",lA="∽",cA="⋍",aA="⧅",uA="\\",fA="⟈",dA="•",pA="•",hA="≎",gA="⪮",mA="≏",vA="≎",wA="≏",yA="Ć",AA="ć",EA="⩄",xA="⩉",kA="⩋",SA="∩",CA="⋒",IA="⩇",DA="⩀",RA="ⅅ",bA="∩︀",TA="⁁",NA="ˇ",LA="ℭ",PA="⩍",OA="Č",BA="č",HA="Ç",MA="ç",FA="Ĉ",UA="ĉ",qA="∰",QA="⩌",jA="⩐",VA="Ċ",GA="ċ",WA="¸",YA="¸",XA="⦲",zA="¢",KA="·",ZA="·",JA="𝔠",_A="ℭ",$A="Ч",e2="ч",t2="✓",n2="✓",r2="Χ",o2="χ",s2="ˆ",i2="≗",l2="↺",c2="↻",a2="⊛",u2="⊚",f2="⊝",d2="⊙",p2="®",h2="Ⓢ",g2="⊖",m2="⊕",v2="⊗",w2="○",y2="⧃",A2="≗",E2="⨐",x2="⫯",k2="⧂",S2="∲",C2="”",I2="’",D2="♣",R2="♣",b2=":",T2="∷",N2="⩴",L2="≔",P2="≔",O2=",",B2="@",H2="∁",M2="∘",F2="∁",U2="ℂ",q2="≅",Q2="⩭",j2="≡",V2="∮",G2="∯",W2="∮",Y2="𝕔",X2="ℂ",z2="∐",K2="∐",Z2="©",J2="©",_2="℗",$2="∳",eE="↵",tE="✗",nE="⨯",rE="𝒞",oE="𝒸",sE="⫏",iE="⫑",lE="⫐",cE="⫒",aE="⋯",uE="⤸",fE="⤵",dE="⋞",pE="⋟",hE="↶",gE="⤽",mE="⩈",vE="⩆",wE="≍",yE="∪",AE="⋓",EE="⩊",xE="⊍",kE="⩅",SE="∪︀",CE="↷",IE="⤼",DE="⋞",RE="⋟",bE="⋎",TE="⋏",NE="¤",LE="↶",PE="↷",OE="⋎",BE="⋏",HE="∲",ME="∱",FE="⌭",UE="†",qE="‡",QE="ℸ",jE="↓",VE="↡",GE="⇓",WE="‐",YE="⫤",XE="⊣",zE="⤏",KE="˝",ZE="Ď",JE="ď",_E="Д",$E="д",ex="‡",tx="⇊",nx="ⅅ",rx="ⅆ",ox="⤑",sx="⩷",ix="°",lx="∇",cx="Δ",ax="δ",ux="⦱",fx="⥿",dx="𝔇",px="𝔡",hx="⥥",gx="⇃",mx="⇂",vx="´",wx="˙",yx="˝",Ax="`",Ex="˜",xx="⋄",kx="⋄",Sx="⋄",Cx="♦",Ix="♦",Dx="¨",Rx="ⅆ",bx="ϝ",Tx="⋲",Nx="÷",Lx="÷",Px="⋇",Ox="⋇",Bx="Ђ",Hx="ђ",Mx="⌞",Fx="⌍",Ux="$",qx="𝔻",Qx="𝕕",jx="¨",Vx="˙",Gx="⃜",Wx="≐",Yx="≑",Xx="≐",zx="∸",Kx="∔",Zx="⊡",Jx="⌆",_x="∯",$x="¨",e5="⇓",t5="⇐",n5="⇔",r5="⫤",o5="⟸",s5="⟺",i5="⟹",l5="⇒",c5="⊨",a5="⇑",u5="⇕",f5="∥",d5="⤓",p5="↓",h5="↓",g5="⇓",m5="⇵",v5="̑",w5="⇊",y5="⇃",A5="⇂",E5="⥐",x5="⥞",k5="⥖",S5="↽",C5="⥟",I5="⥗",D5="⇁",R5="↧",b5="⊤",T5="⤐",N5="⌟",L5="⌌",P5="𝒟",O5="𝒹",B5="Ѕ",H5="ѕ",M5="⧶",F5="Đ",U5="đ",q5="⋱",Q5="▿",j5="▾",V5="⇵",G5="⥯",W5="⦦",Y5="Џ",X5="џ",z5="⟿",K5="É",Z5="é",J5="⩮",_5="Ě",$5="ě",e8="Ê",t8="ê",n8="≖",r8="≕",o8="Э",s8="э",i8="⩷",l8="Ė",c8="ė",a8="≑",u8="ⅇ",f8="≒",d8="𝔈",p8="𝔢",h8="⪚",g8="È",m8="è",v8="⪖",w8="⪘",y8="⪙",A8="∈",E8="⏧",x8="ℓ",k8="⪕",S8="⪗",C8="Ē",I8="ē",D8="∅",R8="∅",b8="◻",T8="∅",N8="▫",L8=" ",P8=" ",O8=" ",B8="Ŋ",H8="ŋ",M8=" ",F8="Ę",U8="ę",q8="𝔼",Q8="𝕖",j8="⋕",V8="⧣",G8="⩱",W8="ε",Y8="Ε",X8="ε",z8="ϵ",K8="≖",Z8="≕",J8="≂",_8="⪖",$8="⪕",ek="⩵",tk="=",nk="≂",rk="≟",ok="⇌",sk="≡",ik="⩸",lk="⧥",ck="⥱",ak="≓",uk="ℯ",fk="ℰ",dk="≐",pk="⩳",hk="≂",gk="Η",mk="η",vk="Ð",wk="ð",yk="Ë",Ak="ë",Ek="€",xk="!",kk="∃",Sk="∃",Ck="ℰ",Ik="ⅇ",Dk="ⅇ",Rk="≒",bk="Ф",Tk="ф",Nk="♀",Lk="ffi",Pk="ff",Ok="ffl",Bk="𝔉",Hk="𝔣",Mk="fi",Fk="◼",Uk="▪",qk="fj",Qk="♭",jk="fl",Vk="▱",Gk="ƒ",Wk="𝔽",Yk="𝕗",Xk="∀",zk="∀",Kk="⋔",Zk="⫙",Jk="ℱ",_k="⨍",$k="½",e3="⅓",t3="¼",n3="⅕",r3="⅙",o3="⅛",s3="⅔",i3="⅖",l3="¾",c3="⅗",a3="⅜",u3="⅘",f3="⅚",d3="⅝",p3="⅞",h3="⁄",g3="⌢",m3="𝒻",v3="ℱ",w3="ǵ",y3="Γ",A3="γ",E3="Ϝ",x3="ϝ",k3="⪆",S3="Ğ",C3="ğ",I3="Ģ",D3="Ĝ",R3="ĝ",b3="Г",T3="г",N3="Ġ",L3="ġ",P3="≥",O3="≧",B3="⪌",H3="⋛",M3="≥",F3="≧",U3="⩾",q3="⪩",Q3="⩾",j3="⪀",V3="⪂",G3="⪄",W3="⋛︀",Y3="⪔",X3="𝔊",z3="𝔤",K3="≫",Z3="⋙",J3="⋙",_3="ℷ",$3="Ѓ",eS="ѓ",tS="⪥",nS="≷",rS="⪒",oS="⪤",sS="⪊",iS="⪊",lS="⪈",cS="≩",aS="⪈",uS="≩",fS="⋧",dS="𝔾",pS="𝕘",hS="`",gS="≥",mS="⋛",vS="≧",wS="⪢",yS="≷",AS="⩾",ES="≳",xS="𝒢",kS="ℊ",SS="≳",CS="⪎",IS="⪐",DS="⪧",RS="⩺",bS=">",TS=">",NS="≫",LS="⋗",PS="⦕",OS="⩼",BS="⪆",HS="⥸",MS="⋗",FS="⋛",US="⪌",qS="≷",QS="≳",jS="≩︀",VS="≩︀",GS="ˇ",WS=" ",YS="½",XS="ℋ",zS="Ъ",KS="ъ",ZS="⥈",JS="↔",_S="⇔",$S="↭",eC="^",tC="ℏ",nC="Ĥ",rC="ĥ",oC="♥",sC="♥",iC="…",lC="⊹",cC="𝔥",aC="ℌ",uC="ℋ",fC="⤥",dC="⤦",pC="⇿",hC="∻",gC="↩",mC="↪",vC="𝕙",wC="ℍ",yC="―",AC="─",EC="𝒽",xC="ℋ",kC="ℏ",SC="Ħ",CC="ħ",IC="≎",DC="≏",RC="⁃",bC="‐",TC="Í",NC="í",LC="⁣",PC="Î",OC="î",BC="И",HC="и",MC="İ",FC="Е",UC="е",qC="¡",QC="⇔",jC="𝔦",VC="ℑ",GC="Ì",WC="ì",YC="ⅈ",XC="⨌",zC="∭",KC="⧜",ZC="℩",JC="IJ",_C="ij",$C="Ī",e4="ī",t4="ℑ",n4="ⅈ",r4="ℐ",o4="ℑ",s4="ı",i4="ℑ",l4="⊷",c4="Ƶ",a4="⇒",u4="℅",f4="∞",d4="⧝",p4="ı",h4="⊺",g4="∫",m4="∬",v4="ℤ",w4="∫",y4="⊺",A4="⋂",E4="⨗",x4="⨼",k4="⁣",S4="⁢",C4="Ё",I4="ё",D4="Į",R4="į",b4="𝕀",T4="𝕚",N4="Ι",L4="ι",P4="⨼",O4="¿",B4="𝒾",H4="ℐ",M4="∈",F4="⋵",U4="⋹",q4="⋴",Q4="⋳",j4="∈",V4="⁢",G4="Ĩ",W4="ĩ",Y4="І",X4="і",z4="Ï",K4="ï",Z4="Ĵ",J4="ĵ",_4="Й",$4="й",e7="𝔍",t7="𝔧",n7="ȷ",r7="𝕁",o7="𝕛",s7="𝒥",i7="𝒿",l7="Ј",c7="ј",a7="Є",u7="є",f7="Κ",d7="κ",p7="ϰ",h7="Ķ",g7="ķ",m7="К",v7="к",w7="𝔎",y7="𝔨",A7="ĸ",E7="Х",x7="х",k7="Ќ",S7="ќ",C7="𝕂",I7="𝕜",D7="𝒦",R7="𝓀",b7="⇚",T7="Ĺ",N7="ĺ",L7="⦴",P7="ℒ",O7="Λ",B7="λ",H7="⟨",M7="⟪",F7="⦑",U7="⟨",q7="⪅",Q7="ℒ",j7="«",V7="⇤",G7="⤟",W7="←",Y7="↞",X7="⇐",z7="⤝",K7="↩",Z7="↫",J7="⤹",_7="⥳",$7="↢",eI="⤙",tI="⤛",nI="⪫",rI="⪭",oI="⪭︀",sI="⤌",iI="⤎",lI="❲",cI="{",aI="[",uI="⦋",fI="⦏",dI="⦍",pI="Ľ",hI="ľ",gI="Ļ",mI="ļ",vI="⌈",wI="{",yI="Л",AI="л",EI="⤶",xI="“",kI="„",SI="⥧",CI="⥋",II="↲",DI="≤",RI="≦",bI="⟨",TI="⇤",NI="←",LI="←",PI="⇐",OI="⇆",BI="↢",HI="⌈",MI="⟦",FI="⥡",UI="⥙",qI="⇃",QI="⌊",jI="↽",VI="↼",GI="⇇",WI="↔",YI="↔",XI="⇔",zI="⇆",KI="⇋",ZI="↭",JI="⥎",_I="↤",$I="⊣",e6="⥚",t6="⋋",n6="⧏",r6="⊲",o6="⊴",s6="⥑",i6="⥠",l6="⥘",c6="↿",a6="⥒",u6="↼",f6="⪋",d6="⋚",p6="≤",h6="≦",g6="⩽",m6="⪨",v6="⩽",w6="⩿",y6="⪁",A6="⪃",E6="⋚︀",x6="⪓",k6="⪅",S6="⋖",C6="⋚",I6="⪋",D6="⋚",R6="≦",b6="≶",T6="≶",N6="⪡",L6="≲",P6="⩽",O6="≲",B6="⥼",H6="⌊",M6="𝔏",F6="𝔩",U6="≶",q6="⪑",Q6="⥢",j6="↽",V6="↼",G6="⥪",W6="▄",Y6="Љ",X6="љ",z6="⇇",K6="≪",Z6="⋘",J6="⌞",_6="⇚",$6="⥫",eD="◺",tD="Ŀ",nD="ŀ",rD="⎰",oD="⎰",sD="⪉",iD="⪉",lD="⪇",cD="≨",aD="⪇",uD="≨",fD="⋦",dD="⟬",pD="⇽",hD="⟦",gD="⟵",mD="⟵",vD="⟸",wD="⟷",yD="⟷",AD="⟺",ED="⟼",xD="⟶",kD="⟶",SD="⟹",CD="↫",ID="↬",DD="⦅",RD="𝕃",bD="𝕝",TD="⨭",ND="⨴",LD="∗",PD="_",OD="↙",BD="↘",HD="◊",MD="◊",FD="⧫",UD="(",qD="⦓",QD="⇆",jD="⌟",VD="⇋",GD="⥭",WD="‎",YD="⊿",XD="‹",zD="𝓁",KD="ℒ",ZD="↰",JD="↰",_D="≲",$D="⪍",eR="⪏",tR="[",nR="‘",rR="‚",oR="Ł",sR="ł",iR="⪦",lR="⩹",cR="<",aR="<",uR="≪",fR="⋖",dR="⋋",pR="⋉",hR="⥶",gR="⩻",mR="◃",vR="⊴",wR="◂",yR="⦖",AR="⥊",ER="⥦",xR="≨︀",kR="≨︀",SR="¯",CR="♂",IR="✠",DR="✠",RR="↦",bR="↦",TR="↧",NR="↤",LR="↥",PR="▮",OR="⨩",BR="М",HR="м",MR="—",FR="∺",UR="∡",qR=" ",QR="ℳ",jR="𝔐",VR="𝔪",GR="℧",WR="µ",YR="*",XR="⫰",zR="∣",KR="·",ZR="⊟",JR="−",_R="∸",$R="⨪",eb="∓",tb="⫛",nb="…",rb="∓",ob="⊧",sb="𝕄",ib="𝕞",lb="∓",cb="𝓂",ab="ℳ",ub="∾",fb="Μ",db="μ",pb="⊸",hb="⊸",gb="∇",mb="Ń",vb="ń",wb="∠⃒",yb="≉",Ab="⩰̸",Eb="≋̸",xb="ʼn",kb="≉",Sb="♮",Cb="ℕ",Ib="♮",Db=" ",Rb="≎̸",bb="≏̸",Tb="⩃",Nb="Ň",Lb="ň",Pb="Ņ",Ob="ņ",Bb="≇",Hb="⩭̸",Mb="⩂",Fb="Н",Ub="н",qb="–",Qb="⤤",jb="↗",Vb="⇗",Gb="↗",Wb="≠",Yb="≐̸",Xb="​",zb="​",Kb="​",Zb="​",Jb="≢",_b="⤨",$b="≂̸",eT="≫",tT="≪",nT=`
+`,rT="∄",oT="∄",sT="𝔑",iT="𝔫",lT="≧̸",cT="≱",aT="≱",uT="≧̸",fT="⩾̸",dT="⩾̸",pT="⋙̸",hT="≵",gT="≫⃒",mT="≯",vT="≯",wT="≫̸",yT="↮",AT="⇎",ET="⫲",xT="∋",kT="⋼",ST="⋺",CT="∋",IT="Њ",DT="њ",RT="↚",bT="⇍",TT="‥",NT="≦̸",LT="≰",PT="↚",OT="⇍",BT="↮",HT="⇎",MT="≰",FT="≦̸",UT="⩽̸",qT="⩽̸",QT="≮",jT="⋘̸",VT="≴",GT="≪⃒",WT="≮",YT="⋪",XT="⋬",zT="≪̸",KT="∤",ZT="⁠",JT=" ",_T="𝕟",$T="ℕ",eN="⫬",tN="¬",nN="≢",rN="≭",oN="∦",sN="∉",iN="≠",lN="≂̸",cN="∄",aN="≯",uN="≱",fN="≧̸",dN="≫̸",pN="≹",hN="⩾̸",gN="≵",mN="≎̸",vN="≏̸",wN="∉",yN="⋵̸",AN="⋹̸",EN="∉",xN="⋷",kN="⋶",SN="⧏̸",CN="⋪",IN="⋬",DN="≮",RN="≰",bN="≸",TN="≪̸",NN="⩽̸",LN="≴",PN="⪢̸",ON="⪡̸",BN="∌",HN="∌",MN="⋾",FN="⋽",UN="⊀",qN="⪯̸",QN="⋠",jN="∌",VN="⧐̸",GN="⋫",WN="⋭",YN="⊏̸",XN="⋢",zN="⊐̸",KN="⋣",ZN="⊂⃒",JN="⊈",_N="⊁",$N="⪰̸",e9="⋡",t9="≿̸",n9="⊃⃒",r9="⊉",o9="≁",s9="≄",i9="≇",l9="≉",c9="∤",a9="∦",u9="∦",f9="⫽⃥",d9="∂̸",p9="⨔",h9="⊀",g9="⋠",m9="⊀",v9="⪯̸",w9="⪯̸",y9="⤳̸",A9="↛",E9="⇏",x9="↝̸",k9="↛",S9="⇏",C9="⋫",I9="⋭",D9="⊁",R9="⋡",b9="⪰̸",T9="𝒩",N9="𝓃",L9="∤",P9="∦",O9="≁",B9="≄",H9="≄",M9="∤",F9="∦",U9="⋢",q9="⋣",Q9="⊄",j9="⫅̸",V9="⊈",G9="⊂⃒",W9="⊈",Y9="⫅̸",X9="⊁",z9="⪰̸",K9="⊅",Z9="⫆̸",J9="⊉",_9="⊃⃒",$9="⊉",eL="⫆̸",tL="≹",nL="Ñ",rL="ñ",oL="≸",sL="⋪",iL="⋬",lL="⋫",cL="⋭",aL="Ν",uL="ν",fL="#",dL="№",pL=" ",hL="≍⃒",gL="⊬",mL="⊭",vL="⊮",wL="⊯",yL="≥⃒",AL=">⃒",EL="⤄",xL="⧞",kL="⤂",SL="≤⃒",CL="<⃒",IL="⊴⃒",DL="⤃",RL="⊵⃒",bL="∼⃒",TL="⤣",NL="↖",LL="⇖",PL="↖",OL="⤧",BL="Ó",HL="ó",ML="⊛",FL="Ô",UL="ô",qL="⊚",QL="О",jL="о",VL="⊝",GL="Ő",WL="ő",YL="⨸",XL="⊙",zL="⦼",KL="Œ",ZL="œ",JL="⦿",_L="𝔒",$L="𝔬",eP="˛",tP="Ò",nP="ò",rP="⧁",oP="⦵",sP="Ω",iP="∮",lP="↺",cP="⦾",aP="⦻",uP="‾",fP="⧀",dP="Ō",pP="ō",hP="Ω",gP="ω",mP="Ο",vP="ο",wP="⦶",yP="⊖",AP="𝕆",EP="𝕠",xP="⦷",kP="“",SP="‘",CP="⦹",IP="⊕",DP="↻",RP="⩔",bP="∨",TP="⩝",NP="ℴ",LP="ℴ",PP="ª",OP="º",BP="⊶",HP="⩖",MP="⩗",FP="⩛",UP="Ⓢ",qP="𝒪",QP="ℴ",jP="Ø",VP="ø",GP="⊘",WP="Õ",YP="õ",XP="⨶",zP="⨷",KP="⊗",ZP="Ö",JP="ö",_P="⌽",$P="‾",eO="⏞",tO="⎴",nO="⏜",rO="¶",oO="∥",sO="∥",iO="⫳",lO="⫽",cO="∂",aO="∂",uO="П",fO="п",dO="%",pO=".",hO="‰",gO="⊥",mO="‱",vO="𝔓",wO="𝔭",yO="Φ",AO="φ",EO="ϕ",xO="ℳ",kO="☎",SO="Π",CO="π",IO="⋔",DO="ϖ",RO="ℏ",bO="ℎ",TO="ℏ",NO="⨣",LO="⊞",PO="⨢",OO="+",BO="∔",HO="⨥",MO="⩲",FO="±",UO="±",qO="⨦",QO="⨧",jO="±",VO="ℌ",GO="⨕",WO="𝕡",YO="ℙ",XO="£",zO="⪷",KO="⪻",ZO="≺",JO="≼",_O="⪷",$O="≺",eB="≼",tB="≺",nB="⪯",rB="≼",oB="≾",sB="⪯",iB="⪹",lB="⪵",cB="⋨",aB="⪯",uB="⪳",fB="≾",dB="′",pB="″",hB="ℙ",gB="⪹",mB="⪵",vB="⋨",wB="∏",yB="∏",AB="⌮",EB="⌒",xB="⌓",kB="∝",SB="∝",CB="∷",IB="∝",DB="≾",RB="⊰",bB="𝒫",TB="𝓅",NB="Ψ",LB="ψ",PB=" ",OB="𝔔",BB="𝔮",HB="⨌",MB="𝕢",FB="ℚ",UB="⁗",qB="𝒬",QB="𝓆",jB="ℍ",VB="⨖",GB="?",WB="≟",YB='"',XB='"',zB="⇛",KB="∽̱",ZB="Ŕ",JB="ŕ",_B="√",$B="⦳",eH="⟩",tH="⟫",nH="⦒",rH="⦥",oH="⟩",sH="»",iH="⥵",lH="⇥",cH="⤠",aH="⤳",uH="→",fH="↠",dH="⇒",pH="⤞",hH="↪",gH="↬",mH="⥅",vH="⥴",wH="⤖",yH="↣",AH="↝",EH="⤚",xH="⤜",kH="∶",SH="ℚ",CH="⤍",IH="⤏",DH="⤐",RH="❳",bH="}",TH="]",NH="⦌",LH="⦎",PH="⦐",OH="Ř",BH="ř",HH="Ŗ",MH="ŗ",FH="⌉",UH="}",qH="Р",QH="р",jH="⤷",VH="⥩",GH="”",WH="”",YH="↳",XH="ℜ",zH="ℛ",KH="ℜ",ZH="ℝ",JH="ℜ",_H="▭",$H="®",eM="®",tM="∋",nM="⇋",rM="⥯",oM="⥽",sM="⌋",iM="𝔯",lM="ℜ",cM="⥤",aM="⇁",uM="⇀",fM="⥬",dM="Ρ",pM="ρ",hM="ϱ",gM="⟩",mM="⇥",vM="→",wM="→",yM="⇒",AM="⇄",EM="↣",xM="⌉",kM="⟧",SM="⥝",CM="⥕",IM="⇂",DM="⌋",RM="⇁",bM="⇀",TM="⇄",NM="⇌",LM="⇉",PM="↝",OM="↦",BM="⊢",HM="⥛",MM="⋌",FM="⧐",UM="⊳",qM="⊵",QM="⥏",jM="⥜",VM="⥔",GM="↾",WM="⥓",YM="⇀",XM="˚",zM="≓",KM="⇄",ZM="⇌",JM="‏",_M="⎱",$M="⎱",eF="⫮",tF="⟭",nF="⇾",rF="⟧",oF="⦆",sF="𝕣",iF="ℝ",lF="⨮",cF="⨵",aF="⥰",uF=")",fF="⦔",dF="⨒",pF="⇉",hF="⇛",gF="›",mF="𝓇",vF="ℛ",wF="↱",yF="↱",AF="]",EF="’",xF="’",kF="⋌",SF="⋊",CF="▹",IF="⊵",DF="▸",RF="⧎",bF="⧴",TF="⥨",NF="℞",LF="Ś",PF="ś",OF="‚",BF="⪸",HF="Š",MF="š",FF="⪼",UF="≻",qF="≽",QF="⪰",jF="⪴",VF="Ş",GF="ş",WF="Ŝ",YF="ŝ",XF="⪺",zF="⪶",KF="⋩",ZF="⨓",JF="≿",_F="С",$F="с",eU="⊡",tU="⋅",nU="⩦",rU="⤥",oU="↘",sU="⇘",iU="↘",lU="§",cU=";",aU="⤩",uU="∖",fU="∖",dU="✶",pU="𝔖",hU="𝔰",gU="⌢",mU="♯",vU="Щ",wU="щ",yU="Ш",AU="ш",EU="↓",xU="←",kU="∣",SU="∥",CU="→",IU="↑",DU="­",RU="Σ",bU="σ",TU="ς",NU="ς",LU="∼",PU="⩪",OU="≃",BU="≃",HU="⪞",MU="⪠",FU="⪝",UU="⪟",qU="≆",QU="⨤",jU="⥲",VU="←",GU="∘",WU="∖",YU="⨳",XU="⧤",zU="∣",KU="⌣",ZU="⪪",JU="⪬",_U="⪬︀",$U="Ь",eq="ь",tq="⌿",nq="⧄",rq="/",oq="𝕊",sq="𝕤",iq="♠",lq="♠",cq="∥",aq="⊓",uq="⊓︀",fq="⊔",dq="⊔︀",pq="√",hq="⊏",gq="⊑",mq="⊏",vq="⊑",wq="⊐",yq="⊒",Aq="⊐",Eq="⊒",xq="□",kq="□",Sq="⊓",Cq="⊏",Iq="⊑",Dq="⊐",Rq="⊒",bq="⊔",Tq="▪",Nq="□",Lq="▪",Pq="→",Oq="𝒮",Bq="𝓈",Hq="∖",Mq="⌣",Fq="⋆",Uq="⋆",qq="☆",Qq="★",jq="ϵ",Vq="ϕ",Gq="¯",Wq="⊂",Yq="⋐",Xq="⪽",zq="⫅",Kq="⊆",Zq="⫃",Jq="⫁",_q="⫋",$q="⊊",eQ="⪿",tQ="⥹",nQ="⊂",rQ="⋐",oQ="⊆",sQ="⫅",iQ="⊆",lQ="⊊",cQ="⫋",aQ="⫇",uQ="⫕",fQ="⫓",dQ="⪸",pQ="≻",hQ="≽",gQ="≻",mQ="⪰",vQ="≽",wQ="≿",yQ="⪰",AQ="⪺",EQ="⪶",xQ="⋩",kQ="≿",SQ="∋",CQ="∑",IQ="∑",DQ="♪",RQ="¹",bQ="²",TQ="³",NQ="⊃",LQ="⋑",PQ="⪾",OQ="⫘",BQ="⫆",HQ="⊇",MQ="⫄",FQ="⊃",UQ="⊇",qQ="⟉",QQ="⫗",jQ="⥻",VQ="⫂",GQ="⫌",WQ="⊋",YQ="⫀",XQ="⊃",zQ="⋑",KQ="⊇",ZQ="⫆",JQ="⊋",_Q="⫌",$Q="⫈",ej="⫔",tj="⫖",nj="⤦",rj="↙",oj="⇙",sj="↙",ij="⤪",lj="ß",cj="	",aj="⌖",uj="Τ",fj="τ",dj="⎴",pj="Ť",hj="ť",gj="Ţ",mj="ţ",vj="Т",wj="т",yj="⃛",Aj="⌕",Ej="𝔗",xj="𝔱",kj="∴",Sj="∴",Cj="∴",Ij="Θ",Dj="θ",Rj="ϑ",bj="ϑ",Tj="≈",Nj="∼",Lj="  ",Pj=" ",Oj=" ",Bj="≈",Hj="∼",Mj="Þ",Fj="þ",Uj="˜",qj="∼",Qj="≃",jj="≅",Vj="≈",Gj="⨱",Wj="⊠",Yj="×",Xj="⨰",zj="∭",Kj="⤨",Zj="⌶",Jj="⫱",_j="⊤",$j="𝕋",eV="𝕥",tV="⫚",nV="⤩",rV="‴",oV="™",sV="™",iV="▵",lV="▿",cV="◃",aV="⊴",uV="≜",fV="▹",dV="⊵",pV="◬",hV="≜",gV="⨺",mV="⃛",vV="⨹",wV="⧍",yV="⨻",AV="⏢",EV="𝒯",xV="𝓉",kV="Ц",SV="ц",CV="Ћ",IV="ћ",DV="Ŧ",RV="ŧ",bV="≬",TV="↞",NV="↠",LV="Ú",PV="ú",OV="↑",BV="↟",HV="⇑",MV="⥉",FV="Ў",UV="ў",qV="Ŭ",QV="ŭ",jV="Û",VV="û",GV="У",WV="у",YV="⇅",XV="Ű",zV="ű",KV="⥮",ZV="⥾",JV="𝔘",_V="𝔲",$V="Ù",eG="ù",tG="⥣",nG="↿",rG="↾",oG="▀",sG="⌜",iG="⌜",lG="⌏",cG="◸",aG="Ū",uG="ū",fG="¨",dG="_",pG="⏟",hG="⎵",gG="⏝",mG="⋃",vG="⊎",wG="Ų",yG="ų",AG="𝕌",EG="𝕦",xG="⤒",kG="↑",SG="↑",CG="⇑",IG="⇅",DG="↕",RG="↕",bG="⇕",TG="⥮",NG="↿",LG="↾",PG="⊎",OG="↖",BG="↗",HG="υ",MG="ϒ",FG="ϒ",UG="Υ",qG="υ",QG="↥",jG="⊥",VG="⇈",GG="⌝",WG="⌝",YG="⌎",XG="Ů",zG="ů",KG="◹",ZG="𝒰",JG="𝓊",_G="⋰",$G="Ũ",eW="ũ",tW="▵",nW="▴",rW="⇈",oW="Ü",sW="ü",iW="⦧",lW="⦜",cW="ϵ",aW="ϰ",uW="∅",fW="ϕ",dW="ϖ",pW="∝",hW="↕",gW="⇕",mW="ϱ",vW="ς",wW="⊊︀",yW="⫋︀",AW="⊋︀",EW="⫌︀",xW="ϑ",kW="⊲",SW="⊳",CW="⫨",IW="⫫",DW="⫩",RW="В",bW="в",TW="⊢",NW="⊨",LW="⊩",PW="⊫",OW="⫦",BW="⊻",HW="∨",MW="⋁",FW="≚",UW="⋮",qW="|",QW="‖",jW="|",VW="‖",GW="∣",WW="|",YW="❘",XW="≀",zW=" ",KW="𝔙",ZW="𝔳",JW="⊲",_W="⊂⃒",$W="⊃⃒",eY="𝕍",tY="𝕧",nY="∝",rY="⊳",oY="𝒱",sY="𝓋",iY="⫋︀",lY="⊊︀",cY="⫌︀",aY="⊋︀",uY="⊪",fY="⦚",dY="Ŵ",pY="ŵ",hY="⩟",gY="∧",mY="⋀",vY="≙",wY="℘",yY="𝔚",AY="𝔴",EY="𝕎",xY="𝕨",kY="℘",SY="≀",CY="≀",IY="𝒲",DY="𝓌",RY="⋂",bY="◯",TY="⋃",NY="▽",LY="𝔛",PY="𝔵",OY="⟷",BY="⟺",HY="Ξ",MY="ξ",FY="⟵",UY="⟸",qY="⟼",QY="⋻",jY="⨀",VY="𝕏",GY="𝕩",WY="⨁",YY="⨂",XY="⟶",zY="⟹",KY="𝒳",ZY="𝓍",JY="⨆",_Y="⨄",$Y="△",eX="⋁",tX="⋀",nX="Ý",rX="ý",oX="Я",sX="я",iX="Ŷ",lX="ŷ",cX="Ы",aX="ы",uX="¥",fX="𝔜",dX="𝔶",pX="Ї",hX="ї",gX="𝕐",mX="𝕪",vX="𝒴",wX="𝓎",yX="Ю",AX="ю",EX="ÿ",xX="Ÿ",kX="Ź",SX="ź",CX="Ž",IX="ž",DX="З",RX="з",bX="Ż",TX="ż",NX="ℨ",LX="​",PX="Ζ",OX="ζ",BX="𝔷",HX="ℨ",MX="Ж",FX="ж",UX="⇝",qX="𝕫",QX="ℤ",jX="𝒵",VX="𝓏",GX="‍",WX="‌",jp={Aacute:bm,aacute:Tm,Abreve:Nm,abreve:Lm,ac:Pm,acd:Om,acE:Bm,Acirc:Hm,acirc:Mm,acute:Fm,Acy:Um,acy:qm,AElig:Qm,aelig:jm,af:Vm,Afr:Gm,afr:Wm,Agrave:Ym,agrave:Xm,alefsym:zm,aleph:Km,Alpha:Zm,alpha:Jm,Amacr:_m,amacr:$m,amalg:ev,amp:tv,AMP:nv,andand:rv,And:ov,and:sv,andd:iv,andslope:lv,andv:cv,ang:av,ange:uv,angle:fv,angmsdaa:dv,angmsdab:pv,angmsdac:hv,angmsdad:gv,angmsdae:mv,angmsdaf:vv,angmsdag:wv,angmsdah:yv,angmsd:Av,angrt:Ev,angrtvb:xv,angrtvbd:kv,angsph:Sv,angst:Cv,angzarr:Iv,Aogon:Dv,aogon:Rv,Aopf:bv,aopf:Tv,apacir:Nv,ap:Lv,apE:Pv,ape:Ov,apid:Bv,apos:Hv,ApplyFunction:Mv,approx:Fv,approxeq:Uv,Aring:qv,aring:Qv,Ascr:jv,ascr:Vv,Assign:Gv,ast:Wv,asymp:Yv,asympeq:Xv,Atilde:zv,atilde:Kv,Auml:Zv,auml:Jv,awconint:_v,awint:$v,backcong:ew,backepsilon:tw,backprime:nw,backsim:rw,backsimeq:ow,Backslash:sw,Barv:iw,barvee:lw,barwed:cw,Barwed:aw,barwedge:uw,bbrk:fw,bbrktbrk:dw,bcong:pw,Bcy:hw,bcy:gw,bdquo:mw,becaus:vw,because:ww,Because:yw,bemptyv:Aw,bepsi:Ew,bernou:xw,Bernoullis:kw,Beta:Sw,beta:Cw,beth:Iw,between:Dw,Bfr:Rw,bfr:bw,bigcap:Tw,bigcirc:Nw,bigcup:Lw,bigodot:Pw,bigoplus:Ow,bigotimes:Bw,bigsqcup:Hw,bigstar:Mw,bigtriangledown:Fw,bigtriangleup:Uw,biguplus:qw,bigvee:Qw,bigwedge:jw,bkarow:Vw,blacklozenge:Gw,blacksquare:Ww,blacktriangle:Yw,blacktriangledown:Xw,blacktriangleleft:zw,blacktriangleright:Kw,blank:Zw,blk12:Jw,blk14:_w,blk34:$w,block:ey,bne:ty,bnequiv:ny,bNot:ry,bnot:oy,Bopf:sy,bopf:iy,bot:ly,bottom:cy,bowtie:ay,boxbox:uy,boxdl:fy,boxdL:dy,boxDl:py,boxDL:hy,boxdr:gy,boxdR:my,boxDr:vy,boxDR:wy,boxh:yy,boxH:Ay,boxhd:Ey,boxHd:xy,boxhD:ky,boxHD:Sy,boxhu:Cy,boxHu:Iy,boxhU:Dy,boxHU:Ry,boxminus:by,boxplus:Ty,boxtimes:Ny,boxul:Ly,boxuL:Py,boxUl:Oy,boxUL:By,boxur:Hy,boxuR:My,boxUr:Fy,boxUR:Uy,boxv:qy,boxV:Qy,boxvh:jy,boxvH:Vy,boxVh:Gy,boxVH:Wy,boxvl:Yy,boxvL:Xy,boxVl:zy,boxVL:Ky,boxvr:Zy,boxvR:Jy,boxVr:_y,boxVR:$y,bprime:eA,breve:tA,Breve:nA,brvbar:rA,bscr:oA,Bscr:sA,bsemi:iA,bsim:lA,bsime:cA,bsolb:aA,bsol:uA,bsolhsub:fA,bull:dA,bullet:pA,bump:hA,bumpE:gA,bumpe:mA,Bumpeq:vA,bumpeq:wA,Cacute:yA,cacute:AA,capand:EA,capbrcup:xA,capcap:kA,cap:SA,Cap:CA,capcup:IA,capdot:DA,CapitalDifferentialD:RA,caps:bA,caret:TA,caron:NA,Cayleys:LA,ccaps:PA,Ccaron:OA,ccaron:BA,Ccedil:HA,ccedil:MA,Ccirc:FA,ccirc:UA,Cconint:qA,ccups:QA,ccupssm:jA,Cdot:VA,cdot:GA,cedil:WA,Cedilla:YA,cemptyv:XA,cent:zA,centerdot:KA,CenterDot:ZA,cfr:JA,Cfr:_A,CHcy:$A,chcy:e2,check:t2,checkmark:n2,Chi:r2,chi:o2,circ:s2,circeq:i2,circlearrowleft:l2,circlearrowright:c2,circledast:a2,circledcirc:u2,circleddash:f2,CircleDot:d2,circledR:p2,circledS:h2,CircleMinus:g2,CirclePlus:m2,CircleTimes:v2,cir:w2,cirE:y2,cire:A2,cirfnint:E2,cirmid:x2,cirscir:k2,ClockwiseContourIntegral:S2,CloseCurlyDoubleQuote:C2,CloseCurlyQuote:I2,clubs:D2,clubsuit:R2,colon:b2,Colon:T2,Colone:N2,colone:L2,coloneq:P2,comma:O2,commat:B2,comp:H2,compfn:M2,complement:F2,complexes:U2,cong:q2,congdot:Q2,Congruent:j2,conint:V2,Conint:G2,ContourIntegral:W2,copf:Y2,Copf:X2,coprod:z2,Coproduct:K2,copy:Z2,COPY:J2,copysr:_2,CounterClockwiseContourIntegral:$2,crarr:eE,cross:tE,Cross:nE,Cscr:rE,cscr:oE,csub:sE,csube:iE,csup:lE,csupe:cE,ctdot:aE,cudarrl:uE,cudarrr:fE,cuepr:dE,cuesc:pE,cularr:hE,cularrp:gE,cupbrcap:mE,cupcap:vE,CupCap:wE,cup:yE,Cup:AE,cupcup:EE,cupdot:xE,cupor:kE,cups:SE,curarr:CE,curarrm:IE,curlyeqprec:DE,curlyeqsucc:RE,curlyvee:bE,curlywedge:TE,curren:NE,curvearrowleft:LE,curvearrowright:PE,cuvee:OE,cuwed:BE,cwconint:HE,cwint:ME,cylcty:FE,dagger:UE,Dagger:qE,daleth:QE,darr:jE,Darr:VE,dArr:GE,dash:WE,Dashv:YE,dashv:XE,dbkarow:zE,dblac:KE,Dcaron:ZE,dcaron:JE,Dcy:_E,dcy:$E,ddagger:ex,ddarr:tx,DD:nx,dd:rx,DDotrahd:ox,ddotseq:sx,deg:ix,Del:lx,Delta:cx,delta:ax,demptyv:ux,dfisht:fx,Dfr:dx,dfr:px,dHar:hx,dharl:gx,dharr:mx,DiacriticalAcute:vx,DiacriticalDot:wx,DiacriticalDoubleAcute:yx,DiacriticalGrave:Ax,DiacriticalTilde:Ex,diam:xx,diamond:kx,Diamond:Sx,diamondsuit:Cx,diams:Ix,die:Dx,DifferentialD:Rx,digamma:bx,disin:Tx,div:Nx,divide:Lx,divideontimes:Px,divonx:Ox,DJcy:Bx,djcy:Hx,dlcorn:Mx,dlcrop:Fx,dollar:Ux,Dopf:qx,dopf:Qx,Dot:jx,dot:Vx,DotDot:Gx,doteq:Wx,doteqdot:Yx,DotEqual:Xx,dotminus:zx,dotplus:Kx,dotsquare:Zx,doublebarwedge:Jx,DoubleContourIntegral:_x,DoubleDot:$x,DoubleDownArrow:e5,DoubleLeftArrow:t5,DoubleLeftRightArrow:n5,DoubleLeftTee:r5,DoubleLongLeftArrow:o5,DoubleLongLeftRightArrow:s5,DoubleLongRightArrow:i5,DoubleRightArrow:l5,DoubleRightTee:c5,DoubleUpArrow:a5,DoubleUpDownArrow:u5,DoubleVerticalBar:f5,DownArrowBar:d5,downarrow:p5,DownArrow:h5,Downarrow:g5,DownArrowUpArrow:m5,DownBreve:v5,downdownarrows:w5,downharpoonleft:y5,downharpoonright:A5,DownLeftRightVector:E5,DownLeftTeeVector:x5,DownLeftVectorBar:k5,DownLeftVector:S5,DownRightTeeVector:C5,DownRightVectorBar:I5,DownRightVector:D5,DownTeeArrow:R5,DownTee:b5,drbkarow:T5,drcorn:N5,drcrop:L5,Dscr:P5,dscr:O5,DScy:B5,dscy:H5,dsol:M5,Dstrok:F5,dstrok:U5,dtdot:q5,dtri:Q5,dtrif:j5,duarr:V5,duhar:G5,dwangle:W5,DZcy:Y5,dzcy:X5,dzigrarr:z5,Eacute:K5,eacute:Z5,easter:J5,Ecaron:_5,ecaron:$5,Ecirc:e8,ecirc:t8,ecir:n8,ecolon:r8,Ecy:o8,ecy:s8,eDDot:i8,Edot:l8,edot:c8,eDot:a8,ee:u8,efDot:f8,Efr:d8,efr:p8,eg:h8,Egrave:g8,egrave:m8,egs:v8,egsdot:w8,el:y8,Element:A8,elinters:E8,ell:x8,els:k8,elsdot:S8,Emacr:C8,emacr:I8,empty:D8,emptyset:R8,EmptySmallSquare:b8,emptyv:T8,EmptyVerySmallSquare:N8,emsp13:L8,emsp14:P8,emsp:O8,ENG:B8,eng:H8,ensp:M8,Eogon:F8,eogon:U8,Eopf:q8,eopf:Q8,epar:j8,eparsl:V8,eplus:G8,epsi:W8,Epsilon:Y8,epsilon:X8,epsiv:z8,eqcirc:K8,eqcolon:Z8,eqsim:J8,eqslantgtr:_8,eqslantless:$8,Equal:ek,equals:tk,EqualTilde:nk,equest:rk,Equilibrium:ok,equiv:sk,equivDD:ik,eqvparsl:lk,erarr:ck,erDot:ak,escr:uk,Escr:fk,esdot:dk,Esim:pk,esim:hk,Eta:gk,eta:mk,ETH:vk,eth:wk,Euml:yk,euml:Ak,euro:Ek,excl:xk,exist:kk,Exists:Sk,expectation:Ck,exponentiale:Ik,ExponentialE:Dk,fallingdotseq:Rk,Fcy:bk,fcy:Tk,female:Nk,ffilig:Lk,fflig:Pk,ffllig:Ok,Ffr:Bk,ffr:Hk,filig:Mk,FilledSmallSquare:Fk,FilledVerySmallSquare:Uk,fjlig:qk,flat:Qk,fllig:jk,fltns:Vk,fnof:Gk,Fopf:Wk,fopf:Yk,forall:Xk,ForAll:zk,fork:Kk,forkv:Zk,Fouriertrf:Jk,fpartint:_k,frac12:$k,frac13:e3,frac14:t3,frac15:n3,frac16:r3,frac18:o3,frac23:s3,frac25:i3,frac34:l3,frac35:c3,frac38:a3,frac45:u3,frac56:f3,frac58:d3,frac78:p3,frasl:h3,frown:g3,fscr:m3,Fscr:v3,gacute:w3,Gamma:y3,gamma:A3,Gammad:E3,gammad:x3,gap:k3,Gbreve:S3,gbreve:C3,Gcedil:I3,Gcirc:D3,gcirc:R3,Gcy:b3,gcy:T3,Gdot:N3,gdot:L3,ge:P3,gE:O3,gEl:B3,gel:H3,geq:M3,geqq:F3,geqslant:U3,gescc:q3,ges:Q3,gesdot:j3,gesdoto:V3,gesdotol:G3,gesl:W3,gesles:Y3,Gfr:X3,gfr:z3,gg:K3,Gg:Z3,ggg:J3,gimel:_3,GJcy:$3,gjcy:eS,gla:tS,gl:nS,glE:rS,glj:oS,gnap:sS,gnapprox:iS,gne:lS,gnE:cS,gneq:aS,gneqq:uS,gnsim:fS,Gopf:dS,gopf:pS,grave:hS,GreaterEqual:gS,GreaterEqualLess:mS,GreaterFullEqual:vS,GreaterGreater:wS,GreaterLess:yS,GreaterSlantEqual:AS,GreaterTilde:ES,Gscr:xS,gscr:kS,gsim:SS,gsime:CS,gsiml:IS,gtcc:DS,gtcir:RS,gt:bS,GT:TS,Gt:NS,gtdot:LS,gtlPar:PS,gtquest:OS,gtrapprox:BS,gtrarr:HS,gtrdot:MS,gtreqless:FS,gtreqqless:US,gtrless:qS,gtrsim:QS,gvertneqq:jS,gvnE:VS,Hacek:GS,hairsp:WS,half:YS,hamilt:XS,HARDcy:zS,hardcy:KS,harrcir:ZS,harr:JS,hArr:_S,harrw:$S,Hat:eC,hbar:tC,Hcirc:nC,hcirc:rC,hearts:oC,heartsuit:sC,hellip:iC,hercon:lC,hfr:cC,Hfr:aC,HilbertSpace:uC,hksearow:fC,hkswarow:dC,hoarr:pC,homtht:hC,hookleftarrow:gC,hookrightarrow:mC,hopf:vC,Hopf:wC,horbar:yC,HorizontalLine:AC,hscr:EC,Hscr:xC,hslash:kC,Hstrok:SC,hstrok:CC,HumpDownHump:IC,HumpEqual:DC,hybull:RC,hyphen:bC,Iacute:TC,iacute:NC,ic:LC,Icirc:PC,icirc:OC,Icy:BC,icy:HC,Idot:MC,IEcy:FC,iecy:UC,iexcl:qC,iff:QC,ifr:jC,Ifr:VC,Igrave:GC,igrave:WC,ii:YC,iiiint:XC,iiint:zC,iinfin:KC,iiota:ZC,IJlig:JC,ijlig:_C,Imacr:$C,imacr:e4,image:t4,ImaginaryI:n4,imagline:r4,imagpart:o4,imath:s4,Im:i4,imof:l4,imped:c4,Implies:a4,incare:u4,in:"∈",infin:f4,infintie:d4,inodot:p4,intcal:h4,int:g4,Int:m4,integers:v4,Integral:w4,intercal:y4,Intersection:A4,intlarhk:E4,intprod:x4,InvisibleComma:k4,InvisibleTimes:S4,IOcy:C4,iocy:I4,Iogon:D4,iogon:R4,Iopf:b4,iopf:T4,Iota:N4,iota:L4,iprod:P4,iquest:O4,iscr:B4,Iscr:H4,isin:M4,isindot:F4,isinE:U4,isins:q4,isinsv:Q4,isinv:j4,it:V4,Itilde:G4,itilde:W4,Iukcy:Y4,iukcy:X4,Iuml:z4,iuml:K4,Jcirc:Z4,jcirc:J4,Jcy:_4,jcy:$4,Jfr:e7,jfr:t7,jmath:n7,Jopf:r7,jopf:o7,Jscr:s7,jscr:i7,Jsercy:l7,jsercy:c7,Jukcy:a7,jukcy:u7,Kappa:f7,kappa:d7,kappav:p7,Kcedil:h7,kcedil:g7,Kcy:m7,kcy:v7,Kfr:w7,kfr:y7,kgreen:A7,KHcy:E7,khcy:x7,KJcy:k7,kjcy:S7,Kopf:C7,kopf:I7,Kscr:D7,kscr:R7,lAarr:b7,Lacute:T7,lacute:N7,laemptyv:L7,lagran:P7,Lambda:O7,lambda:B7,lang:H7,Lang:M7,langd:F7,langle:U7,lap:q7,Laplacetrf:Q7,laquo:j7,larrb:V7,larrbfs:G7,larr:W7,Larr:Y7,lArr:X7,larrfs:z7,larrhk:K7,larrlp:Z7,larrpl:J7,larrsim:_7,larrtl:$7,latail:eI,lAtail:tI,lat:nI,late:rI,lates:oI,lbarr:sI,lBarr:iI,lbbrk:lI,lbrace:cI,lbrack:aI,lbrke:uI,lbrksld:fI,lbrkslu:dI,Lcaron:pI,lcaron:hI,Lcedil:gI,lcedil:mI,lceil:vI,lcub:wI,Lcy:yI,lcy:AI,ldca:EI,ldquo:xI,ldquor:kI,ldrdhar:SI,ldrushar:CI,ldsh:II,le:DI,lE:RI,LeftAngleBracket:bI,LeftArrowBar:TI,leftarrow:NI,LeftArrow:LI,Leftarrow:PI,LeftArrowRightArrow:OI,leftarrowtail:BI,LeftCeiling:HI,LeftDoubleBracket:MI,LeftDownTeeVector:FI,LeftDownVectorBar:UI,LeftDownVector:qI,LeftFloor:QI,leftharpoondown:jI,leftharpoonup:VI,leftleftarrows:GI,leftrightarrow:WI,LeftRightArrow:YI,Leftrightarrow:XI,leftrightarrows:zI,leftrightharpoons:KI,leftrightsquigarrow:ZI,LeftRightVector:JI,LeftTeeArrow:_I,LeftTee:$I,LeftTeeVector:e6,leftthreetimes:t6,LeftTriangleBar:n6,LeftTriangle:r6,LeftTriangleEqual:o6,LeftUpDownVector:s6,LeftUpTeeVector:i6,LeftUpVectorBar:l6,LeftUpVector:c6,LeftVectorBar:a6,LeftVector:u6,lEg:f6,leg:d6,leq:p6,leqq:h6,leqslant:g6,lescc:m6,les:v6,lesdot:w6,lesdoto:y6,lesdotor:A6,lesg:E6,lesges:x6,lessapprox:k6,lessdot:S6,lesseqgtr:C6,lesseqqgtr:I6,LessEqualGreater:D6,LessFullEqual:R6,LessGreater:b6,lessgtr:T6,LessLess:N6,lesssim:L6,LessSlantEqual:P6,LessTilde:O6,lfisht:B6,lfloor:H6,Lfr:M6,lfr:F6,lg:U6,lgE:q6,lHar:Q6,lhard:j6,lharu:V6,lharul:G6,lhblk:W6,LJcy:Y6,ljcy:X6,llarr:z6,ll:K6,Ll:Z6,llcorner:J6,Lleftarrow:_6,llhard:$6,lltri:eD,Lmidot:tD,lmidot:nD,lmoustache:rD,lmoust:oD,lnap:sD,lnapprox:iD,lne:lD,lnE:cD,lneq:aD,lneqq:uD,lnsim:fD,loang:dD,loarr:pD,lobrk:hD,longleftarrow:gD,LongLeftArrow:mD,Longleftarrow:vD,longleftrightarrow:wD,LongLeftRightArrow:yD,Longleftrightarrow:AD,longmapsto:ED,longrightarrow:xD,LongRightArrow:kD,Longrightarrow:SD,looparrowleft:CD,looparrowright:ID,lopar:DD,Lopf:RD,lopf:bD,loplus:TD,lotimes:ND,lowast:LD,lowbar:PD,LowerLeftArrow:OD,LowerRightArrow:BD,loz:HD,lozenge:MD,lozf:FD,lpar:UD,lparlt:qD,lrarr:QD,lrcorner:jD,lrhar:VD,lrhard:GD,lrm:WD,lrtri:YD,lsaquo:XD,lscr:zD,Lscr:KD,lsh:ZD,Lsh:JD,lsim:_D,lsime:$D,lsimg:eR,lsqb:tR,lsquo:nR,lsquor:rR,Lstrok:oR,lstrok:sR,ltcc:iR,ltcir:lR,lt:cR,LT:aR,Lt:uR,ltdot:fR,lthree:dR,ltimes:pR,ltlarr:hR,ltquest:gR,ltri:mR,ltrie:vR,ltrif:wR,ltrPar:yR,lurdshar:AR,luruhar:ER,lvertneqq:xR,lvnE:kR,macr:SR,male:CR,malt:IR,maltese:DR,Map:"⤅",map:RR,mapsto:bR,mapstodown:TR,mapstoleft:NR,mapstoup:LR,marker:PR,mcomma:OR,Mcy:BR,mcy:HR,mdash:MR,mDDot:FR,measuredangle:UR,MediumSpace:qR,Mellintrf:QR,Mfr:jR,mfr:VR,mho:GR,micro:WR,midast:YR,midcir:XR,mid:zR,middot:KR,minusb:ZR,minus:JR,minusd:_R,minusdu:$R,MinusPlus:eb,mlcp:tb,mldr:nb,mnplus:rb,models:ob,Mopf:sb,mopf:ib,mp:lb,mscr:cb,Mscr:ab,mstpos:ub,Mu:fb,mu:db,multimap:pb,mumap:hb,nabla:gb,Nacute:mb,nacute:vb,nang:wb,nap:yb,napE:Ab,napid:Eb,napos:xb,napprox:kb,natural:Sb,naturals:Cb,natur:Ib,nbsp:Db,nbump:Rb,nbumpe:bb,ncap:Tb,Ncaron:Nb,ncaron:Lb,Ncedil:Pb,ncedil:Ob,ncong:Bb,ncongdot:Hb,ncup:Mb,Ncy:Fb,ncy:Ub,ndash:qb,nearhk:Qb,nearr:jb,neArr:Vb,nearrow:Gb,ne:Wb,nedot:Yb,NegativeMediumSpace:Xb,NegativeThickSpace:zb,NegativeThinSpace:Kb,NegativeVeryThinSpace:Zb,nequiv:Jb,nesear:_b,nesim:$b,NestedGreaterGreater:eT,NestedLessLess:tT,NewLine:nT,nexist:rT,nexists:oT,Nfr:sT,nfr:iT,ngE:lT,nge:cT,ngeq:aT,ngeqq:uT,ngeqslant:fT,nges:dT,nGg:pT,ngsim:hT,nGt:gT,ngt:mT,ngtr:vT,nGtv:wT,nharr:yT,nhArr:AT,nhpar:ET,ni:xT,nis:kT,nisd:ST,niv:CT,NJcy:IT,njcy:DT,nlarr:RT,nlArr:bT,nldr:TT,nlE:NT,nle:LT,nleftarrow:PT,nLeftarrow:OT,nleftrightarrow:BT,nLeftrightarrow:HT,nleq:MT,nleqq:FT,nleqslant:UT,nles:qT,nless:QT,nLl:jT,nlsim:VT,nLt:GT,nlt:WT,nltri:YT,nltrie:XT,nLtv:zT,nmid:KT,NoBreak:ZT,NonBreakingSpace:JT,nopf:_T,Nopf:$T,Not:eN,not:tN,NotCongruent:nN,NotCupCap:rN,NotDoubleVerticalBar:oN,NotElement:sN,NotEqual:iN,NotEqualTilde:lN,NotExists:cN,NotGreater:aN,NotGreaterEqual:uN,NotGreaterFullEqual:fN,NotGreaterGreater:dN,NotGreaterLess:pN,NotGreaterSlantEqual:hN,NotGreaterTilde:gN,NotHumpDownHump:mN,NotHumpEqual:vN,notin:wN,notindot:yN,notinE:AN,notinva:EN,notinvb:xN,notinvc:kN,NotLeftTriangleBar:SN,NotLeftTriangle:CN,NotLeftTriangleEqual:IN,NotLess:DN,NotLessEqual:RN,NotLessGreater:bN,NotLessLess:TN,NotLessSlantEqual:NN,NotLessTilde:LN,NotNestedGreaterGreater:PN,NotNestedLessLess:ON,notni:BN,notniva:HN,notnivb:MN,notnivc:FN,NotPrecedes:UN,NotPrecedesEqual:qN,NotPrecedesSlantEqual:QN,NotReverseElement:jN,NotRightTriangleBar:VN,NotRightTriangle:GN,NotRightTriangleEqual:WN,NotSquareSubset:YN,NotSquareSubsetEqual:XN,NotSquareSuperset:zN,NotSquareSupersetEqual:KN,NotSubset:ZN,NotSubsetEqual:JN,NotSucceeds:_N,NotSucceedsEqual:$N,NotSucceedsSlantEqual:e9,NotSucceedsTilde:t9,NotSuperset:n9,NotSupersetEqual:r9,NotTilde:o9,NotTildeEqual:s9,NotTildeFullEqual:i9,NotTildeTilde:l9,NotVerticalBar:c9,nparallel:a9,npar:u9,nparsl:f9,npart:d9,npolint:p9,npr:h9,nprcue:g9,nprec:m9,npreceq:v9,npre:w9,nrarrc:y9,nrarr:A9,nrArr:E9,nrarrw:x9,nrightarrow:k9,nRightarrow:S9,nrtri:C9,nrtrie:I9,nsc:D9,nsccue:R9,nsce:b9,Nscr:T9,nscr:N9,nshortmid:L9,nshortparallel:P9,nsim:O9,nsime:B9,nsimeq:H9,nsmid:M9,nspar:F9,nsqsube:U9,nsqsupe:q9,nsub:Q9,nsubE:j9,nsube:V9,nsubset:G9,nsubseteq:W9,nsubseteqq:Y9,nsucc:X9,nsucceq:z9,nsup:K9,nsupE:Z9,nsupe:J9,nsupset:_9,nsupseteq:$9,nsupseteqq:eL,ntgl:tL,Ntilde:nL,ntilde:rL,ntlg:oL,ntriangleleft:sL,ntrianglelefteq:iL,ntriangleright:lL,ntrianglerighteq:cL,Nu:aL,nu:uL,num:fL,numero:dL,numsp:pL,nvap:hL,nvdash:gL,nvDash:mL,nVdash:vL,nVDash:wL,nvge:yL,nvgt:AL,nvHarr:EL,nvinfin:xL,nvlArr:kL,nvle:SL,nvlt:CL,nvltrie:IL,nvrArr:DL,nvrtrie:RL,nvsim:bL,nwarhk:TL,nwarr:NL,nwArr:LL,nwarrow:PL,nwnear:OL,Oacute:BL,oacute:HL,oast:ML,Ocirc:FL,ocirc:UL,ocir:qL,Ocy:QL,ocy:jL,odash:VL,Odblac:GL,odblac:WL,odiv:YL,odot:XL,odsold:zL,OElig:KL,oelig:ZL,ofcir:JL,Ofr:_L,ofr:$L,ogon:eP,Ograve:tP,ograve:nP,ogt:rP,ohbar:oP,ohm:sP,oint:iP,olarr:lP,olcir:cP,olcross:aP,oline:uP,olt:fP,Omacr:dP,omacr:pP,Omega:hP,omega:gP,Omicron:mP,omicron:vP,omid:wP,ominus:yP,Oopf:AP,oopf:EP,opar:xP,OpenCurlyDoubleQuote:kP,OpenCurlyQuote:SP,operp:CP,oplus:IP,orarr:DP,Or:RP,or:bP,ord:TP,order:NP,orderof:LP,ordf:PP,ordm:OP,origof:BP,oror:HP,orslope:MP,orv:FP,oS:UP,Oscr:qP,oscr:QP,Oslash:jP,oslash:VP,osol:GP,Otilde:WP,otilde:YP,otimesas:XP,Otimes:zP,otimes:KP,Ouml:ZP,ouml:JP,ovbar:_P,OverBar:$P,OverBrace:eO,OverBracket:tO,OverParenthesis:nO,para:rO,parallel:oO,par:sO,parsim:iO,parsl:lO,part:cO,PartialD:aO,Pcy:uO,pcy:fO,percnt:dO,period:pO,permil:hO,perp:gO,pertenk:mO,Pfr:vO,pfr:wO,Phi:yO,phi:AO,phiv:EO,phmmat:xO,phone:kO,Pi:SO,pi:CO,pitchfork:IO,piv:DO,planck:RO,planckh:bO,plankv:TO,plusacir:NO,plusb:LO,pluscir:PO,plus:OO,plusdo:BO,plusdu:HO,pluse:MO,PlusMinus:FO,plusmn:UO,plussim:qO,plustwo:QO,pm:jO,Poincareplane:VO,pointint:GO,popf:WO,Popf:YO,pound:XO,prap:zO,Pr:KO,pr:ZO,prcue:JO,precapprox:_O,prec:$O,preccurlyeq:eB,Precedes:tB,PrecedesEqual:nB,PrecedesSlantEqual:rB,PrecedesTilde:oB,preceq:sB,precnapprox:iB,precneqq:lB,precnsim:cB,pre:aB,prE:uB,precsim:fB,prime:dB,Prime:pB,primes:hB,prnap:gB,prnE:mB,prnsim:vB,prod:wB,Product:yB,profalar:AB,profline:EB,profsurf:xB,prop:kB,Proportional:SB,Proportion:CB,propto:IB,prsim:DB,prurel:RB,Pscr:bB,pscr:TB,Psi:NB,psi:LB,puncsp:PB,Qfr:OB,qfr:BB,qint:HB,qopf:MB,Qopf:FB,qprime:UB,Qscr:qB,qscr:QB,quaternions:jB,quatint:VB,quest:GB,questeq:WB,quot:YB,QUOT:XB,rAarr:zB,race:KB,Racute:ZB,racute:JB,radic:_B,raemptyv:$B,rang:eH,Rang:tH,rangd:nH,range:rH,rangle:oH,raquo:sH,rarrap:iH,rarrb:lH,rarrbfs:cH,rarrc:aH,rarr:uH,Rarr:fH,rArr:dH,rarrfs:pH,rarrhk:hH,rarrlp:gH,rarrpl:mH,rarrsim:vH,Rarrtl:wH,rarrtl:yH,rarrw:AH,ratail:EH,rAtail:xH,ratio:kH,rationals:SH,rbarr:CH,rBarr:IH,RBarr:DH,rbbrk:RH,rbrace:bH,rbrack:TH,rbrke:NH,rbrksld:LH,rbrkslu:PH,Rcaron:OH,rcaron:BH,Rcedil:HH,rcedil:MH,rceil:FH,rcub:UH,Rcy:qH,rcy:QH,rdca:jH,rdldhar:VH,rdquo:GH,rdquor:WH,rdsh:YH,real:XH,realine:zH,realpart:KH,reals:ZH,Re:JH,rect:_H,reg:$H,REG:eM,ReverseElement:tM,ReverseEquilibrium:nM,ReverseUpEquilibrium:rM,rfisht:oM,rfloor:sM,rfr:iM,Rfr:lM,rHar:cM,rhard:aM,rharu:uM,rharul:fM,Rho:dM,rho:pM,rhov:hM,RightAngleBracket:gM,RightArrowBar:mM,rightarrow:vM,RightArrow:wM,Rightarrow:yM,RightArrowLeftArrow:AM,rightarrowtail:EM,RightCeiling:xM,RightDoubleBracket:kM,RightDownTeeVector:SM,RightDownVectorBar:CM,RightDownVector:IM,RightFloor:DM,rightharpoondown:RM,rightharpoonup:bM,rightleftarrows:TM,rightleftharpoons:NM,rightrightarrows:LM,rightsquigarrow:PM,RightTeeArrow:OM,RightTee:BM,RightTeeVector:HM,rightthreetimes:MM,RightTriangleBar:FM,RightTriangle:UM,RightTriangleEqual:qM,RightUpDownVector:QM,RightUpTeeVector:jM,RightUpVectorBar:VM,RightUpVector:GM,RightVectorBar:WM,RightVector:YM,ring:XM,risingdotseq:zM,rlarr:KM,rlhar:ZM,rlm:JM,rmoustache:_M,rmoust:$M,rnmid:eF,roang:tF,roarr:nF,robrk:rF,ropar:oF,ropf:sF,Ropf:iF,roplus:lF,rotimes:cF,RoundImplies:aF,rpar:uF,rpargt:fF,rppolint:dF,rrarr:pF,Rrightarrow:hF,rsaquo:gF,rscr:mF,Rscr:vF,rsh:wF,Rsh:yF,rsqb:AF,rsquo:EF,rsquor:xF,rthree:kF,rtimes:SF,rtri:CF,rtrie:IF,rtrif:DF,rtriltri:RF,RuleDelayed:bF,ruluhar:TF,rx:NF,Sacute:LF,sacute:PF,sbquo:OF,scap:BF,Scaron:HF,scaron:MF,Sc:FF,sc:UF,sccue:qF,sce:QF,scE:jF,Scedil:VF,scedil:GF,Scirc:WF,scirc:YF,scnap:XF,scnE:zF,scnsim:KF,scpolint:ZF,scsim:JF,Scy:_F,scy:$F,sdotb:eU,sdot:tU,sdote:nU,searhk:rU,searr:oU,seArr:sU,searrow:iU,sect:lU,semi:cU,seswar:aU,setminus:uU,setmn:fU,sext:dU,Sfr:pU,sfr:hU,sfrown:gU,sharp:mU,SHCHcy:vU,shchcy:wU,SHcy:yU,shcy:AU,ShortDownArrow:EU,ShortLeftArrow:xU,shortmid:kU,shortparallel:SU,ShortRightArrow:CU,ShortUpArrow:IU,shy:DU,Sigma:RU,sigma:bU,sigmaf:TU,sigmav:NU,sim:LU,simdot:PU,sime:OU,simeq:BU,simg:HU,simgE:MU,siml:FU,simlE:UU,simne:qU,simplus:QU,simrarr:jU,slarr:VU,SmallCircle:GU,smallsetminus:WU,smashp:YU,smeparsl:XU,smid:zU,smile:KU,smt:ZU,smte:JU,smtes:_U,SOFTcy:$U,softcy:eq,solbar:tq,solb:nq,sol:rq,Sopf:oq,sopf:sq,spades:iq,spadesuit:lq,spar:cq,sqcap:aq,sqcaps:uq,sqcup:fq,sqcups:dq,Sqrt:pq,sqsub:hq,sqsube:gq,sqsubset:mq,sqsubseteq:vq,sqsup:wq,sqsupe:yq,sqsupset:Aq,sqsupseteq:Eq,square:xq,Square:kq,SquareIntersection:Sq,SquareSubset:Cq,SquareSubsetEqual:Iq,SquareSuperset:Dq,SquareSupersetEqual:Rq,SquareUnion:bq,squarf:Tq,squ:Nq,squf:Lq,srarr:Pq,Sscr:Oq,sscr:Bq,ssetmn:Hq,ssmile:Mq,sstarf:Fq,Star:Uq,star:qq,starf:Qq,straightepsilon:jq,straightphi:Vq,strns:Gq,sub:Wq,Sub:Yq,subdot:Xq,subE:zq,sube:Kq,subedot:Zq,submult:Jq,subnE:_q,subne:$q,subplus:eQ,subrarr:tQ,subset:nQ,Subset:rQ,subseteq:oQ,subseteqq:sQ,SubsetEqual:iQ,subsetneq:lQ,subsetneqq:cQ,subsim:aQ,subsub:uQ,subsup:fQ,succapprox:dQ,succ:pQ,succcurlyeq:hQ,Succeeds:gQ,SucceedsEqual:mQ,SucceedsSlantEqual:vQ,SucceedsTilde:wQ,succeq:yQ,succnapprox:AQ,succneqq:EQ,succnsim:xQ,succsim:kQ,SuchThat:SQ,sum:CQ,Sum:IQ,sung:DQ,sup1:RQ,sup2:bQ,sup3:TQ,sup:NQ,Sup:LQ,supdot:PQ,supdsub:OQ,supE:BQ,supe:HQ,supedot:MQ,Superset:FQ,SupersetEqual:UQ,suphsol:qQ,suphsub:QQ,suplarr:jQ,supmult:VQ,supnE:GQ,supne:WQ,supplus:YQ,supset:XQ,Supset:zQ,supseteq:KQ,supseteqq:ZQ,supsetneq:JQ,supsetneqq:_Q,supsim:$Q,supsub:ej,supsup:tj,swarhk:nj,swarr:rj,swArr:oj,swarrow:sj,swnwar:ij,szlig:lj,Tab:cj,target:aj,Tau:uj,tau:fj,tbrk:dj,Tcaron:pj,tcaron:hj,Tcedil:gj,tcedil:mj,Tcy:vj,tcy:wj,tdot:yj,telrec:Aj,Tfr:Ej,tfr:xj,there4:kj,therefore:Sj,Therefore:Cj,Theta:Ij,theta:Dj,thetasym:Rj,thetav:bj,thickapprox:Tj,thicksim:Nj,ThickSpace:Lj,ThinSpace:Pj,thinsp:Oj,thkap:Bj,thksim:Hj,THORN:Mj,thorn:Fj,tilde:Uj,Tilde:qj,TildeEqual:Qj,TildeFullEqual:jj,TildeTilde:Vj,timesbar:Gj,timesb:Wj,times:Yj,timesd:Xj,tint:zj,toea:Kj,topbot:Zj,topcir:Jj,top:_j,Topf:$j,topf:eV,topfork:tV,tosa:nV,tprime:rV,trade:oV,TRADE:sV,triangle:iV,triangledown:lV,triangleleft:cV,trianglelefteq:aV,triangleq:uV,triangleright:fV,trianglerighteq:dV,tridot:pV,trie:hV,triminus:gV,TripleDot:mV,triplus:vV,trisb:wV,tritime:yV,trpezium:AV,Tscr:EV,tscr:xV,TScy:kV,tscy:SV,TSHcy:CV,tshcy:IV,Tstrok:DV,tstrok:RV,twixt:bV,twoheadleftarrow:TV,twoheadrightarrow:NV,Uacute:LV,uacute:PV,uarr:OV,Uarr:BV,uArr:HV,Uarrocir:MV,Ubrcy:FV,ubrcy:UV,Ubreve:qV,ubreve:QV,Ucirc:jV,ucirc:VV,Ucy:GV,ucy:WV,udarr:YV,Udblac:XV,udblac:zV,udhar:KV,ufisht:ZV,Ufr:JV,ufr:_V,Ugrave:$V,ugrave:eG,uHar:tG,uharl:nG,uharr:rG,uhblk:oG,ulcorn:sG,ulcorner:iG,ulcrop:lG,ultri:cG,Umacr:aG,umacr:uG,uml:fG,UnderBar:dG,UnderBrace:pG,UnderBracket:hG,UnderParenthesis:gG,Union:mG,UnionPlus:vG,Uogon:wG,uogon:yG,Uopf:AG,uopf:EG,UpArrowBar:xG,uparrow:kG,UpArrow:SG,Uparrow:CG,UpArrowDownArrow:IG,updownarrow:DG,UpDownArrow:RG,Updownarrow:bG,UpEquilibrium:TG,upharpoonleft:NG,upharpoonright:LG,uplus:PG,UpperLeftArrow:OG,UpperRightArrow:BG,upsi:HG,Upsi:MG,upsih:FG,Upsilon:UG,upsilon:qG,UpTeeArrow:QG,UpTee:jG,upuparrows:VG,urcorn:GG,urcorner:WG,urcrop:YG,Uring:XG,uring:zG,urtri:KG,Uscr:ZG,uscr:JG,utdot:_G,Utilde:$G,utilde:eW,utri:tW,utrif:nW,uuarr:rW,Uuml:oW,uuml:sW,uwangle:iW,vangrt:lW,varepsilon:cW,varkappa:aW,varnothing:uW,varphi:fW,varpi:dW,varpropto:pW,varr:hW,vArr:gW,varrho:mW,varsigma:vW,varsubsetneq:wW,varsubsetneqq:yW,varsupsetneq:AW,varsupsetneqq:EW,vartheta:xW,vartriangleleft:kW,vartriangleright:SW,vBar:CW,Vbar:IW,vBarv:DW,Vcy:RW,vcy:bW,vdash:TW,vDash:NW,Vdash:LW,VDash:PW,Vdashl:OW,veebar:BW,vee:HW,Vee:MW,veeeq:FW,vellip:UW,verbar:qW,Verbar:QW,vert:jW,Vert:VW,VerticalBar:GW,VerticalLine:WW,VerticalSeparator:YW,VerticalTilde:XW,VeryThinSpace:zW,Vfr:KW,vfr:ZW,vltri:JW,vnsub:_W,vnsup:$W,Vopf:eY,vopf:tY,vprop:nY,vrtri:rY,Vscr:oY,vscr:sY,vsubnE:iY,vsubne:lY,vsupnE:cY,vsupne:aY,Vvdash:uY,vzigzag:fY,Wcirc:dY,wcirc:pY,wedbar:hY,wedge:gY,Wedge:mY,wedgeq:vY,weierp:wY,Wfr:yY,wfr:AY,Wopf:EY,wopf:xY,wp:kY,wr:SY,wreath:CY,Wscr:IY,wscr:DY,xcap:RY,xcirc:bY,xcup:TY,xdtri:NY,Xfr:LY,xfr:PY,xharr:OY,xhArr:BY,Xi:HY,xi:MY,xlarr:FY,xlArr:UY,xmap:qY,xnis:QY,xodot:jY,Xopf:VY,xopf:GY,xoplus:WY,xotime:YY,xrarr:XY,xrArr:zY,Xscr:KY,xscr:ZY,xsqcup:JY,xuplus:_Y,xutri:$Y,xvee:eX,xwedge:tX,Yacute:nX,yacute:rX,YAcy:oX,yacy:sX,Ycirc:iX,ycirc:lX,Ycy:cX,ycy:aX,yen:uX,Yfr:fX,yfr:dX,YIcy:pX,yicy:hX,Yopf:gX,yopf:mX,Yscr:vX,yscr:wX,YUcy:yX,yucy:AX,yuml:EX,Yuml:xX,Zacute:kX,zacute:SX,Zcaron:CX,zcaron:IX,Zcy:DX,zcy:RX,Zdot:bX,zdot:TX,zeetrf:NX,ZeroWidthSpace:LX,Zeta:PX,zeta:OX,zfr:BX,Zfr:HX,ZHcy:MX,zhcy:FX,zigrarr:UX,zopf:qX,Zopf:QX,Zscr:jX,zscr:VX,zwj:GX,zwnj:WX},YX="Á",XX="á",zX="Â",KX="â",ZX="´",JX="Æ",_X="æ",$X="À",ez="à",tz="&",nz="&",rz="Å",oz="å",sz="Ã",iz="ã",lz="Ä",cz="ä",az="¦",uz="Ç",fz="ç",dz="¸",pz="¢",hz="©",gz="©",mz="¤",vz="°",wz="÷",yz="É",Az="é",Ez="Ê",xz="ê",kz="È",Sz="è",Cz="Ð",Iz="ð",Dz="Ë",Rz="ë",bz="½",Tz="¼",Nz="¾",Lz=">",Pz=">",Oz="Í",Bz="í",Hz="Î",Mz="î",Fz="¡",Uz="Ì",qz="ì",Qz="¿",jz="Ï",Vz="ï",Gz="«",Wz="<",Yz="<",Xz="¯",zz="µ",Kz="·",Zz=" ",Jz="¬",_z="Ñ",$z="ñ",eK="Ó",tK="ó",nK="Ô",rK="ô",oK="Ò",sK="ò",iK="ª",lK="º",cK="Ø",aK="ø",uK="Õ",fK="õ",dK="Ö",pK="ö",hK="¶",gK="±",mK="£",vK='"',wK='"',yK="»",AK="®",EK="®",xK="§",kK="­",SK="¹",CK="²",IK="³",DK="ß",RK="Þ",bK="þ",TK="×",NK="Ú",LK="ú",PK="Û",OK="û",BK="Ù",HK="ù",MK="¨",FK="Ü",UK="ü",qK="Ý",QK="ý",jK="¥",VK="ÿ",GK={Aacute:YX,aacute:XX,Acirc:zX,acirc:KX,acute:ZX,AElig:JX,aelig:_X,Agrave:$X,agrave:ez,amp:tz,AMP:nz,Aring:rz,aring:oz,Atilde:sz,atilde:iz,Auml:lz,auml:cz,brvbar:az,Ccedil:uz,ccedil:fz,cedil:dz,cent:pz,copy:hz,COPY:gz,curren:mz,deg:vz,divide:wz,Eacute:yz,eacute:Az,Ecirc:Ez,ecirc:xz,Egrave:kz,egrave:Sz,ETH:Cz,eth:Iz,Euml:Dz,euml:Rz,frac12:bz,frac14:Tz,frac34:Nz,gt:Lz,GT:Pz,Iacute:Oz,iacute:Bz,Icirc:Hz,icirc:Mz,iexcl:Fz,Igrave:Uz,igrave:qz,iquest:Qz,Iuml:jz,iuml:Vz,laquo:Gz,lt:Wz,LT:Yz,macr:Xz,micro:zz,middot:Kz,nbsp:Zz,not:Jz,Ntilde:_z,ntilde:$z,Oacute:eK,oacute:tK,Ocirc:nK,ocirc:rK,Ograve:oK,ograve:sK,ordf:iK,ordm:lK,Oslash:cK,oslash:aK,Otilde:uK,otilde:fK,Ouml:dK,ouml:pK,para:hK,plusmn:gK,pound:mK,quot:vK,QUOT:wK,raquo:yK,reg:AK,REG:EK,sect:xK,shy:kK,sup1:SK,sup2:CK,sup3:IK,szlig:DK,THORN:RK,thorn:bK,times:TK,Uacute:NK,uacute:LK,Ucirc:PK,ucirc:OK,Ugrave:BK,ugrave:HK,uml:MK,Uuml:FK,uuml:UK,Yacute:qK,yacute:QK,yen:jK,yuml:VK},WK="&",YK="'",XK=">",zK="<",KK='"',Vp={amp:WK,apos:YK,gt:XK,lt:zK,quot:KK};var dc={};const ZK={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};var JK=qn&&qn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(dc,"__esModule",{value:!0});var mu=JK(ZK),_K=String.fromCodePoint||function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function $K(e){return e>=55296&&e<=57343||e>1114111?"�":(e in mu.default&&(e=mu.default[e]),_K(e))}dc.default=$K;var ks=qn&&qn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(vt,"__esModule",{value:!0});vt.decodeHTML=vt.decodeHTMLStrict=vt.decodeXML=void 0;var cl=ks(jp),eZ=ks(GK),tZ=ks(Vp),vu=ks(dc),nZ=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;vt.decodeXML=Gp(tZ.default);vt.decodeHTMLStrict=Gp(cl.default);function Gp(e){var t=Wp(e);return function(n){return String(n).replace(nZ,t)}}var wu=function(e,t){return e<t?1:-1};vt.decodeHTML=function(){for(var e=Object.keys(eZ.default).sort(wu),t=Object.keys(cl.default).sort(wu),n=0,r=0;n<t.length;n++)e[r]===t[n]?(t[n]+=";?",r++):t[n]+=";";var o=new RegExp("&(?:"+t.join("|")+"|#[xX][\\da-fA-F]+;?|#\\d+;?)","g"),s=Wp(cl.default);function i(l){return l.substr(-1)!==";"&&(l+=";"),s(l)}return function(l){return String(l).replace(o,i)}}();function Wp(e){return function(n){if(n.charAt(1)==="#"){var r=n.charAt(2);return r==="X"||r==="x"?vu.default(parseInt(n.substr(3),16)):vu.default(parseInt(n.substr(2),10))}return e[n.slice(1,-1)]||n}}var Be={},Yp=qn&&qn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Be,"__esModule",{value:!0});Be.escapeUTF8=Be.escape=Be.encodeNonAsciiHTML=Be.encodeHTML=Be.encodeXML=void 0;var rZ=Yp(Vp),Xp=Kp(rZ.default),zp=Zp(Xp);Be.encodeXML=$p(Xp);var oZ=Yp(jp),pc=Kp(oZ.default),sZ=Zp(pc);Be.encodeHTML=lZ(pc,sZ);Be.encodeNonAsciiHTML=$p(pc);function Kp(e){return Object.keys(e).sort().reduce(function(t,n){return t[e[n]]="&"+n+";",t},{})}function Zp(e){for(var t=[],n=[],r=0,o=Object.keys(e);r<o.length;r++){var s=o[r];s.length===1?t.push("\\"+s):n.push(s)}t.sort();for(var i=0;i<t.length-1;i++){for(var l=i;l<t.length-1&&t[l].charCodeAt(1)+1===t[l+1].charCodeAt(1);)l+=1;var c=1+l-i;c<3||t.splice(i,c,t[i]+"-"+t[l])}return n.unshift("["+t.join("")+"]"),new RegExp(n.join("|"),"g")}var Jp=/(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g,iZ=String.prototype.codePointAt!=null?function(e){return e.codePointAt(0)}:function(e){return(e.charCodeAt(0)-55296)*1024+e.charCodeAt(1)-56320+65536};function Ss(e){return"&#x"+(e.length>1?iZ(e):e.charCodeAt(0)).toString(16).toUpperCase()+";"}function lZ(e,t){return function(n){return n.replace(t,function(r){return e[r]}).replace(Jp,Ss)}}var _p=new RegExp(zp.source+"|"+Jp.source,"g");function cZ(e){return e.replace(_p,Ss)}Be.escape=cZ;function aZ(e){return e.replace(zp,Ss)}Be.escapeUTF8=aZ;function $p(e){return function(t){return t.replace(_p,function(n){return e[n]||Ss(n)})}}(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.decodeXMLStrict=e.decodeHTML5Strict=e.decodeHTML4Strict=e.decodeHTML5=e.decodeHTML4=e.decodeHTMLStrict=e.decodeHTML=e.decodeXML=e.encodeHTML5=e.encodeHTML4=e.escapeUTF8=e.escape=e.encodeNonAsciiHTML=e.encodeHTML=e.encodeXML=e.encode=e.decodeStrict=e.decode=void 0;var t=vt,n=Be;function r(c,u){return(!u||u<=0?t.decodeXML:t.decodeHTML)(c)}e.decode=r;function o(c,u){return(!u||u<=0?t.decodeXML:t.decodeHTMLStrict)(c)}e.decodeStrict=o;function s(c,u){return(!u||u<=0?n.encodeXML:n.encodeHTML)(c)}e.encode=s;var i=Be;Object.defineProperty(e,"encodeXML",{enumerable:!0,get:function(){return i.encodeXML}}),Object.defineProperty(e,"encodeHTML",{enumerable:!0,get:function(){return i.encodeHTML}}),Object.defineProperty(e,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return i.encodeNonAsciiHTML}}),Object.defineProperty(e,"escape",{enumerable:!0,get:function(){return i.escape}}),Object.defineProperty(e,"escapeUTF8",{enumerable:!0,get:function(){return i.escapeUTF8}}),Object.defineProperty(e,"encodeHTML4",{enumerable:!0,get:function(){return i.encodeHTML}}),Object.defineProperty(e,"encodeHTML5",{enumerable:!0,get:function(){return i.encodeHTML}});var l=vt;Object.defineProperty(e,"decodeXML",{enumerable:!0,get:function(){return l.decodeXML}}),Object.defineProperty(e,"decodeHTML",{enumerable:!0,get:function(){return l.decodeHTML}}),Object.defineProperty(e,"decodeHTMLStrict",{enumerable:!0,get:function(){return l.decodeHTMLStrict}}),Object.defineProperty(e,"decodeHTML4",{enumerable:!0,get:function(){return l.decodeHTML}}),Object.defineProperty(e,"decodeHTML5",{enumerable:!0,get:function(){return l.decodeHTML}}),Object.defineProperty(e,"decodeHTML4Strict",{enumerable:!0,get:function(){return l.decodeHTMLStrict}}),Object.defineProperty(e,"decodeHTML5Strict",{enumerable:!0,get:function(){return l.decodeHTMLStrict}}),Object.defineProperty(e,"decodeXMLStrict",{enumerable:!0,get:function(){return l.decodeXML}})})(Qp);function uZ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function yu(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function fZ(e,t,n){return t&&yu(e.prototype,t),n&&yu(e,n),e}function e0(e,t){var n=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=dZ(e))||t&&e&&typeof e.length=="number"){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s=!0,i=!1,l;return{s:function(){n=n.call(e)},n:function(){var u=n.next();return s=u.done,u},e:function(u){i=!0,l=u},f:function(){try{!s&&n.return!=null&&n.return()}finally{if(i)throw l}}}}function dZ(e,t){if(e){if(typeof e=="string")return Au(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Au(e,t)}}function Au(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var pZ=Qp,Eu={fg:"#FFF",bg:"#000",newline:!1,escapeXML:!1,stream:!1,colors:hZ()};function hZ(){var e={0:"#000",1:"#A00",2:"#0A0",3:"#A50",4:"#00A",5:"#A0A",6:"#0AA",7:"#AAA",8:"#555",9:"#F55",10:"#5F5",11:"#FF5",12:"#55F",13:"#F5F",14:"#5FF",15:"#FFF"};return mo(0,5).forEach(function(t){mo(0,5).forEach(function(n){mo(0,5).forEach(function(r){return gZ(t,n,r,e)})})}),mo(0,23).forEach(function(t){var n=t+232,r=t0(t*10+8);e[n]="#"+r+r+r}),e}function gZ(e,t,n,r){var o=16+e*36+t*6+n,s=e>0?e*40+55:0,i=t>0?t*40+55:0,l=n>0?n*40+55:0;r[o]=mZ([s,i,l])}function t0(e){for(var t=e.toString(16);t.length<2;)t="0"+t;return t}function mZ(e){var t=[],n=e0(e),r;try{for(n.s();!(r=n.n()).done;){var o=r.value;t.push(t0(o))}}catch(s){n.e(s)}finally{n.f()}return"#"+t.join("")}function xu(e,t,n,r){var o;return t==="text"?o=AZ(n,r):t==="display"?o=wZ(e,n,r):t==="xterm256Foreground"?o=Lo(e,r.colors[n]):t==="xterm256Background"?o=Po(e,r.colors[n]):t==="rgb"&&(o=vZ(e,n)),o}function vZ(e,t){t=t.substring(2).slice(0,-1);var n=+t.substr(0,2),r=t.substring(5).split(";"),o=r.map(function(s){return("0"+Number(s).toString(16)).substr(-2)}).join("");return No(e,(n===38?"color:#":"background-color:#")+o)}function wZ(e,t,n){t=parseInt(t,10);var r={"-1":function(){return"<br/>"},0:function(){return e.length&&n0(e)},1:function(){return Lt(e,"b")},3:function(){return Lt(e,"i")},4:function(){return Lt(e,"u")},8:function(){return No(e,"display:none")},9:function(){return Lt(e,"strike")},22:function(){return No(e,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return Su(e,"i")},24:function(){return Su(e,"u")},39:function(){return Lo(e,n.fg)},49:function(){return Po(e,n.bg)},53:function(){return No(e,"text-decoration:overline")}},o;return r[t]?o=r[t]():4<t&&t<7?o=Lt(e,"blink"):29<t&&t<38?o=Lo(e,n.colors[t-30]):39<t&&t<48?o=Po(e,n.colors[t-40]):89<t&&t<98?o=Lo(e,n.colors[8+(t-90)]):99<t&&t<108&&(o=Po(e,n.colors[8+(t-100)])),o}function n0(e){var t=e.slice(0);return e.length=0,t.reverse().map(function(n){return"</"+n+">"}).join("")}function mo(e,t){for(var n=[],r=e;r<=t;r++)n.push(r);return n}function yZ(e){return function(t){return(e===null||t.category!==e)&&e!=="all"}}function ku(e){e=parseInt(e,10);var t=null;return e===0?t="all":e===1?t="bold":2<e&&e<5?t="underline":4<e&&e<7?t="blink":e===8?t="hide":e===9?t="strike":29<e&&e<38||e===39||89<e&&e<98?t="foreground-color":(39<e&&e<48||e===49||99<e&&e<108)&&(t="background-color"),t}function AZ(e,t){return t.escapeXML?pZ.encodeXML(e):e}function Lt(e,t,n){return n||(n=""),e.push(t),"<".concat(t).concat(n?' style="'.concat(n,'"'):"",">")}function No(e,t){return Lt(e,"span",t)}function Lo(e,t){return Lt(e,"span","color:"+t)}function Po(e,t){return Lt(e,"span","background-color:"+t)}function Su(e,t){var n;if(e.slice(-1)[0]===t&&(n=e.pop()),n)return"</"+t+">"}function EZ(e,t,n){var r=!1,o=3;function s(){return""}function i(k,w){return n("xterm256Foreground",w),""}function l(k,w){return n("xterm256Background",w),""}function c(k){return t.newline?n("display",-1):n("text",k),""}function u(k,w){r=!0,w.trim().length===0&&(w="0"),w=w.trimRight(";").split(";");var x=e0(w),S;try{for(x.s();!(S=x.n()).done;){var D=S.value;n("display",D)}}catch(I){x.e(I)}finally{x.f()}return""}function p(k){return n("text",k),""}function v(k){return n("rgb",k),""}var h=[{pattern:/^\x08+/,sub:s},{pattern:/^\x1b\[[012]?K/,sub:s},{pattern:/^\x1b\[\(B/,sub:s},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:v},{pattern:/^\x1b\[38;5;(\d+)m/,sub:i},{pattern:/^\x1b\[48;5;(\d+)m/,sub:l},{pattern:/^\n/,sub:c},{pattern:/^\r+\n/,sub:c},{pattern:/^\r/,sub:c},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:u},{pattern:/^\x1b\[\d?J/,sub:s},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:s},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:s},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:p}];function C(k,w){w>o&&r||(r=!1,e=e.replace(k.pattern,k.sub))}var E=[],g=e,m=g.length;e:for(;m>0;){for(var a=0,f=0,d=h.length;f<d;a=++f){var y=h[a];if(C(y,a),e.length!==m){m=e.length;continue e}}if(e.length===m)break;E.push(0),m=e.length}return E}function xZ(e,t,n){return t!=="text"&&(e=e.filter(yZ(ku(n))),e.push({token:t,data:n,category:ku(n)})),e}var kZ=function(){function e(t){uZ(this,e),t=t||{},t.colors&&(t.colors=Object.assign({},Eu.colors,t.colors)),this.options=Object.assign({},Eu,t),this.stack=[],this.stickyStack=[]}return fZ(e,[{key:"toHtml",value:function(n){var r=this;n=typeof n=="string"?[n]:n;var o=this.stack,s=this.options,i=[];return this.stickyStack.forEach(function(l){var c=xu(o,l.token,l.data,s);c&&i.push(c)}),EZ(n.join(""),s,function(l,c){var u=xu(o,l,c,s);u&&i.push(u),s.stream&&(r.stickyStack=xZ(r.stickyStack,l,c))}),o.length&&i.push(n0(o)),i.join("")}}]),e}(),SZ=kZ;const CZ=l0(SZ);function Cs(e){if(!isFinite(e))return"-";if(e===0)return"0";if(e<1e3)return e.toFixed(0)+"ms";const t=e/1e3;if(t<60)return t.toFixed(1)+"s";const n=t/60;if(n<60)return n.toFixed(1)+"m";const r=n/60;return r<24?r.toFixed(1)+"h":(r/24).toFixed(1)+"d"}const IZ="data:image/png;base64,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";const DZ=({imageDiff:e})=>{const[t,n]=Q.useState("diff"),r=Q.useRef(null),o=Q.useRef(null),[s,i]=Q.useState(0),l=u=>{if(r.current&&(r.current.style.minHeight=r.current.offsetHeight+"px"),u&&r.current&&o.current){const p=Math.max(0,(r.current.offsetWidth-o.current.offsetWidth)/2-20);u==="left"?i(p):u==="right"&&i(r.current.offsetWidth-p)}},c=[];return e.diff?(c.push({id:"diff",title:"Diff",render:()=>A(_t,{src:e.diff.attachment.path,onLoad:()=>l()})}),c.push({id:"actual",title:"Actual",render:()=>O(Cu,{sliderPosition:s,setSliderPosition:i,children:[A(_t,{src:e.expected.attachment.path,onLoad:()=>l("right"),imageRef:o,style:{boxShadow:"none"}}),A(_t,{src:e.actual.attachment.path})]})}),c.push({id:"expected",title:e.expected.title,render:()=>O(Cu,{sliderPosition:s,setSliderPosition:i,children:[A(_t,{src:e.expected.attachment.path,onLoad:()=>l("left"),imageRef:o}),A(_t,{src:e.actual.attachment.path,style:{boxShadow:"none"}})]})})):(c.push({id:"actual",title:"Actual",render:()=>A(_t,{src:e.actual.attachment.path,onLoad:()=>l()})}),c.push({id:"expected",title:e.expected.title,render:()=>A(_t,{src:e.expected.attachment.path,onLoad:()=>l()})})),O("div",{className:"vbox image-diff-view","data-testid":"test-result-image-mismatch",ref:r,children:[A(qp,{tabs:c,selectedTab:t,setSelectedTab:n}),e.diff&&A(rn,{attachment:e.diff.attachment}),A(rn,{attachment:e.actual.attachment}),A(rn,{attachment:e.expected.attachment})]})},Cu=({children:e,sliderPosition:t,setSliderPosition:n})=>{const[r,o]=Q.useState(null),s=t,i=Q.Children.toArray(e);document.body.style.userSelect=r?"none":"inherit";const l={...vo,zIndex:100,cursor:"ew-resize",left:r?0:s-4,right:r?0:void 0,width:r?"initial":8};return O(dn,{children:[i[0],O("div",{style:{...vo},children:[A("div",{style:{...vo,display:"flex",zIndex:50,clip:`rect(0, ${s}px, auto, 0)`,backgroundColor:"var(--color-canvas-default)"},children:i[1]}),A("div",{style:l,onMouseDown:c=>o({offset:c.clientX,size:s}),onMouseUp:()=>o(null),onMouseMove:c=>{if(!c.buttons)o(null);else if(r){const p=c.clientX-r.offset,v=r.size+p,C=c.target.parentElement.getBoundingClientRect(),E=Math.min(Math.max(0,v),C.width);n(E)}}}),O("div",{"data-testid":"test-result-image-mismatch-grip",style:{...vo,left:s-1,width:20,zIndex:80,margin:"10px -10px",pointerEvents:"none",display:"flex"},children:[A("div",{style:{position:"absolute",top:0,bottom:0,left:9,width:2,backgroundColor:"var(--color-diff-blob-expander-icon)"}}),O("svg",{style:{fill:"var(--color-diff-blob-expander-icon)"},viewBox:"0 0 27 20",children:[A("path",{d:"M9.6 0L0 9.6l9.6 9.6z"}),A("path",{d:"M17 19.2l9.5-9.6L16.9 0z"})]})]})]})]})},_t=({src:e,onLoad:t,imageRef:n,style:r})=>{const o=Q.useRef(null),s=n??o,[i,l]=Q.useState(null);return O("div",{className:"image-wrapper",children:[O("div",{children:[A("span",{style:{flex:"1 1 0",textAlign:"end"},children:i?i.width:""}),A("span",{style:{flex:"none",margin:"0 5px"},children:"x"}),A("span",{style:{flex:"1 1 0",textAlign:"start"},children:i?i.height:""})]}),A("img",{src:e,onLoad:()=>{t==null||t(),s.current&&l({width:s.current.naturalWidth,height:s.current.naturalHeight})},ref:s,style:r})]})},vo={position:"absolute",top:0,right:0,bottom:0,left:0};function RZ(e){var n;const t=new Map;for(const r of e){const o=r.name.match(/^(.*)-(expected|actual|diff|previous)(\.[^.]+)?$/);if(!o)continue;const[,s,i,l=""]=o,c=s+l;let u=t.get(c);u||(u={name:c},t.set(c,u)),i==="actual"&&(u.actual={attachment:r}),i==="expected"&&(u.expected={attachment:r,title:"Expected"}),i==="previous"&&(u.expected={attachment:r,title:"Previous"}),i==="diff"&&(u.diff={attachment:r})}for(const[r,o]of t)!o.actual||!o.expected?t.delete(r):(e.delete(o.actual.attachment),e.delete(o.expected.attachment),e.delete((n=o.diff)==null?void 0:n.attachment));return[...t.values()]}const bZ=({result:e,anchor:t})=>{const{screenshots:n,videos:r,traces:o,otherAttachments:s,diffs:i}=Q.useMemo(()=>{const v=(e==null?void 0:e.attachments)||[],h=new Set(v.filter(a=>a.contentType.startsWith("image/"))),C=v.filter(a=>a.name==="video"),E=v.filter(a=>a.name==="trace"),g=new Set(v);[...h,...C,...E].forEach(a=>g.delete(a));const m=RZ(h);return{screenshots:[...h],videos:C,traces:E,otherAttachments:g,diffs:m}},[e]),l=Q.useRef(null),c=Q.useRef(null),[u,p]=Q.useState(!1);return Q.useEffect(()=>{var v,h;u||(p(!0),t==="video"&&((v=l.current)==null||v.scrollIntoView({block:"start",inline:"start"})),t==="diff"&&((h=c.current)==null||h.scrollIntoView({block:"start",inline:"start"})))},[u,t,p,l]),O("div",{className:"test-result",children:[!!e.errors.length&&A(ot,{header:"Errors",children:e.errors.map((v,h)=>A(o0,{error:v},"test-result-error-message-"+h))}),!!e.steps.length&&A(ot,{header:"Test Steps",children:e.steps.map((v,h)=>A(r0,{step:v,depth:0},`step-${h}`))}),i.map((v,h)=>A(ot,{header:`Image mismatch: ${v.name}`,targetRef:c,children:A(DZ,{imageDiff:v},"image-diff")},`diff-${h}`)),!!n.length&&A(ot,{header:"Screenshots",children:n.map((v,h)=>O("div",{children:[A("img",{src:v.path}),A(rn,{attachment:v})]},`screenshot-${h}`))}),!!o.length&&A(ot,{header:"Traces",children:O("div",{children:[A("a",{href:Fp(o),children:A("img",{src:IZ,style:{width:192,height:117,marginLeft:20}})}),o.map((v,h)=>A(rn,{attachment:v,linkName:o.length===1?"trace":`trace-${h+1}`},`trace-${h}`))]})}),!!r.length&&A(ot,{header:"Videos",targetRef:l,children:r.map((v,h)=>O("div",{children:[A("video",{controls:!0,children:A("source",{src:v.path,type:v.contentType})}),A(rn,{attachment:v})]},`video-${h}`))}),!!s.size&&A(ot,{header:"Attachments",children:[...s].map((v,h)=>A(rn,{attachment:v},`attachment-link-${h}`))})]})},r0=({step:e,depth:t})=>A(Bp,{title:O("span",{children:[A("span",{style:{float:"right"},children:Cs(e.duration)}),Ur(e.error||e.duration===-1?"failed":"passed"),A("span",{children:e.title}),e.count>1&&O(dn,{children:[" ✕ ",A("span",{className:"test-result-counter",children:e.count})]}),e.location&&O("span",{className:"test-result-path",children:["— ",e.location.file,":",e.location.line]})]}),loadChildren:e.steps.length+(e.snippet?1:0)?()=>{const n=e.steps.map((r,o)=>A(r0,{step:r,depth:t+1},o));return e.snippet&&n.unshift(A(o0,{error:e.snippet},"line")),n}:void 0,depth:t}),o0=({error:e})=>{const t=Q.useMemo(()=>{const n={bg:"var(--color-canvas-subtle)",fg:"var(--color-fg-default)"};return n.colors=TZ,new CZ(n).toHtml(NZ(e))},[e]);return A("div",{className:"test-result-error-message",dangerouslySetInnerHTML:{__html:t||""}})},TZ={0:"#000",1:"#C00",2:"#0C0",3:"#C50",4:"#00C",5:"#C0C",6:"#0CC",7:"#CCC",8:"#555",9:"#F55",10:"#5F5",11:"#FF5",12:"#55F",13:"#F5F",14:"#5FF",15:"#FFF"};function NZ(e){return e.replace(/[&"<>]/g,t=>({"&":"&amp;",'"':"&quot;","<":"&lt;",">":"&gt;"})[t])}const LZ=({projectNames:e,test:t,run:n,anchor:r})=>{const[o,s]=Q.useState(n),i=Q.useMemo(()=>{if(t)return Sp(t.path.join(" ")+" "+t.title).sort((l,c)=>l.localeCompare(c))},[t]);return O("div",{className:"test-case-column vbox",children:[t&&A("div",{className:"test-case-path",children:t.path.join(" › ")}),t&&A("div",{className:"test-case-title",children:t==null?void 0:t.title}),t&&O("div",{className:"hbox",children:[O("div",{className:"test-case-location",children:[t.location.file,":",t.location.line]}),A("div",{style:{flex:"auto"}}),A("div",{className:"test-case-duration",children:Cs(t.duration)})]}),t&&(!!t.projectName||i)&&O("div",{className:"test-case-project-labels-row",children:[t&&!!t.projectName&&A(Mp,{projectNames:e,projectName:t.projectName}),i&&A(HZ,{labels:i})]}),t&&!!t.annotations.length&&A(ot,{header:"Annotations",children:t==null?void 0:t.annotations.map(l=>A(OZ,{annotation:l}))}),t&&A(qp,{tabs:t.results.map((l,c)=>({id:String(c),title:O("div",{style:{display:"flex",alignItems:"center"},children:[Ur(l.status)," ",BZ(c)]}),render:()=>A(bZ,{test:t,result:l,anchor:r})}))||[],selectedTab:String(o),setSelectedTab:l=>s(+l)})]})};function PZ(e){try{if(["http:","https:"].includes(new URL(e).protocol))return A("a",{href:e,target:"_blank",rel:"noopener noreferrer",children:e})}catch{}return e}function OZ({annotation:{type:e,description:t}}){return O("div",{className:"test-case-annotation",children:[A("span",{style:{fontWeight:"bold"},children:e}),t&&O("span",{children:[": ",PZ(t)]})]})}function BZ(e){return e?`Retry #${e}`:"Run"}const HZ=({labels:e})=>e.length>0?A(dn,{children:e.map(t=>A("a",{style:{textDecoration:"none",color:"var(--color-fg-default)"},href:`#?q=@${t}`,children:A("span",{style:{margin:"6px 0 0 6px",cursor:"pointer"},className:"label label-color-"+Cp(t),children:t})},t))}):null;const MZ=({file:e,report:t,isFileExpanded:n,setFileExpanded:r,filter:o})=>{const s=Q.useCallback(i=>Sp(i.path.join(" ")+" "+(i==null?void 0:i.title)).sort((l,c)=>l.localeCompare(c)),[]);return A(Up,{expanded:n(e.fileId),noInsets:!0,setExpanded:i=>r(e.fileId,i),header:A("span",{children:e.fileName}),children:e.tests.filter(i=>o.matches(i)).map(i=>O("div",{className:"test-file-test test-file-test-outcome-"+i.outcome,children:[O("div",{className:"hbox",style:{alignItems:"flex-start"},children:[O("div",{className:"hbox",children:[A("span",{className:"test-file-test-status-icon",children:Ur(i.outcome)}),O("span",{children:[A(_e,{href:`#?testId=${i.testId}`,title:[...i.path,i.title].join(" › "),children:A("span",{className:"test-file-title",children:[...i.path,i.title].join(" › ")})}),t.projectNames.length>1&&!!i.projectName&&A(Mp,{projectNames:t.projectNames,projectName:i.projectName}),A(QZ,{labels:s(i)})]})]}),A("span",{"data-testid":"test-duration",style:{minWidth:"50px",textAlign:"right"},children:Cs(i.duration)})]}),O("div",{className:"test-file-details-row",children:[A(_e,{href:`#?testId=${i.testId}`,title:[...i.path,i.title].join(" › "),className:"test-file-path-link",children:O("span",{className:"test-file-path",children:[i.location.file,":",i.location.line]})}),FZ(i),UZ(i),qZ(i)]})]},`test-${i.testId}`))})};function FZ(e){const t=e.results.find(n=>n.attachments.some(r=>r.contentType.startsWith("image/")&&!!r.name.match(/-(expected|actual|diff)/)));return t?A(_e,{href:`#?testId=${e.testId}&anchor=diff&run=${e.results.indexOf(t)}`,title:"View images",className:"test-file-badge",children:Lp()}):void 0}function UZ(e){const t=e.results.find(n=>n.attachments.some(r=>r.name==="video"));return t?A(_e,{href:`#?testId=${e.testId}&anchor=video&run=${e.results.indexOf(t)}`,title:"View video",className:"test-file-badge",children:Pp()}):void 0}function qZ(e){const t=e.results.map(n=>n.attachments.filter(r=>r.name==="trace")).filter(n=>n.length>0)[0];return t?A(_e,{href:Fp(t),title:"View trace",className:"test-file-badge",children:Op()}):void 0}const QZ=({labels:e})=>{const t=(n,r)=>{var i;n.preventDefault();let s=((i=new URLSearchParams(window.location.hash.slice(1)).get("q"))==null?void 0:i.toString())||"";n.metaKey||n.ctrlKey?s.includes(`@${r}`)?s=s.split(" ").filter(l=>l!==`@${r}`).join(" ").trim():s=`${s} @${r}`.trim():s.includes("@")?s=(s.split(" ").filter(l=>!l.startsWith("@")).join(" ").trim()+` @${r}`).trim():s=`${s} @${r}`.trim(),Hp(s?`#?q=${s}`:"#")};return e.length>0?A(dn,{children:e.map(n=>A("span",{style:{margin:"6px 0 0 6px",cursor:"pointer"},className:"label label-color-"+Cp(n),onClick:r=>t(r,n),children:n},n))}):null},jZ=({report:e,filter:t,expandedFiles:n,setExpandedFiles:r,projectNames:o,filteredStats:s})=>{const i=Q.useMemo(()=>{const l=[];let c=0;for(const u of(e==null?void 0:e.files)||[]){const p=u.tests.filter(v=>t.matches(v));c+=p.length,p.length&&l.push({file:u,defaultExpanded:c<200})}return l},[e,t]);return O(dn,{children:[O("div",{className:"p-2",style:{display:"flex"},children:[o.length===1&&!!o[0]&&O("div",{"data-testid":"project-name",style:{color:"var(--color-fg-subtle)"},children:["Project: ",o[0]]}),!t.empty()&&O("div",{"data-testid":"filtered-tests-count",style:{color:"var(--color-fg-subtle)"},children:["Filtered: ",s.total]}),A("div",{style:{flex:"auto"}}),O("div",{"data-testid":"overall-duration",style:{color:"var(--color-fg-subtle)"},children:["Total time: ",Cs(s.duration)]})]}),e&&i.map(({file:l,defaultExpanded:c})=>A(MZ,{report:e,file:l,isFileExpanded:u=>{const p=n.get(u);return p===void 0?c:!!p},setFileExpanded:(u,p)=>{const v=new Map(n);v.set(u,p),r(v)},filter:t},`file-${l.fileId}`))]})},VZ=e=>!e.has("testId"),GZ=e=>e.has("testId"),WZ=({report:e})=>{const t=new URLSearchParams(window.location.hash.slice(1)),[n,r]=Q.useState(new Map),[o,s]=Q.useState(t.get("q")||""),i=Q.useMemo(()=>mm.parse(o),[o]),l=Q.useMemo(()=>XZ((e==null?void 0:e.json().files)||[],i),[e,i]);return A("div",{className:"htmlreport vbox px-4 pb-4",children:O("main",{children:[(e==null?void 0:e.json())&&A(Sm,{stats:e.json().stats,filterText:o,setFilterText:s}),(e==null?void 0:e.json().metadata)&&A(Dm,{...e==null?void 0:e.json().metadata}),A(gu,{predicate:VZ,children:A(jZ,{report:e==null?void 0:e.json(),filter:i,expandedFiles:n,setExpandedFiles:r,projectNames:(e==null?void 0:e.json().projectNames)||[],filteredStats:l})}),A(gu,{predicate:GZ,children:!!e&&A(YZ,{report:e})})]})})},YZ=({report:e})=>{const t=new URLSearchParams(window.location.hash.slice(1)),[n,r]=Q.useState(),o=t.get("testId"),s=t.get("anchor")||"",i=+(t.get("run")||"0");return Q.useEffect(()=>{(async()=>{if(!o||o===(n==null?void 0:n.testId))return;const l=o.split("-")[0];if(!l)return;const c=await e.entry(`${l}.json`);for(const u of c.tests)if(u.testId===o){r(u);break}})()},[n,e,o]),A(LZ,{projectNames:e.json().projectNames,test:n,anchor:s,run:i})};function XZ(e,t){const n={total:0,duration:0};for(const r of e){const o=r.tests.filter(s=>t.matches(s));n.total+=o.length;for(const s of o)n.duration+=s.duration}return n}const ci=fg,zZ=()=>{const[e,t]=Q.useState();return Q.useEffect(()=>{if(e)return;const n=new KZ;n.load().then(()=>t(n))},[e]),A(WZ,{report:e})};window.onload=()=>{hm.render(A(zZ,{}),document.querySelector("#root"))};class KZ{constructor(){xt(this,"_entries",new Map);xt(this,"_json")}async load(){const t=new ci.ZipReader(new ci.Data64URIReader(window.playwrightReportBase64),{useWebWorkers:!1});for(const n of await t.getEntries())this._entries.set(n.filename,n);this._json=await this.entry("report.json")}json(){return this._json}async entry(t){const n=this._entries.get(t),r=new ci.TextWriter;return await n.getData(r),JSON.parse(await r.getData())}}
+</script>
+    <style type='text/css'>:root{--color-canvas-default-transparent: rgba(255,255,255,0);--color-marketing-icon-primary: #218bff;--color-marketing-icon-secondary: #54aeff;--color-diff-blob-addition-num-text: #24292f;--color-diff-blob-addition-fg: #24292f;--color-diff-blob-addition-num-bg: #CCFFD8;--color-diff-blob-addition-line-bg: #E6FFEC;--color-diff-blob-addition-word-bg: #ABF2BC;--color-diff-blob-deletion-num-text: #24292f;--color-diff-blob-deletion-fg: #24292f;--color-diff-blob-deletion-num-bg: #FFD7D5;--color-diff-blob-deletion-line-bg: #FFEBE9;--color-diff-blob-deletion-word-bg: rgba(255,129,130,.4);--color-diff-blob-hunk-num-bg: rgba(84,174,255,.4);--color-diff-blob-expander-icon: #57606a;--color-diff-blob-selected-line-highlight-mix-blend-mode: multiply;--color-diffstat-deletion-border: rgba(27,31,36,.15);--color-diffstat-addition-border: rgba(27,31,36,.15);--color-diffstat-addition-bg: #2da44e;--color-search-keyword-hl: #fff8c5;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #FFEBE9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-codemirror-text: #24292f;--color-codemirror-bg: #ffffff;--color-codemirror-gutters-bg: #ffffff;--color-codemirror-guttermarker-text: #ffffff;--color-codemirror-guttermarker-subtle-text: #6e7781;--color-codemirror-linenumber-text: #57606a;--color-codemirror-cursor: #24292f;--color-codemirror-selection-bg: rgba(84,174,255,.4);--color-codemirror-activeline-bg: rgba(234,238,242,.5);--color-codemirror-matchingbracket-text: #24292f;--color-codemirror-lines-bg: #ffffff;--color-codemirror-syntax-comment: #24292f;--color-codemirror-syntax-constant: #0550ae;--color-codemirror-syntax-entity: #8250df;--color-codemirror-syntax-keyword: #cf222e;--color-codemirror-syntax-storage: #cf222e;--color-codemirror-syntax-string: #0a3069;--color-codemirror-syntax-support: #0550ae;--color-codemirror-syntax-variable: #953800;--color-checks-bg: #24292f;--color-checks-run-border-width: 0px;--color-checks-container-border-width: 0px;--color-checks-text-primary: #f6f8fa;--color-checks-text-secondary: #8c959f;--color-checks-text-link: #54aeff;--color-checks-btn-icon: #afb8c1;--color-checks-btn-hover-icon: #f6f8fa;--color-checks-btn-hover-bg: rgba(255,255,255,.125);--color-checks-input-text: #eaeef2;--color-checks-input-placeholder-text: #8c959f;--color-checks-input-focus-text: #8c959f;--color-checks-input-bg: #32383f;--color-checks-input-shadow: none;--color-checks-donut-error: #fa4549;--color-checks-donut-pending: #bf8700;--color-checks-donut-success: #2da44e;--color-checks-donut-neutral: #afb8c1;--color-checks-dropdown-text: #afb8c1;--color-checks-dropdown-bg: #32383f;--color-checks-dropdown-border: #424a53;--color-checks-dropdown-shadow: rgba(27,31,36,.3);--color-checks-dropdown-hover-text: #f6f8fa;--color-checks-dropdown-hover-bg: #424a53;--color-checks-dropdown-btn-hover-text: #f6f8fa;--color-checks-dropdown-btn-hover-bg: #32383f;--color-checks-scrollbar-thumb-bg: #57606a;--color-checks-header-label-text: #d0d7de;--color-checks-header-label-open-text: #f6f8fa;--color-checks-header-border: #32383f;--color-checks-header-icon: #8c959f;--color-checks-line-text: #d0d7de;--color-checks-line-num-text: rgba(140,149,159,.75);--color-checks-line-timestamp-text: #8c959f;--color-checks-line-hover-bg: #32383f;--color-checks-line-selected-bg: rgba(33,139,255,.15);--color-checks-line-selected-num-text: #54aeff;--color-checks-line-dt-fm-text: #24292f;--color-checks-line-dt-fm-bg: #9a6700;--color-checks-gate-bg: rgba(125,78,0,.15);--color-checks-gate-text: #d0d7de;--color-checks-gate-waiting-text: #afb8c1;--color-checks-step-header-open-bg: #32383f;--color-checks-step-error-text: #ff8182;--color-checks-step-warning-text: #d4a72c;--color-checks-logline-text: #8c959f;--color-checks-logline-num-text: rgba(140,149,159,.75);--color-checks-logline-debug-text: #c297ff;--color-checks-logline-error-text: #d0d7de;--color-checks-logline-error-num-text: #ff8182;--color-checks-logline-error-bg: rgba(164,14,38,.15);--color-checks-logline-warning-text: #d0d7de;--color-checks-logline-warning-num-text: #d4a72c;--color-checks-logline-warning-bg: rgba(125,78,0,.15);--color-checks-logline-command-text: #54aeff;--color-checks-logline-section-text: #4ac26b;--color-checks-ansi-black: #24292f;--color-checks-ansi-black-bright: #32383f;--color-checks-ansi-white: #d0d7de;--color-checks-ansi-white-bright: #d0d7de;--color-checks-ansi-gray: #8c959f;--color-checks-ansi-red: #ff8182;--color-checks-ansi-red-bright: #ffaba8;--color-checks-ansi-green: #4ac26b;--color-checks-ansi-green-bright: #6fdd8b;--color-checks-ansi-yellow: #d4a72c;--color-checks-ansi-yellow-bright: #eac54f;--color-checks-ansi-blue: #54aeff;--color-checks-ansi-blue-bright: #80ccff;--color-checks-ansi-magenta: #c297ff;--color-checks-ansi-magenta-bright: #d8b9ff;--color-checks-ansi-cyan: #76e3ea;--color-checks-ansi-cyan-bright: #b3f0ff;--color-project-header-bg: #24292f;--color-project-sidebar-bg: #ffffff;--color-project-gradient-in: #ffffff;--color-project-gradient-out: rgba(255,255,255,0);--color-mktg-success: rgba(36,146,67,1);--color-mktg-info: rgba(19,119,234,1);--color-mktg-bg-shade-gradient-top: rgba(27,31,36,.065);--color-mktg-bg-shade-gradient-bottom: rgba(27,31,36,0);--color-mktg-btn-bg-top: hsla(228,82%,66%,1);--color-mktg-btn-bg-bottom: #4969ed;--color-mktg-btn-bg-overlay-top: hsla(228,74%,59%,1);--color-mktg-btn-bg-overlay-bottom: #3355e0;--color-mktg-btn-text: #ffffff;--color-mktg-btn-primary-bg-top: hsla(137,56%,46%,1);--color-mktg-btn-primary-bg-bottom: #2ea44f;--color-mktg-btn-primary-bg-overlay-top: hsla(134,60%,38%,1);--color-mktg-btn-primary-bg-overlay-bottom: #22863a;--color-mktg-btn-primary-text: #ffffff;--color-mktg-btn-enterprise-bg-top: hsla(249,100%,72%,1);--color-mktg-btn-enterprise-bg-bottom: #6f57ff;--color-mktg-btn-enterprise-bg-overlay-top: hsla(248,65%,63%,1);--color-mktg-btn-enterprise-bg-overlay-bottom: #614eda;--color-mktg-btn-enterprise-text: #ffffff;--color-mktg-btn-outline-text: #4969ed;--color-mktg-btn-outline-border: rgba(73,105,237,.3);--color-mktg-btn-outline-hover-text: #3355e0;--color-mktg-btn-outline-hover-border: rgba(51,85,224,.5);--color-mktg-btn-outline-focus-border: #4969ed;--color-mktg-btn-outline-focus-border-inset: rgba(73,105,237,.5);--color-mktg-btn-dark-text: #ffffff;--color-mktg-btn-dark-border: rgba(255,255,255,.3);--color-mktg-btn-dark-hover-text: #ffffff;--color-mktg-btn-dark-hover-border: rgba(255,255,255,.5);--color-mktg-btn-dark-focus-border: #ffffff;--color-mktg-btn-dark-focus-border-inset: rgba(255,255,255,.5);--color-avatar-bg: #ffffff;--color-avatar-border: rgba(27,31,36,.15);--color-avatar-stack-fade: #afb8c1;--color-avatar-stack-fade-more: #d0d7de;--color-avatar-child-shadow: -2px -2px 0 rgba(255,255,255,.8);--color-topic-tag-border: rgba(0,0,0,0);--color-select-menu-backdrop-border: rgba(0,0,0,0);--color-select-menu-tap-highlight: rgba(175,184,193,.5);--color-select-menu-tap-focus-bg: #b6e3ff;--color-overlay-shadow: 0 1px 3px rgba(27,31,36,.12), 0 8px 24px rgba(66,74,83,.12);--color-header-text: rgba(255,255,255,.7);--color-header-bg: #24292f;--color-header-logo: #ffffff;--color-header-search-bg: #24292f;--color-header-search-border: #57606a;--color-sidenav-selected-bg: #ffffff;--color-menu-bg-active: rgba(0,0,0,0);--color-input-disabled-bg: rgba(175,184,193,.2);--color-timeline-badge-bg: #eaeef2;--color-ansi-black: #24292f;--color-ansi-black-bright: #57606a;--color-ansi-white: #6e7781;--color-ansi-white-bright: #8c959f;--color-ansi-gray: #6e7781;--color-ansi-red: #cf222e;--color-ansi-red-bright: #a40e26;--color-ansi-green: #116329;--color-ansi-green-bright: #1a7f37;--color-ansi-yellow: #4d2d00;--color-ansi-yellow-bright: #633c01;--color-ansi-blue: #0969da;--color-ansi-blue-bright: #218bff;--color-ansi-magenta: #8250df;--color-ansi-magenta-bright: #a475f9;--color-ansi-cyan: #1b7c83;--color-ansi-cyan-bright: #3192aa;--color-btn-text: #24292f;--color-btn-bg: #f6f8fa;--color-btn-border: rgba(27,31,36,.15);--color-btn-shadow: 0 1px 0 rgba(27,31,36,.04);--color-btn-inset-shadow: inset 0 1px 0 rgba(255,255,255,.25);--color-btn-hover-bg: #f3f4f6;--color-btn-hover-border: rgba(27,31,36,.15);--color-btn-active-bg: hsla(220,14%,93%,1);--color-btn-active-border: rgba(27,31,36,.15);--color-btn-selected-bg: hsla(220,14%,94%,1);--color-btn-focus-bg: #f6f8fa;--color-btn-focus-border: rgba(27,31,36,.15);--color-btn-focus-shadow: 0 0 0 3px rgba(9,105,218,.3);--color-btn-shadow-active: inset 0 .15em .3em rgba(27,31,36,.15);--color-btn-shadow-input-focus: 0 0 0 .2em rgba(9,105,218,.3);--color-btn-counter-bg: rgba(27,31,36,.08);--color-btn-primary-text: #ffffff;--color-btn-primary-bg: #2da44e;--color-btn-primary-border: rgba(27,31,36,.15);--color-btn-primary-shadow: 0 1px 0 rgba(27,31,36,.1);--color-btn-primary-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-primary-hover-bg: #2c974b;--color-btn-primary-hover-border: rgba(27,31,36,.15);--color-btn-primary-selected-bg: hsla(137,55%,36%,1);--color-btn-primary-selected-shadow: inset 0 1px 0 rgba(0,45,17,.2);--color-btn-primary-disabled-text: rgba(255,255,255,.8);--color-btn-primary-disabled-bg: #94d3a2;--color-btn-primary-disabled-border: rgba(27,31,36,.15);--color-btn-primary-focus-bg: #2da44e;--color-btn-primary-focus-border: rgba(27,31,36,.15);--color-btn-primary-focus-shadow: 0 0 0 3px rgba(45,164,78,.4);--color-btn-primary-icon: rgba(255,255,255,.8);--color-btn-primary-counter-bg: rgba(255,255,255,.2);--color-btn-outline-text: #0969da;--color-btn-outline-hover-text: #ffffff;--color-btn-outline-hover-bg: #0969da;--color-btn-outline-hover-border: rgba(27,31,36,.15);--color-btn-outline-hover-shadow: 0 1px 0 rgba(27,31,36,.1);--color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-outline-hover-counter-bg: rgba(255,255,255,.2);--color-btn-outline-selected-text: #ffffff;--color-btn-outline-selected-bg: hsla(212,92%,42%,1);--color-btn-outline-selected-border: rgba(27,31,36,.15);--color-btn-outline-selected-shadow: inset 0 1px 0 rgba(0,33,85,.2);--color-btn-outline-disabled-text: rgba(9,105,218,.5);--color-btn-outline-disabled-bg: #f6f8fa;--color-btn-outline-disabled-counter-bg: rgba(9,105,218,.05);--color-btn-outline-focus-border: rgba(27,31,36,.15);--color-btn-outline-focus-shadow: 0 0 0 3px rgba(5,80,174,.4);--color-btn-outline-counter-bg: rgba(9,105,218,.1);--color-btn-danger-text: #cf222e;--color-btn-danger-hover-text: #ffffff;--color-btn-danger-hover-bg: #a40e26;--color-btn-danger-hover-border: rgba(27,31,36,.15);--color-btn-danger-hover-shadow: 0 1px 0 rgba(27,31,36,.1);--color-btn-danger-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-danger-hover-counter-bg: rgba(255,255,255,.2);--color-btn-danger-selected-text: #ffffff;--color-btn-danger-selected-bg: hsla(356,72%,44%,1);--color-btn-danger-selected-border: rgba(27,31,36,.15);--color-btn-danger-selected-shadow: inset 0 1px 0 rgba(76,0,20,.2);--color-btn-danger-disabled-text: rgba(207,34,46,.5);--color-btn-danger-disabled-bg: #f6f8fa;--color-btn-danger-disabled-counter-bg: rgba(207,34,46,.05);--color-btn-danger-focus-border: rgba(27,31,36,.15);--color-btn-danger-focus-shadow: 0 0 0 3px rgba(164,14,38,.4);--color-btn-danger-counter-bg: rgba(207,34,46,.1);--color-btn-danger-icon: #cf222e;--color-btn-danger-hover-icon: #ffffff;--color-underlinenav-icon: #6e7781;--color-underlinenav-border-hover: rgba(175,184,193,.2);--color-fg-default: #24292f;--color-fg-muted: #57606a;--color-fg-subtle: #6e7781;--color-fg-on-emphasis: #ffffff;--color-canvas-default: #ffffff;--color-canvas-overlay: #ffffff;--color-canvas-inset: #f6f8fa;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsla(210,18%,87%,1);--color-border-subtle: rgba(27,31,36,.15);--color-shadow-small: 0 1px 0 rgba(27,31,36,.04);--color-shadow-medium: 0 3px 6px rgba(140,149,159,.15);--color-shadow-large: 0 8px 24px rgba(140,149,159,.2);--color-shadow-extra-large: 0 12px 28px rgba(140,149,159,.3);--color-neutral-emphasis-plus: #24292f;--color-neutral-emphasis: #6e7781;--color-neutral-muted: rgba(175,184,193,.2);--color-neutral-subtle: rgba(234,238,242,.5);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-accent-muted: rgba(84,174,255,.4);--color-accent-subtle: #ddf4ff;--color-success-fg: #1a7f37;--color-success-emphasis: #2da44e;--color-success-muted: rgba(74,194,107,.4);--color-success-subtle: #dafbe1;--color-attention-fg: #9a6700;--color-attention-emphasis: #bf8700;--color-attention-muted: rgba(212,167,44,.4);--color-attention-subtle: #fff8c5;--color-severe-fg: #bc4c00;--color-severe-emphasis: #bc4c00;--color-severe-muted: rgba(251,143,68,.4);--color-severe-subtle: #fff1e5;--color-danger-fg: #cf222e;--color-danger-emphasis: #cf222e;--color-danger-muted: rgba(255,129,130,.4);--color-danger-subtle: #FFEBE9;--color-done-fg: #8250df;--color-done-emphasis: #8250df;--color-done-muted: rgba(194,151,255,.4);--color-done-subtle: #fbefff;--color-sponsors-fg: #bf3989;--color-sponsors-emphasis: #bf3989;--color-sponsors-muted: rgba(255,128,200,.4);--color-sponsors-subtle: #ffeff7;--color-primer-canvas-backdrop: rgba(27,31,36,.5);--color-primer-canvas-sticky: rgba(255,255,255,.95);--color-primer-border-active: #FD8C73;--color-primer-border-contrast: rgba(27,31,36,.1);--color-primer-shadow-highlight: inset 0 1px 0 rgba(255,255,255,.25);--color-primer-shadow-inset: inset 0 1px 0 rgba(208,215,222,.2);--color-primer-shadow-focus: 0 0 0 3px rgba(9,105,218,.3);--color-scale-black: #1b1f24;--color-scale-white: #ffffff;--color-scale-gray-0: #f6f8fa;--color-scale-gray-1: #eaeef2;--color-scale-gray-2: #d0d7de;--color-scale-gray-3: #afb8c1;--color-scale-gray-4: #8c959f;--color-scale-gray-5: #6e7781;--color-scale-gray-6: #57606a;--color-scale-gray-7: #424a53;--color-scale-gray-8: #32383f;--color-scale-gray-9: #24292f;--color-scale-blue-0: #ddf4ff;--color-scale-blue-1: #b6e3ff;--color-scale-blue-2: #80ccff;--color-scale-blue-3: #54aeff;--color-scale-blue-4: #218bff;--color-scale-blue-5: #0969da;--color-scale-blue-6: #0550ae;--color-scale-blue-7: #033d8b;--color-scale-blue-8: #0a3069;--color-scale-blue-9: #002155;--color-scale-green-0: #dafbe1;--color-scale-green-1: #aceebb;--color-scale-green-2: #6fdd8b;--color-scale-green-3: #4ac26b;--color-scale-green-4: #2da44e;--color-scale-green-5: #1a7f37;--color-scale-green-6: #116329;--color-scale-green-7: #044f1e;--color-scale-green-8: #003d16;--color-scale-green-9: #002d11;--color-scale-yellow-0: #fff8c5;--color-scale-yellow-1: #fae17d;--color-scale-yellow-2: #eac54f;--color-scale-yellow-3: #d4a72c;--color-scale-yellow-4: #bf8700;--color-scale-yellow-5: #9a6700;--color-scale-yellow-6: #7d4e00;--color-scale-yellow-7: #633c01;--color-scale-yellow-8: #4d2d00;--color-scale-yellow-9: #3b2300;--color-scale-orange-0: #fff1e5;--color-scale-orange-1: #ffd8b5;--color-scale-orange-2: #ffb77c;--color-scale-orange-3: #fb8f44;--color-scale-orange-4: #e16f24;--color-scale-orange-5: #bc4c00;--color-scale-orange-6: #953800;--color-scale-orange-7: #762c00;--color-scale-orange-8: #5c2200;--color-scale-orange-9: #471700;--color-scale-red-0: #FFEBE9;--color-scale-red-1: #ffcecb;--color-scale-red-2: #ffaba8;--color-scale-red-3: #ff8182;--color-scale-red-4: #fa4549;--color-scale-red-5: #cf222e;--color-scale-red-6: #a40e26;--color-scale-red-7: #82071e;--color-scale-red-8: #660018;--color-scale-red-9: #4c0014;--color-scale-purple-0: #fbefff;--color-scale-purple-1: #ecd8ff;--color-scale-purple-2: #d8b9ff;--color-scale-purple-3: #c297ff;--color-scale-purple-4: #a475f9;--color-scale-purple-5: #8250df;--color-scale-purple-6: #6639ba;--color-scale-purple-7: #512a97;--color-scale-purple-8: #3e1f79;--color-scale-purple-9: #2e1461;--color-scale-pink-0: #ffeff7;--color-scale-pink-1: #ffd3eb;--color-scale-pink-2: #ffadda;--color-scale-pink-3: #ff80c8;--color-scale-pink-4: #e85aad;--color-scale-pink-5: #bf3989;--color-scale-pink-6: #99286e;--color-scale-pink-7: #772057;--color-scale-pink-8: #611347;--color-scale-pink-9: #4d0336;--color-scale-coral-0: #FFF0EB;--color-scale-coral-1: #FFD6CC;--color-scale-coral-2: #FFB4A1;--color-scale-coral-3: #FD8C73;--color-scale-coral-4: #EC6547;--color-scale-coral-5: #C4432B;--color-scale-coral-6: #9E2F1C;--color-scale-coral-7: #801F0F;--color-scale-coral-8: #691105;--color-scale-coral-9: #510901 }@media (prefers-color-scheme: dark){:root{--color-canvas-default-transparent: rgba(13,17,23,0);--color-marketing-icon-primary: #79c0ff;--color-marketing-icon-secondary: #1f6feb;--color-diff-blob-addition-num-text: #c9d1d9;--color-diff-blob-addition-fg: #c9d1d9;--color-diff-blob-addition-num-bg: rgba(63,185,80,.3);--color-diff-blob-addition-line-bg: rgba(46,160,67,.15);--color-diff-blob-addition-word-bg: rgba(46,160,67,.4);--color-diff-blob-deletion-num-text: #c9d1d9;--color-diff-blob-deletion-fg: #c9d1d9;--color-diff-blob-deletion-num-bg: rgba(248,81,73,.3);--color-diff-blob-deletion-line-bg: rgba(248,81,73,.15);--color-diff-blob-deletion-word-bg: rgba(248,81,73,.4);--color-diff-blob-hunk-num-bg: rgba(56,139,253,.4);--color-diff-blob-expander-icon: #8b949e;--color-diff-blob-selected-line-highlight-mix-blend-mode: screen;--color-diffstat-deletion-border: rgba(240,246,252,.1);--color-diffstat-addition-border: rgba(240,246,252,.1);--color-diffstat-addition-bg: #3fb950;--color-search-keyword-hl: rgba(210,153,34,.4);--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-codemirror-text: #c9d1d9;--color-codemirror-bg: #0d1117;--color-codemirror-gutters-bg: #0d1117;--color-codemirror-guttermarker-text: #0d1117;--color-codemirror-guttermarker-subtle-text: #484f58;--color-codemirror-linenumber-text: #8b949e;--color-codemirror-cursor: #c9d1d9;--color-codemirror-selection-bg: rgba(56,139,253,.4);--color-codemirror-activeline-bg: rgba(110,118,129,.1);--color-codemirror-matchingbracket-text: #c9d1d9;--color-codemirror-lines-bg: #0d1117;--color-codemirror-syntax-comment: #8b949e;--color-codemirror-syntax-constant: #79c0ff;--color-codemirror-syntax-entity: #d2a8ff;--color-codemirror-syntax-keyword: #ff7b72;--color-codemirror-syntax-storage: #ff7b72;--color-codemirror-syntax-string: #a5d6ff;--color-codemirror-syntax-support: #79c0ff;--color-codemirror-syntax-variable: #ffa657;--color-checks-bg: #010409;--color-checks-run-border-width: 1px;--color-checks-container-border-width: 1px;--color-checks-text-primary: #c9d1d9;--color-checks-text-secondary: #8b949e;--color-checks-text-link: #58a6ff;--color-checks-btn-icon: #8b949e;--color-checks-btn-hover-icon: #c9d1d9;--color-checks-btn-hover-bg: rgba(110,118,129,.1);--color-checks-input-text: #8b949e;--color-checks-input-placeholder-text: #484f58;--color-checks-input-focus-text: #c9d1d9;--color-checks-input-bg: #161b22;--color-checks-input-shadow: none;--color-checks-donut-error: #f85149;--color-checks-donut-pending: #d29922;--color-checks-donut-success: #2ea043;--color-checks-donut-neutral: #8b949e;--color-checks-dropdown-text: #c9d1d9;--color-checks-dropdown-bg: #161b22;--color-checks-dropdown-border: #30363d;--color-checks-dropdown-shadow: rgba(1,4,9,.3);--color-checks-dropdown-hover-text: #c9d1d9;--color-checks-dropdown-hover-bg: rgba(110,118,129,.1);--color-checks-dropdown-btn-hover-text: #c9d1d9;--color-checks-dropdown-btn-hover-bg: rgba(110,118,129,.1);--color-checks-scrollbar-thumb-bg: rgba(110,118,129,.4);--color-checks-header-label-text: #8b949e;--color-checks-header-label-open-text: #c9d1d9;--color-checks-header-border: #21262d;--color-checks-header-icon: #8b949e;--color-checks-line-text: #8b949e;--color-checks-line-num-text: #484f58;--color-checks-line-timestamp-text: #484f58;--color-checks-line-hover-bg: rgba(110,118,129,.1);--color-checks-line-selected-bg: rgba(56,139,253,.15);--color-checks-line-selected-num-text: #58a6ff;--color-checks-line-dt-fm-text: #f0f6fc;--color-checks-line-dt-fm-bg: #9e6a03;--color-checks-gate-bg: rgba(187,128,9,.15);--color-checks-gate-text: #8b949e;--color-checks-gate-waiting-text: #d29922;--color-checks-step-header-open-bg: #161b22;--color-checks-step-error-text: #f85149;--color-checks-step-warning-text: #d29922;--color-checks-logline-text: #8b949e;--color-checks-logline-num-text: #484f58;--color-checks-logline-debug-text: #a371f7;--color-checks-logline-error-text: #8b949e;--color-checks-logline-error-num-text: #484f58;--color-checks-logline-error-bg: rgba(248,81,73,.15);--color-checks-logline-warning-text: #8b949e;--color-checks-logline-warning-num-text: #d29922;--color-checks-logline-warning-bg: rgba(187,128,9,.15);--color-checks-logline-command-text: #58a6ff;--color-checks-logline-section-text: #3fb950;--color-checks-ansi-black: #0d1117;--color-checks-ansi-black-bright: #161b22;--color-checks-ansi-white: #b1bac4;--color-checks-ansi-white-bright: #b1bac4;--color-checks-ansi-gray: #6e7681;--color-checks-ansi-red: #ff7b72;--color-checks-ansi-red-bright: #ffa198;--color-checks-ansi-green: #3fb950;--color-checks-ansi-green-bright: #56d364;--color-checks-ansi-yellow: #d29922;--color-checks-ansi-yellow-bright: #e3b341;--color-checks-ansi-blue: #58a6ff;--color-checks-ansi-blue-bright: #79c0ff;--color-checks-ansi-magenta: #bc8cff;--color-checks-ansi-magenta-bright: #d2a8ff;--color-checks-ansi-cyan: #76e3ea;--color-checks-ansi-cyan-bright: #b3f0ff;--color-project-header-bg: #0d1117;--color-project-sidebar-bg: #161b22;--color-project-gradient-in: #161b22;--color-project-gradient-out: rgba(22,27,34,0);--color-mktg-success: rgba(41,147,61,1);--color-mktg-info: rgba(42,123,243,1);--color-mktg-bg-shade-gradient-top: rgba(1,4,9,.065);--color-mktg-bg-shade-gradient-bottom: rgba(1,4,9,0);--color-mktg-btn-bg-top: hsla(228,82%,66%,1);--color-mktg-btn-bg-bottom: #4969ed;--color-mktg-btn-bg-overlay-top: hsla(228,74%,59%,1);--color-mktg-btn-bg-overlay-bottom: #3355e0;--color-mktg-btn-text: #f0f6fc;--color-mktg-btn-primary-bg-top: hsla(137,56%,46%,1);--color-mktg-btn-primary-bg-bottom: #2ea44f;--color-mktg-btn-primary-bg-overlay-top: hsla(134,60%,38%,1);--color-mktg-btn-primary-bg-overlay-bottom: #22863a;--color-mktg-btn-primary-text: #f0f6fc;--color-mktg-btn-enterprise-bg-top: hsla(249,100%,72%,1);--color-mktg-btn-enterprise-bg-bottom: #6f57ff;--color-mktg-btn-enterprise-bg-overlay-top: hsla(248,65%,63%,1);--color-mktg-btn-enterprise-bg-overlay-bottom: #614eda;--color-mktg-btn-enterprise-text: #f0f6fc;--color-mktg-btn-outline-text: #f0f6fc;--color-mktg-btn-outline-border: rgba(240,246,252,.3);--color-mktg-btn-outline-hover-text: #f0f6fc;--color-mktg-btn-outline-hover-border: rgba(240,246,252,.5);--color-mktg-btn-outline-focus-border: #f0f6fc;--color-mktg-btn-outline-focus-border-inset: rgba(240,246,252,.5);--color-mktg-btn-dark-text: #f0f6fc;--color-mktg-btn-dark-border: rgba(240,246,252,.3);--color-mktg-btn-dark-hover-text: #f0f6fc;--color-mktg-btn-dark-hover-border: rgba(240,246,252,.5);--color-mktg-btn-dark-focus-border: #f0f6fc;--color-mktg-btn-dark-focus-border-inset: rgba(240,246,252,.5);--color-avatar-bg: rgba(240,246,252,.1);--color-avatar-border: rgba(240,246,252,.1);--color-avatar-stack-fade: #30363d;--color-avatar-stack-fade-more: #21262d;--color-avatar-child-shadow: -2px -2px 0 #0d1117;--color-topic-tag-border: rgba(0,0,0,0);--color-select-menu-backdrop-border: #484f58;--color-select-menu-tap-highlight: rgba(48,54,61,.5);--color-select-menu-tap-focus-bg: #0c2d6b;--color-overlay-shadow: 0 0 0 1px #30363d, 0 16px 32px rgba(1,4,9,.85);--color-header-text: rgba(240,246,252,.7);--color-header-bg: #161b22;--color-header-logo: #f0f6fc;--color-header-search-bg: #0d1117;--color-header-search-border: #30363d;--color-sidenav-selected-bg: #21262d;--color-menu-bg-active: #161b22;--color-input-disabled-bg: rgba(110,118,129,0);--color-timeline-badge-bg: #21262d;--color-ansi-black: #484f58;--color-ansi-black-bright: #6e7681;--color-ansi-white: #b1bac4;--color-ansi-white-bright: #f0f6fc;--color-ansi-gray: #6e7681;--color-ansi-red: #ff7b72;--color-ansi-red-bright: #ffa198;--color-ansi-green: #3fb950;--color-ansi-green-bright: #56d364;--color-ansi-yellow: #d29922;--color-ansi-yellow-bright: #e3b341;--color-ansi-blue: #58a6ff;--color-ansi-blue-bright: #79c0ff;--color-ansi-magenta: #bc8cff;--color-ansi-magenta-bright: #d2a8ff;--color-ansi-cyan: #39c5cf;--color-ansi-cyan-bright: #56d4dd;--color-btn-text: #c9d1d9;--color-btn-bg: #21262d;--color-btn-border: rgba(240,246,252,.1);--color-btn-shadow: 0 0 transparent;--color-btn-inset-shadow: 0 0 transparent;--color-btn-hover-bg: #30363d;--color-btn-hover-border: #8b949e;--color-btn-active-bg: hsla(212,12%,18%,1);--color-btn-active-border: #6e7681;--color-btn-selected-bg: #161b22;--color-btn-focus-bg: #21262d;--color-btn-focus-border: #8b949e;--color-btn-focus-shadow: 0 0 0 3px rgba(139,148,158,.3);--color-btn-shadow-active: inset 0 .15em .3em rgba(1,4,9,.15);--color-btn-shadow-input-focus: 0 0 0 .2em rgba(31,111,235,.3);--color-btn-counter-bg: #30363d;--color-btn-primary-text: #ffffff;--color-btn-primary-bg: #238636;--color-btn-primary-border: rgba(240,246,252,.1);--color-btn-primary-shadow: 0 0 transparent;--color-btn-primary-inset-shadow: 0 0 transparent;--color-btn-primary-hover-bg: #2ea043;--color-btn-primary-hover-border: rgba(240,246,252,.1);--color-btn-primary-selected-bg: #238636;--color-btn-primary-selected-shadow: 0 0 transparent;--color-btn-primary-disabled-text: rgba(240,246,252,.5);--color-btn-primary-disabled-bg: rgba(35,134,54,.6);--color-btn-primary-disabled-border: rgba(240,246,252,.1);--color-btn-primary-focus-bg: #238636;--color-btn-primary-focus-border: rgba(240,246,252,.1);--color-btn-primary-focus-shadow: 0 0 0 3px rgba(46,164,79,.4);--color-btn-primary-icon: #f0f6fc;--color-btn-primary-counter-bg: rgba(240,246,252,.2);--color-btn-outline-text: #58a6ff;--color-btn-outline-hover-text: #58a6ff;--color-btn-outline-hover-bg: #30363d;--color-btn-outline-hover-border: rgba(240,246,252,.1);--color-btn-outline-hover-shadow: 0 1px 0 rgba(1,4,9,.1);--color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(240,246,252,.03);--color-btn-outline-hover-counter-bg: rgba(240,246,252,.2);--color-btn-outline-selected-text: #f0f6fc;--color-btn-outline-selected-bg: #0d419d;--color-btn-outline-selected-border: rgba(240,246,252,.1);--color-btn-outline-selected-shadow: 0 0 transparent;--color-btn-outline-disabled-text: rgba(88,166,255,.5);--color-btn-outline-disabled-bg: #0d1117;--color-btn-outline-disabled-counter-bg: rgba(31,111,235,.05);--color-btn-outline-focus-border: rgba(240,246,252,.1);--color-btn-outline-focus-shadow: 0 0 0 3px rgba(17,88,199,.4);--color-btn-outline-counter-bg: rgba(31,111,235,.1);--color-btn-danger-text: #f85149;--color-btn-danger-hover-text: #f0f6fc;--color-btn-danger-hover-bg: #da3633;--color-btn-danger-hover-border: #f85149;--color-btn-danger-hover-shadow: 0 0 transparent;--color-btn-danger-hover-inset-shadow: 0 0 transparent;--color-btn-danger-hover-icon: #f0f6fc;--color-btn-danger-hover-counter-bg: rgba(255,255,255,.2);--color-btn-danger-selected-text: #ffffff;--color-btn-danger-selected-bg: #b62324;--color-btn-danger-selected-border: #ff7b72;--color-btn-danger-selected-shadow: 0 0 transparent;--color-btn-danger-disabled-text: rgba(248,81,73,.5);--color-btn-danger-disabled-bg: #0d1117;--color-btn-danger-disabled-counter-bg: rgba(218,54,51,.05);--color-btn-danger-focus-border: #f85149;--color-btn-danger-focus-shadow: 0 0 0 3px rgba(248,81,73,.4);--color-btn-danger-counter-bg: rgba(218,54,51,.1);--color-btn-danger-icon: #f85149;--color-underlinenav-icon: #484f58;--color-underlinenav-border-hover: rgba(110,118,129,.4);--color-fg-default: #c9d1d9;--color-fg-muted: #8b949e;--color-fg-subtle: #484f58;--color-fg-on-emphasis: #f0f6fc;--color-canvas-default: #0d1117;--color-canvas-overlay: #161b22;--color-canvas-inset: #010409;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-border-subtle: rgba(240,246,252,.1);--color-shadow-small: 0 0 transparent;--color-shadow-medium: 0 3px 6px #010409;--color-shadow-large: 0 8px 24px #010409;--color-shadow-extra-large: 0 12px 48px #010409;--color-neutral-emphasis-plus: #6e7681;--color-neutral-emphasis: #6e7681;--color-neutral-muted: rgba(110,118,129,.4);--color-neutral-subtle: rgba(110,118,129,.1);--color-accent-fg: #58a6ff;--color-accent-emphasis: #1f6feb;--color-accent-muted: rgba(56,139,253,.4);--color-accent-subtle: rgba(56,139,253,.15);--color-success-fg: #3fb950;--color-success-emphasis: #238636;--color-success-muted: rgba(46,160,67,.4);--color-success-subtle: rgba(46,160,67,.15);--color-attention-fg: #d29922;--color-attention-emphasis: #9e6a03;--color-attention-muted: rgba(187,128,9,.4);--color-attention-subtle: rgba(187,128,9,.15);--color-severe-fg: #db6d28;--color-severe-emphasis: #bd561d;--color-severe-muted: rgba(219,109,40,.4);--color-severe-subtle: rgba(219,109,40,.15);--color-danger-fg: #f85149;--color-danger-emphasis: #da3633;--color-danger-muted: rgba(248,81,73,.4);--color-danger-subtle: rgba(248,81,73,.15);--color-done-fg: #a371f7;--color-done-emphasis: #8957e5;--color-done-muted: rgba(163,113,247,.4);--color-done-subtle: rgba(163,113,247,.15);--color-sponsors-fg: #db61a2;--color-sponsors-emphasis: #bf4b8a;--color-sponsors-muted: rgba(219,97,162,.4);--color-sponsors-subtle: rgba(219,97,162,.15);--color-primer-canvas-backdrop: rgba(1,4,9,.8);--color-primer-canvas-sticky: rgba(13,17,23,.95);--color-primer-border-active: #F78166;--color-primer-border-contrast: rgba(240,246,252,.2);--color-primer-shadow-highlight: 0 0 transparent;--color-primer-shadow-inset: 0 0 transparent;--color-primer-shadow-focus: 0 0 0 3px #0c2d6b;--color-scale-black: #010409;--color-scale-white: #f0f6fc;--color-scale-gray-0: #f0f6fc;--color-scale-gray-1: #c9d1d9;--color-scale-gray-2: #b1bac4;--color-scale-gray-3: #8b949e;--color-scale-gray-4: #6e7681;--color-scale-gray-5: #484f58;--color-scale-gray-6: #30363d;--color-scale-gray-7: #21262d;--color-scale-gray-8: #161b22;--color-scale-gray-9: #0d1117;--color-scale-blue-0: #cae8ff;--color-scale-blue-1: #a5d6ff;--color-scale-blue-2: #79c0ff;--color-scale-blue-3: #58a6ff;--color-scale-blue-4: #388bfd;--color-scale-blue-5: #1f6feb;--color-scale-blue-6: #1158c7;--color-scale-blue-7: #0d419d;--color-scale-blue-8: #0c2d6b;--color-scale-blue-9: #051d4d;--color-scale-green-0: #aff5b4;--color-scale-green-1: #7ee787;--color-scale-green-2: #56d364;--color-scale-green-3: #3fb950;--color-scale-green-4: #2ea043;--color-scale-green-5: #238636;--color-scale-green-6: #196c2e;--color-scale-green-7: #0f5323;--color-scale-green-8: #033a16;--color-scale-green-9: #04260f;--color-scale-yellow-0: #f8e3a1;--color-scale-yellow-1: #f2cc60;--color-scale-yellow-2: #e3b341;--color-scale-yellow-3: #d29922;--color-scale-yellow-4: #bb8009;--color-scale-yellow-5: #9e6a03;--color-scale-yellow-6: #845306;--color-scale-yellow-7: #693e00;--color-scale-yellow-8: #4b2900;--color-scale-yellow-9: #341a00;--color-scale-orange-0: #ffdfb6;--color-scale-orange-1: #ffc680;--color-scale-orange-2: #ffa657;--color-scale-orange-3: #f0883e;--color-scale-orange-4: #db6d28;--color-scale-orange-5: #bd561d;--color-scale-orange-6: #9b4215;--color-scale-orange-7: #762d0a;--color-scale-orange-8: #5a1e02;--color-scale-orange-9: #3d1300;--color-scale-red-0: #ffdcd7;--color-scale-red-1: #ffc1ba;--color-scale-red-2: #ffa198;--color-scale-red-3: #ff7b72;--color-scale-red-4: #f85149;--color-scale-red-5: #da3633;--color-scale-red-6: #b62324;--color-scale-red-7: #8e1519;--color-scale-red-8: #67060c;--color-scale-red-9: #490202;--color-scale-purple-0: #eddeff;--color-scale-purple-1: #e2c5ff;--color-scale-purple-2: #d2a8ff;--color-scale-purple-3: #bc8cff;--color-scale-purple-4: #a371f7;--color-scale-purple-5: #8957e5;--color-scale-purple-6: #6e40c9;--color-scale-purple-7: #553098;--color-scale-purple-8: #3c1e70;--color-scale-purple-9: #271052;--color-scale-pink-0: #ffdaec;--color-scale-pink-1: #ffbedd;--color-scale-pink-2: #ff9bce;--color-scale-pink-3: #f778ba;--color-scale-pink-4: #db61a2;--color-scale-pink-5: #bf4b8a;--color-scale-pink-6: #9e3670;--color-scale-pink-7: #7d2457;--color-scale-pink-8: #5e103e;--color-scale-pink-9: #42062a;--color-scale-coral-0: #FFDDD2;--color-scale-coral-1: #FFC2B2;--color-scale-coral-2: #FFA28B;--color-scale-coral-3: #F78166;--color-scale-coral-4: #EA6045;--color-scale-coral-5: #CF462D;--color-scale-coral-6: #AC3220;--color-scale-coral-7: #872012;--color-scale-coral-8: #640D04;--color-scale-coral-9: #460701 }}:root{--box-shadow: rgba(0, 0, 0, .133) 0px 1.6px 3.6px 0px, rgba(0, 0, 0, .11) 0px .3px .9px 0px;--box-shadow-thick: rgb(0 0 0 / 10%) 0px 1.8px 1.9px, rgb(0 0 0 / 15%) 0px 6.1px 6.3px, rgb(0 0 0 / 10%) 0px -2px 4px, rgb(0 0 0 / 15%) 0px -6.1px 12px, rgb(0 0 0 / 25%) 0px 6px 12px}*{box-sizing:border-box;min-width:0;min-height:0}svg{fill:currentColor}.vbox{display:flex;flex-direction:column;flex:auto;position:relative}.hbox{display:flex;flex:auto;position:relative}.d-flex{display:flex!important}.d-inline{display:inline!important}.m-1{margin:4px}.m-2{margin:8px}.m-3{margin:16px}.m-4{margin:24px}.m-5{margin:32px}.mx-1{margin:0 4px}.mx-2{margin:0 8px}.mx-3{margin:0 16px}.mx-4{margin:0 24px}.mx-5{margin:0 32px}.my-1{margin:4px 0}.my-2{margin:8px 0}.my-3{margin:16px 0}.my-4{margin:24px 0}.my-5{margin:32px 0}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:16px}.mt-4{margin-top:24px}.mt-5{margin-top:32px}.mr-1{margin-right:4px}.mr-2{margin-right:8px}.mr-3{margin-right:16px}.mr-4{margin-right:24px}.mr-5{margin-right:32px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:16px}.mb-4{margin-bottom:24px}.mb-5{margin-bottom:32px}.ml-1{margin-left:4px}.ml-2{margin-left:8px}.ml-3{margin-left:16px}.ml-4{margin-left:24px}.ml-5{margin-left:32px}.p-1{padding:4px}.p-2{padding:8px}.p-3{padding:16px}.p-4{padding:24px}.p-5{padding:32px}.px-1{padding:0 4px}.px-2{padding:0 8px}.px-3{padding:0 16px}.px-4{padding:0 24px}.px-5{padding:0 32px}.py-1{padding:4px 0}.py-2{padding:8px 0}.py-3{padding:16px 0}.py-4{padding:24px 0}.py-5{padding:32px 0}.pt-1{padding-top:4px}.pt-2{padding-top:8px}.pt-3{padding-top:16px}.pt-4{padding-top:24px}.pt-5{padding-top:32px}.pr-1{padding-right:4px}.pr-2{padding-right:8px}.pr-3{padding-right:16px}.pr-4{padding-right:24px}.pr-5{padding-right:32px}.pb-1{padding-bottom:4px}.pb-2{padding-bottom:8px}.pb-3{padding-bottom:16px}.pb-4{padding-bottom:24px}.pb-5{padding-bottom:32px}.pl-1{padding-left:4px}.pl-2{padding-left:8px}.pl-3{padding-left:16px}.pl-4{padding-left:24px}.pl-5{padding-left:32px}.no-wrap{white-space:nowrap!important}.float-left{float:left!important}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}.form-control,.form-select{padding:5px 12px;font-size:14px;line-height:20px;color:var(--color-fg-default);vertical-align:middle;background-color:var(--color-canvas-default);background-repeat:no-repeat;background-position:right 8px center;border:1px solid var(--color-border-default);border-radius:6px;outline:none;box-shadow:var(--color-primer-shadow-inset)}.input-contrast{background-color:var(--color-canvas-inset)}.subnav-search{position:relative;flex:auto;display:flex}.subnav-search-input{flex:auto;padding-left:32px;color:var(--color-fg-muted)}.subnav-search-icon{position:absolute;top:9px;left:8px;display:block;color:var(--color-fg-muted);text-align:center;pointer-events:none}.subnav-search-context+.subnav-search{margin-left:-1px}.subnav-item{flex:none;position:relative;float:left;padding:5px 10px;font-weight:500;line-height:20px;color:var(--color-fg-default);border:1px solid var(--color-border-default)}.subnav-item:hover{background-color:var(--color-canvas-subtle)}.subnav-item:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.subnav-item:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.subnav-item+.subnav-item{margin-left:-1px}.counter{display:inline-block;min-width:20px;padding:0 6px;font-size:12px;font-weight:500;line-height:18px;color:var(--color-fg-default);text-align:center;background-color:var(--color-neutral-muted);border:1px solid transparent;border-radius:2em}.color-icon-success{color:var(--color-success-fg)!important}.color-text-danger{color:var(--color-danger-fg)!important}.color-text-warning{color:var(--color-checks-step-warning-text)!important}.color-fg-muted{color:var(--color-fg-muted)!important}.octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor;margin-right:7px;flex:none}@media only screen and (max-width: 600px){.subnav-item,.form-control{border-radius:0!important}.subnav-item{padding:5px 3px;border:none}.subnav-search-input{border-left:0;border-right:0}}.header-view-status-container{float:right}@media only screen and (max-width: 600px){.header-view-status-container{float:none;margin:0 0 10px!important;overflow:hidden}.header-view-status-container .subnav-search-input{border-left:none;border-right:none}}.tree-item{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;line-height:38px}.tree-item-title{cursor:pointer}.tree-item-body{min-height:18px}.label{display:inline-block;padding:0 8px;font-size:12px;font-weight:500;line-height:18px;border:1px solid transparent;border-radius:2em;background-color:var(--color-scale-gray-4);color:#fff;margin:0 10px;flex:none;font-weight:600}@media (prefers-color-scheme: light){.label-color-0{background-color:var(--color-scale-blue-0);color:var(--color-scale-blue-6);border:1px solid var(--color-scale-blue-4)}.label-color-1{background-color:var(--color-scale-yellow-0);color:var(--color-scale-yellow-6);border:1px solid var(--color-scale-yellow-4)}.label-color-2{background-color:var(--color-scale-purple-0);color:var(--color-scale-purple-6);border:1px solid var(--color-scale-purple-4)}.label-color-3{background-color:var(--color-scale-pink-0);color:var(--color-scale-pink-6);border:1px solid var(--color-scale-pink-4)}.label-color-4{background-color:var(--color-scale-coral-0);color:var(--color-scale-coral-6);border:1px solid var(--color-scale-coral-4)}.label-color-5{background-color:var(--color-scale-orange-0);color:var(--color-scale-orange-6);border:1px solid var(--color-scale-orange-4)}}@media (prefers-color-scheme: dark){.label-color-0{background-color:var(--color-scale-blue-9);color:var(--color-scale-blue-2);border:1px solid var(--color-scale-blue-4)}.label-color-1{background-color:var(--color-scale-yellow-9);color:var(--color-scale-yellow-2);border:1px solid var(--color-scale-yellow-4)}.label-color-2{background-color:var(--color-scale-purple-9);color:var(--color-scale-purple-2);border:1px solid var(--color-scale-purple-4)}.label-color-3{background-color:var(--color-scale-pink-9);color:var(--color-scale-pink-2);border:1px solid var(--color-scale-pink-4)}.label-color-4{background-color:var(--color-scale-coral-9);color:var(--color-scale-coral-2);border:1px solid var(--color-scale-coral-4)}.label-color-5{background-color:var(--color-scale-orange-9);color:var(--color-scale-orange-2);border:1px solid var(--color-scale-orange-4)}}.attachment-body{white-space:pre-wrap;background-color:var(--color-canvas-subtle);margin-left:24px;line-height:normal;padding:8px;font-family:monospace}html,body{width:100%;height:100%;padding:0;margin:0;overscroll-behavior-x:none}body{overflow:auto;max-width:1024px;margin:0 auto;width:100%}.test-file-test:not(:first-child){border-top:1px solid var(--color-border-default)}@media only screen and (max-width: 600px){.htmlreport{padding:0!important}}.chip-header{border:1px solid var(--color-border-default);border-top-left-radius:6px;border-top-right-radius:6px;background-color:var(--color-canvas-subtle);padding:0 8px;border-bottom:none;margin-top:24px;font-weight:600;line-height:38px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-header.expanded-false{border:1px solid var(--color-border-default);border-radius:6px}.chip-header.expanded-false,.chip-header.expanded-true{cursor:pointer}.chip-body{border:1px solid var(--color-border-default);border-bottom-left-radius:6px;border-bottom-right-radius:6px;padding:16px}.chip-body-no-insets{padding:0}@media only screen and (max-width: 600px){.chip-header{border-radius:0;border-right:none;border-left:none}.chip-body{border-radius:0;border-right:none;border-left:none;padding:8px}.chip-body-no-insets{padding:0}}#root{color:var(--color-fg-default);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased}.tabbed-pane{display:flex;flex:auto;overflow:hidden}.tabbed-pane-tab-strip{display:flex;align-items:center;padding-right:10px;flex:none;width:100%;z-index:2;font-size:14px;line-height:32px;color:var(--color-fg-default);height:48px;min-width:70px;box-shadow:inset 0 -1px 0 var(--color-border-muted)!important}.tabbed-pane-tab-strip:focus{outline:none}.tabbed-pane-tab-element{padding:4px 8px 0;margin-right:4px;cursor:pointer;display:flex;flex:none;align-items:center;justify-content:center;user-select:none;border-bottom:2px solid transparent;outline:none;height:100%}.tabbed-pane-tab-label{max-width:250px;white-space:pre;overflow:hidden;text-overflow:ellipsis;display:inline-block}.tabbed-pane-tab-element.selected{border-bottom-color:#666}.tabbed-pane-tab-element:hover{color:#333}.test-case-column{border-radius:6px;margin:24px 0}.test-case-column .tab-element.selected{font-weight:600;border-bottom-color:var(--color-primer-border-active)}.test-case-column .tab-element{border:none;color:var(--color-fg-default);border-bottom:2px solid transparent}.test-case-column .tab-element:hover{color:var(--color-fg-default)}.test-case-title{flex:none;padding:8px;font-weight:400;font-size:32px!important;line-height:1.25!important}.test-case-location,.test-case-duration{flex:none;align-items:center;padding:0 8px 8px}.test-case-path{flex:none;align-items:center;padding:0 8px}.test-case-annotation{flex:none;align-items:center;padding:0 8px;line-height:24px}@media only screen and (max-width: 600px){.test-case-column{border-radius:0!important;margin:0!important}}.test-case-project-labels-row{display:flex;flex-direction:row;flex-wrap:wrap}.image-diff-view .tabbed-pane .tab-content{display:flex;align-items:center;justify-content:center;position:relative}.image-diff-view .image-wrapper img{flex:auto;box-shadow:none;margin:24px auto;min-width:200px;max-width:80%}.image-diff-view .image-wrapper{flex:auto;display:flex;flex-direction:column;align-items:center}.image-diff-view .image-wrapper div{flex:none;align-self:stretch;height:2em;font-weight:500;padding-top:1em;display:flex;flex-direction:row}.test-result{flex:auto;display:flex;flex-direction:column;margin-bottom:24px}.test-result>div{flex:none}.test-result video,.test-result img{flex:none;box-shadow:var(--box-shadow-thick);margin:24px auto;min-width:200px;max-width:80%}.test-result-path{padding:0 0 0 5px;color:var(--color-fg-muted)}.test-result-error-message{white-space:pre;font-family:monospace;overflow:auto;flex:none;background-color:var(--color-canvas-subtle);border-radius:6px;padding:16px;line-height:initial;margin-bottom:6px}.test-result-counter{border-radius:12px;color:var(--color-canvas-default);padding:2px 8px}@media (prefers-color-scheme: light){.test-result-counter{background:var(--color-scale-gray-5)}}@media (prefers-color-scheme: dark){.test-result-counter{background:var(--color-scale-gray-3)}}@media only screen and (max-width: 600px){.test-result{padding:0!important}}.test-file-test{line-height:32px;align-items:center;padding:2px 10px;overflow:hidden;text-overflow:ellipsis}.test-file-test:hover{background-color:var(--color-canvas-subtle)}.test-file-title{font-weight:600;font-size:16px}.test-file-details-row{padding:0 0 6px 8px;margin:0 0 0 15px;line-height:16px;font-weight:400;color:var(--color-fg-subtle);display:flex;align-items:center}.test-file-path{text-overflow:ellipsis;overflow:hidden;color:var(--color-fg-subtle)}.test-file-path-link{margin-right:10px}.test-file-badge{flex:none}.test-file-badge svg{fill:var(--color-fg-subtle)}.test-file-badge:hover svg{fill:var(--color-fg-muted)}.test-file-test-outcome-skipped{color:var(--color-fg-muted)}.test-file-test-status-icon{flex:none}
+</style>
+  </head>
+  <body>
+    <div id='root'></div>
+    
+  </body>
+</html>
+<script>
+window.playwrightReportBase64 = "data:application/zip;base64,UEsDBBQAAAgIAAhS81Y0S/t9WwAAAHwAAAALAAAAcmVwb3J0Lmpzb25VikEKgCAUBe/y1i5ae4guEC0++YVSU/QLhXj3ImrRbmaYhsBChoSgW1ewq+cCPc0KKceNFxkpfKUIyY0NEoU89KDAR7ofNo/U/afWkzsfKm5N6a3RQUuu3PsFUEsBAj8DFAAACAgACFLzVjRL+31bAAAAfAAAAAsAAAAAAAAAAAAAALSBAAAAAHJlcG9ydC5qc29uUEsFBgAAAAABAAEAOQAAAIQAAAAAAA==";</script>

+ 5 - 5
playwright.config.js → playwright-tests/playwright.config.js

@@ -12,7 +12,7 @@ const path = require("path");
  * @see https://playwright.dev/docs/test-configuration
  */
 module.exports = defineConfig({
-  testDir: "./playwright-tests",
+  testDir: ".",
   /* Run tests in files in parallel */
   fullyParallel: true,
   /* Fail the build on CI if you accidentally left test.only in the source code. */
@@ -81,16 +81,16 @@ module.exports = defineConfig({
       stdout: "pipe",
     },
     {
-      cwd: path.join(process.cwd(), "playwright-tests", "web"),
-      command: "dioxus serve",
+      cwd: path.join(process.cwd(), "web"),
+      command: "cargo run --package dioxus-cli -- serve",
       port: 8080,
       timeout: 10 * 60 * 1000,
       reuseExistingServer: !process.env.CI,
       stdout: "pipe",
     },
     {
-      cwd: path.join(process.cwd(), 'playwright-tests', 'fullstack'),
-      command: 'dioxus build --features web --release\ncargo run --release --features ssr --no-default-features',
+      cwd: path.join(process.cwd(), 'fullstack'),
+      command: 'cargo run --package dioxus-cli -- build --features web --release\ncargo run --release --features ssr',
       port: 3333,
       timeout: 10 * 60 * 1000,
       reuseExistingServer: !process.env.CI,