From 68d7924afab0cbca6b1655b2f949648b5431eb49 Mon Sep 17 00:00:00 2001 From: Ben McClelland Date: Fri, 16 Jan 2026 13:52:17 -0800 Subject: [PATCH] feat: add web-based UI for S3 object management and admin operations Implements a web interface for VersityGW with role-based access: - Object explorer for all users to browse, upload, and download S3 objects - Admin dashboard showing system overview and gateway status - Admin-only user management for IAM user administration - Admin-only bucket management for creating and configuring S3 buckets - User authentication with automatic role-based page access The web UI is disabled by default and only enabled with the --webui or VGW_WEBUI_PORT env options that specify the listening address/port for the web UI server. This preserves previous version behavior to not enable any new ports/services unless opted in. Login to the web UI login page with accesskey/secretkey credentials as either user or admin account. UI functionality will auto detect login role. Regular users have access to the object explorer for managing files within their accessible buckets. Admins additionally have access to user and bucket management interfaces. The web UI is served on a separate port from the S3 server and integrates with existing S3 and Admin API endpoints. All requests to the S3 and Admin services are signed by the browser and sent directly to the S3/Admin service handlers. The login credentials are never sent over the network for security purposes. This requires the S3/Admin service to configure CORS Access-Control-Allow-Origin headers for these requests. --- cmd/versitygw/main.go | 221 +- extra/example.conf | 36 + s3api/admin-server.go | 2 +- s3api/server.go | 2 +- webui/embed.go | 26 + webui/web/assets/LICENSES.txt | 71 + webui/web/assets/css/fonts.css | 35 + webui/web/assets/css/tailwind.js | 83 + webui/web/assets/fonts/roboto-400.woff2 | Bin 0 -> 11028 bytes webui/web/assets/fonts/roboto-500.woff2 | Bin 0 -> 11072 bytes webui/web/assets/fonts/roboto-600.woff2 | Bin 0 -> 11040 bytes webui/web/assets/fonts/roboto-700.woff2 | Bin 0 -> 11040 bytes .../images/Versity-logo-blue-horizontal.png | Bin 0 -> 64300 bytes .../images/Versity-logo-white-horizontal.png | Bin 0 -> 80264 bytes webui/web/assets/js/crypto-js.min.js | 1 + webui/web/buckets.html | 705 +++ webui/web/dashboard.html | 358 ++ webui/web/explorer.html | 4120 +++++++++++++++++ webui/web/index.html | 836 ++++ webui/web/js/api.js | 2072 +++++++++ webui/web/js/app.js | 369 ++ webui/web/users.html | 621 +++ webui/webserver.go | 140 + 23 files changed, 9692 insertions(+), 6 deletions(-) create mode 100644 webui/embed.go create mode 100644 webui/web/assets/LICENSES.txt create mode 100644 webui/web/assets/css/fonts.css create mode 100644 webui/web/assets/css/tailwind.js create mode 100644 webui/web/assets/fonts/roboto-400.woff2 create mode 100644 webui/web/assets/fonts/roboto-500.woff2 create mode 100644 webui/web/assets/fonts/roboto-600.woff2 create mode 100644 webui/web/assets/fonts/roboto-700.woff2 create mode 100644 webui/web/assets/images/Versity-logo-blue-horizontal.png create mode 100644 webui/web/assets/images/Versity-logo-white-horizontal.png create mode 100644 webui/web/assets/js/crypto-js.min.js create mode 100644 webui/web/buckets.html create mode 100644 webui/web/dashboard.html create mode 100644 webui/web/explorer.html create mode 100644 webui/web/index.html create mode 100644 webui/web/js/api.js create mode 100644 webui/web/js/app.js create mode 100644 webui/web/users.html create mode 100644 webui/webserver.go diff --git a/cmd/versitygw/main.go b/cmd/versitygw/main.go index 399f061b..c3ba045b 100644 --- a/cmd/versitygw/main.go +++ b/cmd/versitygw/main.go @@ -23,6 +23,7 @@ import ( "net/http" _ "net/http/pprof" "os" + "strconv" "strings" "github.com/urfave/cli/v2" @@ -35,6 +36,7 @@ import ( "github.com/versity/versitygw/s3api/utils" "github.com/versity/versitygw/s3event" "github.com/versity/versitygw/s3log" + "github.com/versity/versitygw/webui" ) var ( @@ -90,6 +92,9 @@ var ( ipaUser, ipaPassword string ipaInsecure bool iamDebug bool + webuiAddr string + webuiCertFile, webuiKeyFile string + webuiNoTLS bool ) var ( @@ -167,6 +172,30 @@ func initFlags() []cli.Flag { Destination: &port, Aliases: []string{"p"}, }, + &cli.StringFlag{ + Name: "webui", + Usage: "enable WebUI server on the specified listen address (e.g. ':7071', '127.0.0.1:7071', 'localhost:7071'; disabled when omitted)", + EnvVars: []string{"VGW_WEBUI_PORT"}, + Destination: &webuiAddr, + }, + &cli.StringFlag{ + Name: "webui-cert", + Usage: "TLS cert file for WebUI (defaults to --cert value when WebUI is enabled)", + EnvVars: []string{"VGW_WEBUI_CERT"}, + Destination: &webuiCertFile, + }, + &cli.StringFlag{ + Name: "webui-key", + Usage: "TLS key file for WebUI (defaults to --key value when WebUI is enabled)", + EnvVars: []string{"VGW_WEBUI_KEY"}, + Destination: &webuiKeyFile, + }, + &cli.BoolFlag{ + Name: "webui-no-tls", + Usage: "disable TLS for WebUI even if TLS is configured for the gateway", + EnvVars: []string{"VGW_WEBUI_NO_TLS"}, + Destination: &webuiNoTLS, + }, &cli.StringFlag{ Name: "access", Usage: "root user access key", @@ -645,6 +674,42 @@ func runGateway(ctx context.Context, be backend.Backend) error { return fmt.Errorf("root user access and secret key must be provided") } + webuiAddr = strings.TrimSpace(webuiAddr) + if webuiAddr != "" && isAllDigits(webuiAddr) { + webuiAddr = ":" + webuiAddr + } + + // WebUI runs in a browser and typically talks to the gateway/admin APIs cross-origin + // (different port). If no bucket CORS configuration exists, those API responses need + // a default Access-Control-Allow-Origin to be usable from the WebUI. + if webuiAddr != "" && strings.TrimSpace(corsAllowOrigin) == "" { + // A single Access-Control-Allow-Origin value cannot cover multiple specific + // origins. Default to '*' for usability and print a warning so operators can + // lock it down explicitly. + corsAllowOrigin = "*" + webuiScheme := "http" + if !webuiNoTLS && (strings.TrimSpace(webuiCertFile) != "" || strings.TrimSpace(certFile) != "") { + webuiScheme = "https" + } + + // Suggest a more secure explicit origin based on the actual WebUI listening interfaces. + // (Browsers require an exact origin match; this is typically one chosen hostname/IP.) + var suggestion string + ips, ipsErr := getMatchingIPs(webuiAddr) + _, webPrt, prtErr := net.SplitHostPort(webuiAddr) + if ipsErr == nil && prtErr == nil && len(ips) > 0 { + origins := make([]string, 0, len(ips)) + for _, ip := range ips { + origins = append(origins, fmt.Sprintf("%s://%s:%s", webuiScheme, ip, webPrt)) + } + suggestion = fmt.Sprintf("consider setting it to one of: %s (or your public hostname)", strings.Join(origins, ", ")) + } else { + suggestion = fmt.Sprintf("consider setting it to %s://:", webuiScheme) + } + + fmt.Fprintf(os.Stderr, "WARNING: --webui is enabled but --cors-allow-origin is not set; defaulting to '*'; %s\n", suggestion) + } + utils.SetBucketNameValidationStrict(!disableStrictBucketNames) if pprof != "" { @@ -824,15 +889,96 @@ func runGateway(ctx context.Context, be backend.Backend) error { admSrv = s3api.NewAdminServer(be, middlewares.RootUserConfig{Access: rootUserAccess, Secret: rootUserSecret}, admPort, region, iam, loggers.AdminLogger, srv.Router.Ctrl, opts...) } - if !quiet { - printBanner(port, admPort, certFile != "", admCertFile != "") + var webSrv *webui.Server + webuiSSLEnabled := false + if webuiAddr != "" { + _, webPrt, err := net.SplitHostPort(webuiAddr) + if err != nil { + return fmt.Errorf("webui listen address must be in the form ':port' or 'host:port': %w", err) + } + webPortNum, err := strconv.Atoi(webPrt) + if err != nil { + return fmt.Errorf("webui port must be a number: %w", err) + } + if webPortNum < 0 || webPortNum > 65535 { + return fmt.Errorf("webui port must be between 0 and 65535") + } + + webTLSCert := "" + webTLSKey := "" + if !webuiNoTLS { + // WebUI can either use explicitly provided TLS files or reuse the + // gateway's TLS files by default. + webTLSCert = webuiCertFile + webTLSKey = webuiKeyFile + if webTLSCert == "" && webTLSKey == "" { + webTLSCert = certFile + webTLSKey = keyFile + } + if webTLSCert != "" || webTLSKey != "" { + if webTLSCert == "" { + return fmt.Errorf("webui TLS key specified without cert file") + } + if webTLSKey == "" { + return fmt.Errorf("webui TLS cert specified without key file") + } + webuiSSLEnabled = true + } + } + + sslEnabled := certFile != "" + admSSLEnabled := sslEnabled + if admPort != "" { + admSSLEnabled = admCertFile != "" + } + + gateways, err := buildServiceURLs(port, sslEnabled) + if err != nil { + return fmt.Errorf("webui: build gateway URLs: %w", err) + } + + adminGateways := gateways + if admPort != "" { + adminGateways, err = buildServiceURLs(admPort, admSSLEnabled) + if err != nil { + return fmt.Errorf("webui: build admin gateway URLs: %w", err) + } + } + + var webOpts []webui.Option + if quiet { + webOpts = append(webOpts, webui.WithQuiet()) + } + + webSrv = webui.NewServer(&webui.ServerConfig{ + ListenAddr: webuiAddr, + Gateways: gateways, + AdminGateways: adminGateways, + Region: region, + TLSCert: webTLSCert, + TLSKey: webTLSKey, + }, webOpts...) } - c := make(chan error, 2) + if !quiet { + printBanner(port, admPort, certFile != "", admCertFile != "", webuiAddr, webuiSSLEnabled) + } + + servers := 1 + if admPort != "" { + servers++ + } + if webSrv != nil { + servers++ + } + c := make(chan error, servers) go func() { c <- srv.Serve() }() if admPort != "" { go func() { c <- admSrv.Serve() }() } + if webSrv != nil { + go func() { c <- webSrv.Serve() }() + } // for/select blocks until shutdown Loop: @@ -875,6 +1021,13 @@ Loop: } } + if webSrv != nil { + err := webSrv.Shutdown() + if err != nil { + fmt.Fprintf(os.Stderr, "shutdown webui server: %v\n", err) + } + } + be.Shutdown() err = iam.Shutdown() @@ -909,7 +1062,7 @@ Loop: return saveErr } -func printBanner(port, admPort string, ssl, admSsl bool) { +func printBanner(port, admPort string, ssl, admSsl bool, webuiAddr string, webuiSsl bool) { interfaces, err := getMatchingIPs(port) if err != nil { fmt.Fprintf(os.Stderr, "Failed to match local IP addresses: %v\n", err) @@ -991,6 +1144,30 @@ func printBanner(port, admPort string, ssl, admSsl bool) { } } + if strings.TrimSpace(webuiAddr) != "" { + webInterfaces, err := getMatchingIPs(webuiAddr) + if err != nil { + fmt.Fprintf(os.Stderr, "Failed to match webui port local IP addresses: %v\n", err) + return + } + _, webPrt, err := net.SplitHostPort(webuiAddr) + if err != nil { + fmt.Fprintf(os.Stderr, "Failed to parse webui port: %v\n", err) + return + } + lines = append(lines, + centerText(""), + leftText("WebUI listening on:"), + ) + for _, ip := range webInterfaces { + url := fmt.Sprintf("http://%s:%s", ip, webPrt) + if webuiSsl { + url = fmt.Sprintf("https://%s:%s", ip, webPrt) + } + lines = append(lines, leftText(" "+url)) + } + } + // Print the top border fmt.Println("┌" + strings.Repeat("─", columnWidth-2) + "┐") @@ -1066,6 +1243,42 @@ func getMatchingIPs(spec string) ([]string, error) { return result, nil } +func buildServiceURLs(spec string, ssl bool) ([]string, error) { + interfaces, err := getMatchingIPs(spec) + if err != nil { + return nil, err + } + _, prt, err := net.SplitHostPort(spec) + if err != nil { + return nil, fmt.Errorf("parse address/port: %w", err) + } + if len(interfaces) == 0 { + interfaces = []string{"localhost"} + } + + scheme := "http" + if ssl { + scheme = "https" + } + urls := make([]string, 0, len(interfaces)) + for _, ip := range interfaces { + urls = append(urls, fmt.Sprintf("%s://%s:%s", scheme, ip, prt)) + } + return urls, nil +} + +func isAllDigits(s string) bool { + if s == "" { + return false + } + for _, r := range s { + if r < '0' || r > '9' { + return false + } + } + return true +} + const columnWidth = 70 func centerText(text string) string { diff --git a/extra/example.conf b/extra/example.conf index 921896d3..d8311f69 100644 --- a/extra/example.conf +++ b/extra/example.conf @@ -201,6 +201,42 @@ ROOT_SECRET_ACCESS_KEY= # to generate a default rules file "event_config.json" in the current directory. #VGW_EVENT_FILTER= +########### +# Web GUI # +########### + +# The VGW_WEBUI_PORT option enables the Web GUI server on the specified +# listening address. The Web GUI provides a browser-based interface for managing +# users, buckets and objects. The format can be either ':port' to listen on all +# interfaces (e.g., ':7071') or 'host:port' to listen on a specific interface +# (e.g., '127.0.0.1:7071' or 'localhost:7071'). When omitted, the Web GUI is +# disabled. +#VGW_WEBUI_PORT= + +# The VGW_WEBUI_CERT and VGW_WEBUI_KEY options specify the TLS certificate and +# private key for the Web GUI server. If these are not specified and TLS is +# configured for the gateway (VGW_CERT and VGW_KEY), the Web GUI will use the +# same certificates as the gateway. If neither are specified, the Web GUI will +# run without TLS (HTTP only). These options allow the Web GUI to use different +# certificates than the main S3 gateway. +#VGW_WEBUI_CERT= +#VGW_WEBUI_KEY= + +# The VGW_WEBUI_NO_TLS option disables TLS for the Web GUI even if TLS +# certificates are configured for the gateway. Set to true to force the Web GUI +# to use HTTP instead of HTTPS. This can be useful when running the Web GUI +# behind a reverse proxy that handles TLS termination. +#VGW_WEBUI_NO_TLS=false + +# The VGW_CORS_ALLOW_ORIGIN option sets the default CORS (Cross-Origin Resource +# Sharing) Access-Control-Allow-Origin header value. This header is applied to +# responses when no bucket-specific CORS configuration exists, and for all admin +# API responses. When the Web GUI is enabled and this option is not set, it +# defaults to '*' (allow all origins) for usability. For production environments, +# it is recommended to set this to a specific origin (e.g., +# 'https://webui.example.com') to improve security. +#VGW_CORS_ALLOW_ORIGIN= + ####################### # Debug / Diagnostics # ####################### diff --git a/s3api/admin-server.go b/s3api/admin-server.go index 9ecb38f0..7efa1a12 100644 --- a/s3api/admin-server.go +++ b/s3api/admin-server.go @@ -71,7 +71,7 @@ func NewAdminServer(be backend.Backend, root middlewares.RootUserConfig, port, r // Logging middlewares if !server.quiet { app.Use(logger.New(logger.Config{ - Format: "${time} | ${status} | ${latency} | ${ip} | ${method} | ${path} | ${error} | ${queryParams}\n", + Format: "${time} | adm | ${status} | ${latency} | ${ip} | ${method} | ${path} | ${error} | ${queryParams}\n", })) } app.Use(controllers.WrapMiddleware(middlewares.DecodeURL, l, nil)) diff --git a/s3api/server.go b/s3api/server.go index d32c506e..5eaee8d3 100644 --- a/s3api/server.go +++ b/s3api/server.go @@ -97,7 +97,7 @@ func New( // Logging middlewares if !server.quiet { app.Use(logger.New(logger.Config{ - Format: "${time} | ${status} | ${latency} | ${ip} | ${method} | ${path} | ${error} | ${queryParams}\n", + Format: "${time} | vgw | ${status} | ${latency} | ${ip} | ${method} | ${path} | ${error} | ${queryParams}\n", })) } // Set up health endpoint if specified diff --git a/webui/embed.go b/webui/embed.go new file mode 100644 index 00000000..582cd78e --- /dev/null +++ b/webui/embed.go @@ -0,0 +1,26 @@ +// Copyright 2026 Versity Software +// This file is licensed under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package webui + +import "embed" + +// webFiles embeds the admin GUI static files from web/. +// The "all:" prefix recursively includes all files and subdirectories. +// +//go:embed all:web +var webFiles embed.FS + +// webFS is an alias for webFiles for consistency with server.go +var webFS = webFiles diff --git a/webui/web/assets/LICENSES.txt b/webui/web/assets/LICENSES.txt new file mode 100644 index 00000000..1e603777 --- /dev/null +++ b/webui/web/assets/LICENSES.txt @@ -0,0 +1,71 @@ +================================================================================ +TAILWIND CSS +================================================================================ +MIT License + +Copyright (c) Tailwind Labs, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +================================================================================ +ROBOTO FONT +================================================================================ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +Copyright 2011 Google Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +================================================================================ +CRYPTO-JS +================================================================================ +MIT License + +Copyright (c) 2009-2013 Jeff Mott +Copyright (c) 2013-2016 Evan Vosberg + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/webui/web/assets/css/fonts.css b/webui/web/assets/css/fonts.css new file mode 100644 index 00000000..e4c12b3d --- /dev/null +++ b/webui/web/assets/css/fonts.css @@ -0,0 +1,35 @@ +/* Roboto Font - Regular (400) */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('../fonts/roboto-400.woff2') format('woff2'); +} + +/* Roboto Font - Medium (500) */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url('../fonts/roboto-500.woff2') format('woff2'); +} + +/* Roboto Font - Semi-Bold (600) */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('../fonts/roboto-600.woff2') format('woff2'); +} + +/* Roboto Font - Bold (700) */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url('../fonts/roboto-700.woff2') format('woff2'); +} diff --git a/webui/web/assets/css/tailwind.js b/webui/web/assets/css/tailwind.js new file mode 100644 index 00000000..573c1659 --- /dev/null +++ b/webui/web/assets/css/tailwind.js @@ -0,0 +1,83 @@ +(()=>{var qv=Object.create;var Hi=Object.defineProperty;var $v=Object.getOwnPropertyDescriptor;var Lv=Object.getOwnPropertyNames;var Mv=Object.getPrototypeOf,Nv=Object.prototype.hasOwnProperty;var df=r=>Hi(r,"__esModule",{value:!0});var hf=r=>{if(typeof require!="undefined")return require(r);throw new Error('Dynamic require of "'+r+'" is not supported')};var P=(r,e)=>()=>(r&&(e=r(r=0)),e);var x=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Ge=(r,e)=>{df(r);for(var t in e)Hi(r,t,{get:e[t],enumerable:!0})},Bv=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Lv(e))!Nv.call(r,i)&&i!=="default"&&Hi(r,i,{get:()=>e[i],enumerable:!(t=$v(e,i))||t.enumerable});return r},pe=r=>Bv(df(Hi(r!=null?qv(Mv(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var m,u=P(()=>{m={platform:"",env:{},versions:{node:"14.17.6"}}});var Fv,be,ft=P(()=>{u();Fv=0,be={readFileSync:r=>self[r]||"",statSync:()=>({mtimeMs:Fv++}),promises:{readFile:r=>Promise.resolve(self[r]||"")}}});var Fs=x((oP,gf)=>{u();"use strict";var mf=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof e.maxAge=="number"&&e.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||1/0,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if(typeof this.onEviction=="function")for(let[t,i]of e)this.onEviction(t,i.value)}_deleteIfExpired(e,t){return typeof t.expiry=="number"&&t.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(e,t.value),this.delete(e)):!1}_getOrDeleteIfExpired(e,t){if(this._deleteIfExpired(e,t)===!1)return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){let i=t.get(e);return this._getItemValue(e,i)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(let e of this.oldCache){let[t,i]=e;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield e)}for(let e of this.cache){let[t,i]=e;this._deleteIfExpired(t,i)===!1&&(yield e)}}get(e){if(this.cache.has(e)){let t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){let t=this.oldCache.get(e);if(this._deleteIfExpired(e,t)===!1)return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:i=this.maxAge===1/0?void 0:Date.now()+this.maxAge}={}){this.cache.has(e)?this.cache.set(e,{value:t,maxAge:i}):this._set(e,{value:t,expiry:i})}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):!1}peek(e){if(this.cache.has(e))return this._peek(e,this.cache);if(this.oldCache.has(e))return this._peek(e,this.oldCache)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let t=[...this._entriesAscending()],i=t.length-e;i<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(i>0&&this._emitEvictions(t.slice(0,i)),this.oldCache=new Map(t.slice(i)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache){let[t,i]=e;this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}for(let e of this.oldCache){let[t,i]=e;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){let i=e[t],[n,s]=i;this._deleteIfExpired(n,s)===!1&&(yield[n,s.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){let i=e[t],[n,s]=i;this.cache.has(n)||this._deleteIfExpired(n,s)===!1&&(yield[n,s.value])}}*entriesAscending(){for(let[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};gf.exports=mf});var yf,bf=P(()=>{u();yf=r=>r&&r._hash});function Wi(r){return yf(r,{ignoreUnknown:!0})}var wf=P(()=>{u();bf()});function xt(r){if(r=`${r}`,r==="0")return"0";if(/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(r))return r.replace(/^[+-]?/,t=>t==="-"?"":"-");let e=["var","calc","min","max","clamp"];for(let t of e)if(r.includes(`${t}(`))return`calc(${r} * -1)`}var Gi=P(()=>{u()});var vf,xf=P(()=>{u();vf=["preflight","container","accessibility","pointerEvents","visibility","position","inset","isolation","zIndex","order","gridColumn","gridColumnStart","gridColumnEnd","gridRow","gridRowStart","gridRowEnd","float","clear","margin","boxSizing","lineClamp","display","aspectRatio","size","height","maxHeight","minHeight","width","minWidth","maxWidth","flex","flexShrink","flexGrow","flexBasis","tableLayout","captionSide","borderCollapse","borderSpacing","transformOrigin","translate","rotate","skew","scale","transform","animation","cursor","touchAction","userSelect","resize","scrollSnapType","scrollSnapAlign","scrollSnapStop","scrollMargin","scrollPadding","listStylePosition","listStyleType","listStyleImage","appearance","columns","breakBefore","breakInside","breakAfter","gridAutoColumns","gridAutoFlow","gridAutoRows","gridTemplateColumns","gridTemplateRows","flexDirection","flexWrap","placeContent","placeItems","alignContent","alignItems","justifyContent","justifyItems","gap","space","divideWidth","divideStyle","divideColor","divideOpacity","placeSelf","alignSelf","justifySelf","overflow","overscrollBehavior","scrollBehavior","textOverflow","hyphens","whitespace","textWrap","wordBreak","borderRadius","borderWidth","borderStyle","borderColor","borderOpacity","backgroundColor","backgroundOpacity","backgroundImage","gradientColorStops","boxDecorationBreak","backgroundSize","backgroundAttachment","backgroundClip","backgroundPosition","backgroundRepeat","backgroundOrigin","fill","stroke","strokeWidth","objectFit","objectPosition","padding","textAlign","textIndent","verticalAlign","fontFamily","fontSize","fontWeight","textTransform","fontStyle","fontVariantNumeric","lineHeight","letterSpacing","textColor","textOpacity","textDecoration","textDecorationColor","textDecorationStyle","textDecorationThickness","textUnderlineOffset","fontSmoothing","placeholderColor","placeholderOpacity","caretColor","accentColor","opacity","backgroundBlendMode","mixBlendMode","boxShadow","boxShadowColor","outlineStyle","outlineWidth","outlineOffset","outlineColor","ringWidth","ringColor","ringOpacity","ringOffsetWidth","ringOffsetColor","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","saturate","sepia","filter","backdropBlur","backdropBrightness","backdropContrast","backdropGrayscale","backdropHueRotate","backdropInvert","backdropOpacity","backdropSaturate","backdropSepia","backdropFilter","transitionProperty","transitionDelay","transitionDuration","transitionTimingFunction","willChange","contain","content","forcedColorAdjust"]});function kf(r,e){return r===void 0?e:Array.isArray(r)?r:[...new Set(e.filter(i=>r!==!1&&r[i]!==!1).concat(Object.keys(r).filter(i=>r[i]!==!1)))]}var Sf=P(()=>{u()});var Af={};Ge(Af,{default:()=>Qe});var Qe,Qi=P(()=>{u();Qe=new Proxy({},{get:()=>String})});function js(r,e,t){typeof m!="undefined"&&m.env.JEST_WORKER_ID||t&&Cf.has(t)||(t&&Cf.add(t),console.warn(""),e.forEach(i=>console.warn(r,"-",i)))}function zs(r){return Qe.dim(r)}var Cf,G,Be=P(()=>{u();Qi();Cf=new Set;G={info(r,e){js(Qe.bold(Qe.cyan("info")),...Array.isArray(r)?[r]:[e,r])},warn(r,e){["content-problems"].includes(r)||js(Qe.bold(Qe.yellow("warn")),...Array.isArray(r)?[r]:[e,r])},risk(r,e){js(Qe.bold(Qe.magenta("risk")),...Array.isArray(r)?[r]:[e,r])}}});var _f={};Ge(_f,{default:()=>Us});function qr({version:r,from:e,to:t}){G.warn(`${e}-color-renamed`,[`As of Tailwind CSS ${r}, \`${e}\` has been renamed to \`${t}\`.`,"Update your configuration file to silence this warning."])}var Us,Vs=P(()=>{u();Be();Us={inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},zinc:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},neutral:{50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},stone:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},red:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},orange:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},amber:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},yellow:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},lime:{50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},green:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},emerald:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},teal:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},cyan:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},sky:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},blue:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},indigo:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},violet:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},purple:{50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},fuchsia:{50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},pink:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},rose:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},get lightBlue(){return qr({version:"v2.2",from:"lightBlue",to:"sky"}),this.sky},get warmGray(){return qr({version:"v3.0",from:"warmGray",to:"stone"}),this.stone},get trueGray(){return qr({version:"v3.0",from:"trueGray",to:"neutral"}),this.neutral},get coolGray(){return qr({version:"v3.0",from:"coolGray",to:"gray"}),this.gray},get blueGray(){return qr({version:"v3.0",from:"blueGray",to:"slate"}),this.slate}}});function Hs(r,...e){for(let t of e){for(let i in t)r?.hasOwnProperty?.(i)||(r[i]=t[i]);for(let i of Object.getOwnPropertySymbols(t))r?.hasOwnProperty?.(i)||(r[i]=t[i])}return r}var Ef=P(()=>{u()});function kt(r){if(Array.isArray(r))return r;let e=r.split("[").length-1,t=r.split("]").length-1;if(e!==t)throw new Error(`Path is invalid. Has unbalanced brackets: ${r}`);return r.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean)}var Yi=P(()=>{u()});function we(r,e){return Ki.future.includes(e)?r.future==="all"||(r?.future?.[e]??Of[e]??!1):Ki.experimental.includes(e)?r.experimental==="all"||(r?.experimental?.[e]??Of[e]??!1):!1}function Tf(r){return r.experimental==="all"?Ki.experimental:Object.keys(r?.experimental??{}).filter(e=>Ki.experimental.includes(e)&&r.experimental[e])}function Rf(r){if(m.env.JEST_WORKER_ID===void 0&&Tf(r).length>0){let e=Tf(r).map(t=>Qe.yellow(t)).join(", ");G.warn("experimental-flags-enabled",[`You have enabled experimental features: ${e}`,"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time."])}}var Of,Ki,ct=P(()=>{u();Qi();Be();Of={optimizeUniversalDefaults:!1,generalizedModifiers:!0,disableColorOpacityUtilitiesByDefault:!1,relativeContentPathsByDefault:!1},Ki={future:["hoverOnlyWhenSupported","respectDefaultRingColorOpacity","disableColorOpacityUtilitiesByDefault","relativeContentPathsByDefault"],experimental:["optimizeUniversalDefaults","generalizedModifiers"]}});function Pf(r){(()=>{if(r.purge||!r.content||!Array.isArray(r.content)&&!(typeof r.content=="object"&&r.content!==null))return!1;if(Array.isArray(r.content))return r.content.every(t=>typeof t=="string"?!0:!(typeof t?.raw!="string"||t?.extension&&typeof t?.extension!="string"));if(typeof r.content=="object"&&r.content!==null){if(Object.keys(r.content).some(t=>!["files","relative","extract","transform"].includes(t)))return!1;if(Array.isArray(r.content.files)){if(!r.content.files.every(t=>typeof t=="string"?!0:!(typeof t?.raw!="string"||t?.extension&&typeof t?.extension!="string")))return!1;if(typeof r.content.extract=="object"){for(let t of Object.values(r.content.extract))if(typeof t!="function")return!1}else if(!(r.content.extract===void 0||typeof r.content.extract=="function"))return!1;if(typeof r.content.transform=="object"){for(let t of Object.values(r.content.transform))if(typeof t!="function")return!1}else if(!(r.content.transform===void 0||typeof r.content.transform=="function"))return!1;if(typeof r.content.relative!="boolean"&&typeof r.content.relative!="undefined")return!1}return!0}return!1})()||G.warn("purge-deprecation",["The `purge`/`content` options have changed in Tailwind CSS v3.0.","Update your configuration file to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#configure-content-sources"]),r.safelist=(()=>{let{content:t,purge:i,safelist:n}=r;return Array.isArray(n)?n:Array.isArray(t?.safelist)?t.safelist:Array.isArray(i?.safelist)?i.safelist:Array.isArray(i?.options?.safelist)?i.options.safelist:[]})(),r.blocklist=(()=>{let{blocklist:t}=r;if(Array.isArray(t)){if(t.every(i=>typeof i=="string"))return t;G.warn("blocklist-invalid",["The `blocklist` option must be an array of strings.","https://tailwindcss.com/docs/content-configuration#discarding-classes"])}return[]})(),typeof r.prefix=="function"?(G.warn("prefix-function",["As of Tailwind CSS v3.0, `prefix` cannot be a function.","Update `prefix` in your configuration to be a string to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function"]),r.prefix=""):r.prefix=r.prefix??"",r.content={relative:(()=>{let{content:t}=r;return t?.relative?t.relative:we(r,"relativeContentPathsByDefault")})(),files:(()=>{let{content:t,purge:i}=r;return Array.isArray(i)?i:Array.isArray(i?.content)?i.content:Array.isArray(t)?t:Array.isArray(t?.content)?t.content:Array.isArray(t?.files)?t.files:[]})(),extract:(()=>{let t=(()=>r.purge?.extract?r.purge.extract:r.content?.extract?r.content.extract:r.purge?.extract?.DEFAULT?r.purge.extract.DEFAULT:r.content?.extract?.DEFAULT?r.content.extract.DEFAULT:r.purge?.options?.extractors?r.purge.options.extractors:r.content?.options?.extractors?r.content.options.extractors:{})(),i={},n=(()=>{if(r.purge?.options?.defaultExtractor)return r.purge.options.defaultExtractor;if(r.content?.options?.defaultExtractor)return r.content.options.defaultExtractor})();if(n!==void 0&&(i.DEFAULT=n),typeof t=="function")i.DEFAULT=t;else if(Array.isArray(t))for(let{extensions:s,extractor:a}of t??[])for(let o of s)i[o]=a;else typeof t=="object"&&t!==null&&Object.assign(i,t);return i})(),transform:(()=>{let t=(()=>r.purge?.transform?r.purge.transform:r.content?.transform?r.content.transform:r.purge?.transform?.DEFAULT?r.purge.transform.DEFAULT:r.content?.transform?.DEFAULT?r.content.transform.DEFAULT:{})(),i={};return typeof t=="function"?i.DEFAULT=t:typeof t=="object"&&t!==null&&Object.assign(i,t),i})()};for(let t of r.content.files)if(typeof t=="string"&&/{([^,]*?)}/g.test(t)){G.warn("invalid-glob-braces",[`The glob pattern ${zs(t)} in your Tailwind CSS configuration is invalid.`,`Update it to ${zs(t.replace(/{([^,]*?)}/g,"$1"))} to silence this warning.`]);break}return r}var If=P(()=>{u();ct();Be()});function ke(r){if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||Object.getPrototypeOf(e)===null}var Kt=P(()=>{u()});function St(r){return Array.isArray(r)?r.map(e=>St(e)):typeof r=="object"&&r!==null?Object.fromEntries(Object.entries(r).map(([e,t])=>[e,St(t)])):r}var Xi=P(()=>{u()});function jt(r){return r.replace(/\\,/g,"\\2c ")}var Zi=P(()=>{u()});var Ws,Df=P(()=>{u();Ws={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});function $r(r,{loose:e=!1}={}){if(typeof r!="string")return null;if(r=r.trim(),r==="transparent")return{mode:"rgb",color:["0","0","0"],alpha:"0"};if(r in Ws)return{mode:"rgb",color:Ws[r].map(s=>s.toString())};let t=r.replace(zv,(s,a,o,l,c)=>["#",a,a,o,o,l,l,c?c+c:""].join("")).match(jv);if(t!==null)return{mode:"rgb",color:[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)].map(s=>s.toString()),alpha:t[4]?(parseInt(t[4],16)/255).toString():void 0};let i=r.match(Uv)??r.match(Vv);if(i===null)return null;let n=[i[2],i[3],i[4]].filter(Boolean).map(s=>s.toString());return n.length===2&&n[0].startsWith("var(")?{mode:i[1],color:[n[0]],alpha:n[1]}:!e&&n.length!==3||n.length<3&&!n.some(s=>/^var\(.*?\)$/.test(s))?null:{mode:i[1],color:n,alpha:i[5]?.toString?.()}}function Gs({mode:r,color:e,alpha:t}){let i=t!==void 0;return r==="rgba"||r==="hsla"?`${r}(${e.join(", ")}${i?`, ${t}`:""})`:`${r}(${e.join(" ")}${i?` / ${t}`:""})`}var jv,zv,At,Ji,qf,Ct,Uv,Vv,Qs=P(()=>{u();Df();jv=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,zv=/^#([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,At=/(?:\d+|\d*\.\d+)%?/,Ji=/(?:\s*,\s*|\s+)/,qf=/\s*[,/]\s*/,Ct=/var\(--(?:[^ )]*?)(?:,(?:[^ )]*?|var\(--[^ )]*?\)))?\)/,Uv=new RegExp(`^(rgba?)\\(\\s*(${At.source}|${Ct.source})(?:${Ji.source}(${At.source}|${Ct.source}))?(?:${Ji.source}(${At.source}|${Ct.source}))?(?:${qf.source}(${At.source}|${Ct.source}))?\\s*\\)$`),Vv=new RegExp(`^(hsla?)\\(\\s*((?:${At.source})(?:deg|rad|grad|turn)?|${Ct.source})(?:${Ji.source}(${At.source}|${Ct.source}))?(?:${Ji.source}(${At.source}|${Ct.source}))?(?:${qf.source}(${At.source}|${Ct.source}))?\\s*\\)$`)});function Je(r,e,t){if(typeof r=="function")return r({opacityValue:e});let i=$r(r,{loose:!0});return i===null?t:Gs({...i,alpha:e})}function Ae({color:r,property:e,variable:t}){let i=[].concat(e);if(typeof r=="function")return{[t]:"1",...Object.fromEntries(i.map(s=>[s,r({opacityVariable:t,opacityValue:`var(${t}, 1)`})]))};let n=$r(r);return n===null?Object.fromEntries(i.map(s=>[s,r])):n.alpha!==void 0?Object.fromEntries(i.map(s=>[s,r])):{[t]:"1",...Object.fromEntries(i.map(s=>[s,Gs({...n,alpha:`var(${t}, 1)`})]))}}var Lr=P(()=>{u();Qs()});function ve(r,e){let t=[],i=[],n=0,s=!1;for(let a=0;a{u()});function en(r){return ve(r,",").map(t=>{let i=t.trim(),n={raw:i},s=i.split(Wv),a=new Set;for(let o of s)$f.lastIndex=0,!a.has("KEYWORD")&&Hv.has(o)?(n.keyword=o,a.add("KEYWORD")):$f.test(o)?a.has("X")?a.has("Y")?a.has("BLUR")?a.has("SPREAD")||(n.spread=o,a.add("SPREAD")):(n.blur=o,a.add("BLUR")):(n.y=o,a.add("Y")):(n.x=o,a.add("X")):n.color?(n.unknown||(n.unknown=[]),n.unknown.push(o)):n.color=o;return n.valid=n.x!==void 0&&n.y!==void 0,n})}function Lf(r){return r.map(e=>e.valid?[e.keyword,e.x,e.y,e.blur,e.spread,e.color].filter(Boolean).join(" "):e.raw).join(", ")}var Hv,Wv,$f,Ys=P(()=>{u();zt();Hv=new Set(["inset","inherit","initial","revert","unset"]),Wv=/\ +(?![^(]*\))/g,$f=/^-?(\d+|\.\d+)(.*?)$/g});function Ks(r){return Gv.some(e=>new RegExp(`^${e}\\(.*\\)`).test(r))}function K(r,e=null,t=!0){let i=e&&Qv.has(e.property);return r.startsWith("--")&&!i?`var(${r})`:r.includes("url(")?r.split(/(url\(.*?\))/g).filter(Boolean).map(n=>/^url\(.*?\)$/.test(n)?n:K(n,e,!1)).join(""):(r=r.replace(/([^\\])_+/g,(n,s)=>s+" ".repeat(n.length-1)).replace(/^_/g," ").replace(/\\_/g,"_"),t&&(r=r.trim()),r=Yv(r),r)}function Ye(r){return r.includes("=")&&(r=r.replace(/(=.*)/g,(e,t)=>{if(t[1]==="'"||t[1]==='"')return t;if(t.length>2){let i=t[t.length-1];if(t[t.length-2]===" "&&(i==="i"||i==="I"||i==="s"||i==="S"))return`="${t.slice(1,-2)}" ${t[t.length-1]}`}return`="${t.slice(1)}"`})),r}function Yv(r){let e=["theme"],t=["min-content","max-content","fit-content","safe-area-inset-top","safe-area-inset-right","safe-area-inset-bottom","safe-area-inset-left","titlebar-area-x","titlebar-area-y","titlebar-area-width","titlebar-area-height","keyboard-inset-top","keyboard-inset-right","keyboard-inset-bottom","keyboard-inset-left","keyboard-inset-width","keyboard-inset-height","radial-gradient","linear-gradient","conic-gradient","repeating-radial-gradient","repeating-linear-gradient","repeating-conic-gradient","anchor-size"];return r.replace(/(calc|min|max|clamp)\(.+\)/g,i=>{let n="";function s(){let a=n.trimEnd();return a[a.length-1]}for(let a=0;ai[a+p]===d)},l=function(f){let d=1/0;for(let h of f){let b=i.indexOf(h,a);b!==-1&&bo(f))){let f=t.find(d=>o(d));n+=f,a+=f.length-1}else e.some(f=>o(f))?n+=l([")"]):o("[")?n+=l(["]"]):["+","-","*","/"].includes(c)&&!["(","+","-","*","/",","].includes(s())?n+=` ${c} `:n+=c}return n.replace(/\s+/g," ")})}function Xs(r){return r.startsWith("url(")}function Zs(r){return!isNaN(Number(r))||Ks(r)}function Mr(r){return r.endsWith("%")&&Zs(r.slice(0,-1))||Ks(r)}function Nr(r){return r==="0"||new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${Xv}$`).test(r)||Ks(r)}function Mf(r){return Zv.has(r)}function Nf(r){let e=en(K(r));for(let t of e)if(!t.valid)return!1;return!0}function Bf(r){let e=0;return ve(r,"_").every(i=>(i=K(i),i.startsWith("var(")?!0:$r(i,{loose:!0})!==null?(e++,!0):!1))?e>0:!1}function Ff(r){let e=0;return ve(r,",").every(i=>(i=K(i),i.startsWith("var(")?!0:Xs(i)||ex(i)||["element(","image(","cross-fade(","image-set("].some(n=>i.startsWith(n))?(e++,!0):!1))?e>0:!1}function ex(r){r=K(r);for(let e of Jv)if(r.startsWith(`${e}(`))return!0;return!1}function jf(r){let e=0;return ve(r,"_").every(i=>(i=K(i),i.startsWith("var(")?!0:tx.has(i)||Nr(i)||Mr(i)?(e++,!0):!1))?e>0:!1}function zf(r){let e=0;return ve(r,",").every(i=>(i=K(i),i.startsWith("var(")?!0:i.includes(" ")&&!/(['"])([^"']+)\1/g.test(i)||/^\d/g.test(i)?!1:(e++,!0)))?e>0:!1}function Uf(r){return rx.has(r)}function Vf(r){return ix.has(r)}function Hf(r){return nx.has(r)}var Gv,Qv,Kv,Xv,Zv,Jv,tx,rx,ix,nx,Br=P(()=>{u();Qs();Ys();zt();Gv=["min","max","clamp","calc"];Qv=new Set(["scroll-timeline-name","timeline-scope","view-timeline-name","font-palette","anchor-name","anchor-scope","position-anchor","position-try-options","scroll-timeline","animation-timeline","view-timeline","position-try"]);Kv=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],Xv=`(?:${Kv.join("|")})`;Zv=new Set(["thin","medium","thick"]);Jv=new Set(["conic-gradient","linear-gradient","radial-gradient","repeating-conic-gradient","repeating-linear-gradient","repeating-radial-gradient"]);tx=new Set(["center","top","right","bottom","left"]);rx=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]);ix=new Set(["xx-small","x-small","small","medium","large","x-large","xx-large","xxx-large"]);nx=new Set(["larger","smaller"])});function Wf(r){let e=["cover","contain"];return ve(r,",").every(t=>{let i=ve(t,"_").filter(Boolean);return i.length===1&&e.includes(i[0])?!0:i.length!==1&&i.length!==2?!1:i.every(n=>Nr(n)||Mr(n)||n==="auto")})}var Gf=P(()=>{u();Br();zt()});function Qf(r,e){r.walkClasses(t=>{t.value=e(t.value),t.raws&&t.raws.value&&(t.raws.value=jt(t.raws.value))})}function Yf(r,e){if(!_t(r))return;let t=r.slice(1,-1);if(!!e(t))return K(t)}function sx(r,e={},t){let i=e[r];if(i!==void 0)return xt(i);if(_t(r)){let n=Yf(r,t);return n===void 0?void 0:xt(n)}}function tn(r,e={},{validate:t=()=>!0}={}){let i=e.values?.[r];return i!==void 0?i:e.supportsNegativeValues&&r.startsWith("-")?sx(r.slice(1),e.values,t):Yf(r,t)}function _t(r){return r.startsWith("[")&&r.endsWith("]")}function Kf(r){let e=r.lastIndexOf("/"),t=r.lastIndexOf("[",e),i=r.indexOf("]",e);return r[e-1]==="]"||r[e+1]==="["||t!==-1&&i!==-1&&t")){let e=r;return({opacityValue:t=1})=>e.replace(//g,t)}return r}function Xf(r){return K(r.slice(1,-1))}function ax(r,e={},{tailwindConfig:t={}}={}){if(e.values?.[r]!==void 0)return Xt(e.values?.[r]);let[i,n]=Kf(r);if(n!==void 0){let s=e.values?.[i]??(_t(i)?i.slice(1,-1):void 0);return s===void 0?void 0:(s=Xt(s),_t(n)?Je(s,Xf(n)):t.theme?.opacity?.[n]===void 0?void 0:Je(s,t.theme.opacity[n]))}return tn(r,e,{validate:Bf})}function ox(r,e={}){return e.values?.[r]}function qe(r){return(e,t)=>tn(e,t,{validate:r})}function lx(r,e){let t=r.indexOf(e);return t===-1?[void 0,r]:[r.slice(0,t),r.slice(t+1)]}function ea(r,e,t,i){if(t.values&&e in t.values)for(let{type:s}of r??[]){let a=Js[s](e,t,{tailwindConfig:i});if(a!==void 0)return[a,s,null]}if(_t(e)){let s=e.slice(1,-1),[a,o]=lx(s,":");if(!/^[\w-_]+$/g.test(a))o=s;else if(a!==void 0&&!Zf.includes(a))return[];if(o.length>0&&Zf.includes(a))return[tn(`[${o}]`,t),a,null]}let n=ta(r,e,t,i);for(let s of n)return s;return[]}function*ta(r,e,t,i){let n=we(i,"generalizedModifiers"),[s,a]=Kf(e);if(n&&t.modifiers!=null&&(t.modifiers==="any"||typeof t.modifiers=="object"&&(a&&_t(a)||a in t.modifiers))||(s=e,a=void 0),a!==void 0&&s===""&&(s="DEFAULT"),a!==void 0&&typeof t.modifiers=="object"){let l=t.modifiers?.[a]??null;l!==null?a=l:_t(a)&&(a=Xf(a))}for(let{type:l}of r??[]){let c=Js[l](s,t,{tailwindConfig:i});c!==void 0&&(yield[c,l,a??null])}}var Js,Zf,Fr=P(()=>{u();Zi();Lr();Br();Gi();Gf();ct();Js={any:tn,color:ax,url:qe(Xs),image:qe(Ff),length:qe(Nr),percentage:qe(Mr),position:qe(jf),lookup:ox,"generic-name":qe(Uf),"family-name":qe(zf),number:qe(Zs),"line-width":qe(Mf),"absolute-size":qe(Vf),"relative-size":qe(Hf),shadow:qe(Nf),size:qe(Wf)},Zf=Object.keys(Js)});function X(r){return typeof r=="function"?r({}):r}var ra=P(()=>{u()});function Zt(r){return typeof r=="function"}function jr(r,...e){let t=e.pop();for(let i of e)for(let n in i){let s=t(r[n],i[n]);s===void 0?ke(r[n])&&ke(i[n])?r[n]=jr({},r[n],i[n],t):r[n]=i[n]:r[n]=s}return r}function ux(r,...e){return Zt(r)?r(...e):r}function fx(r){return r.reduce((e,{extend:t})=>jr(e,t,(i,n)=>i===void 0?[n]:Array.isArray(i)?[n,...i]:[n,i]),{})}function cx(r){return{...r.reduce((e,t)=>Hs(e,t),{}),extend:fx(r)}}function Jf(r,e){if(Array.isArray(r)&&ke(r[0]))return r.concat(e);if(Array.isArray(e)&&ke(e[0])&&ke(r))return[r,...e];if(Array.isArray(e))return e}function px({extend:r,...e}){return jr(e,r,(t,i)=>!Zt(t)&&!i.some(Zt)?jr({},t,...i,Jf):(n,s)=>jr({},...[t,...i].map(a=>ux(a,n,s)),Jf))}function*dx(r){let e=kt(r);if(e.length===0||(yield e,Array.isArray(r)))return;let t=/^(.*?)\s*\/\s*([^/]+)$/,i=r.match(t);if(i!==null){let[,n,s]=i,a=kt(n);a.alpha=s,yield a}}function hx(r){let e=(t,i)=>{for(let n of dx(t)){let s=0,a=r;for(;a!=null&&s(t[i]=Zt(r[i])?r[i](e,ia):r[i],t),{})}function ec(r){let e=[];return r.forEach(t=>{e=[...e,t];let i=t?.plugins??[];i.length!==0&&i.forEach(n=>{n.__isOptionsFunction&&(n=n()),e=[...e,...ec([n?.config??{}])]})}),e}function mx(r){return[...r].reduceRight((t,i)=>Zt(i)?i({corePlugins:t}):kf(i,t),vf)}function gx(r){return[...r].reduceRight((t,i)=>[...t,...i],[])}function na(r){let e=[...ec(r),{prefix:"",important:!1,separator:":"}];return Pf(Hs({theme:hx(px(cx(e.map(t=>t?.theme??{})))),corePlugins:mx(e.map(t=>t.corePlugins)),plugins:gx(r.map(t=>t?.plugins??[]))},...e))}var ia,tc=P(()=>{u();Gi();xf();Sf();Vs();Ef();Yi();If();Kt();Xi();Fr();Lr();ra();ia={colors:Us,negative(r){return Object.keys(r).filter(e=>r[e]!=="0").reduce((e,t)=>{let i=xt(r[t]);return i!==void 0&&(e[`-${t}`]=i),e},{})},breakpoints(r){return Object.keys(r).filter(e=>typeof r[e]=="string").reduce((e,t)=>({...e,[`screen-${t}`]:r[t]}),{})}}});var rn=x((f3,rc)=>{u();rc.exports={content:[],presets:[],darkMode:"media",theme:{accentColor:({theme:r})=>({...r("colors"),auto:"auto"}),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9"},backdropBlur:({theme:r})=>r("blur"),backdropBrightness:({theme:r})=>r("brightness"),backdropContrast:({theme:r})=>r("contrast"),backdropGrayscale:({theme:r})=>r("grayscale"),backdropHueRotate:({theme:r})=>r("hueRotate"),backdropInvert:({theme:r})=>r("invert"),backdropOpacity:({theme:r})=>r("opacity"),backdropSaturate:({theme:r})=>r("saturate"),backdropSepia:({theme:r})=>r("sepia"),backgroundColor:({theme:r})=>r("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:r})=>r("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:r})=>({...r("colors"),DEFAULT:r("colors.gray.200","currentColor")}),borderOpacity:({theme:r})=>r("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:r})=>({...r("spacing")}),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px"},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:r})=>r("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2"},caretColor:({theme:r})=>r("colors"),colors:({colors:r})=>({inherit:r.inherit,current:r.current,transparent:r.transparent,black:r.black,white:r.white,slate:r.slate,gray:r.gray,zinc:r.zinc,neutral:r.neutral,stone:r.stone,red:r.red,orange:r.orange,amber:r.amber,yellow:r.yellow,lime:r.lime,green:r.green,emerald:r.emerald,teal:r.teal,cyan:r.cyan,sky:r.sky,blue:r.blue,indigo:r.indigo,violet:r.violet,purple:r.purple,fuchsia:r.fuchsia,pink:r.pink,rose:r.rose}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem"},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2"},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:r})=>r("borderColor"),divideOpacity:({theme:r})=>r("borderOpacity"),divideWidth:({theme:r})=>r("borderWidth"),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:r})=>({none:"none",...r("colors")}),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%"}),flexGrow:{0:"0",DEFAULT:"1"},flexShrink:{0:"0",DEFAULT:"1"},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:r})=>r("spacing"),gradientColorStops:({theme:r})=>r("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%"},grayscale:{0:"0",DEFAULT:"100%"},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",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"},gridColumnStart:{auto:"auto",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"},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",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"},gridRowStart:{auto:"auto",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"},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},height:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg"},inset:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),invert:{0:"0",DEFAULT:"100%"},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:r})=>({auto:"auto",...r("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"},maxHeight:({theme:r})=>({...r("spacing"),none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),maxWidth:({theme:r,breakpoints:e})=>({...r("spacing"),none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e(r("screens"))}),minHeight:({theme:r})=>({...r("spacing"),full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),minWidth:({theme:r})=>({...r("spacing"),full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1"},order:{first:"-9999",last:"9999",none:"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"},outlineColor:({theme:r})=>r("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},padding:({theme:r})=>r("spacing"),placeholderColor:({theme:r})=>r("colors"),placeholderOpacity:({theme:r})=>r("opacity"),ringColor:({theme:r})=>({DEFAULT:r("colors.blue.500","#3b82f6"),...r("colors")}),ringOffsetColor:({theme:r})=>r("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},ringOpacity:({theme:r})=>({DEFAULT:"0.5",...r("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg"},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2"},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5"},screens:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},scrollMargin:({theme:r})=>({...r("spacing")}),scrollPadding:({theme:r})=>r("spacing"),sepia:{0:"0",DEFAULT:"100%"},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg"},space:({theme:r})=>({...r("spacing")}),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:r})=>({none:"none",...r("colors")}),strokeWidth:{0:"0",1:"1",2:"2"},supports:{},data:{},textColor:({theme:r})=>r("colors"),textDecorationColor:({theme:r})=>r("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},textIndent:({theme:r})=>({...r("spacing")}),textOpacity:({theme:r})=>r("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:r})=>({...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),size:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),width:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content"}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50"}},plugins:[]}});function nn(r){let e=(r?.presets??[ic.default]).slice().reverse().flatMap(n=>nn(n instanceof Function?n():n)),t={respectDefaultRingColorOpacity:{theme:{ringColor:({theme:n})=>({DEFAULT:"#3b82f67f",...n("colors")})}},disableColorOpacityUtilitiesByDefault:{corePlugins:{backgroundOpacity:!1,borderOpacity:!1,divideOpacity:!1,placeholderOpacity:!1,ringOpacity:!1,textOpacity:!1}}},i=Object.keys(t).filter(n=>we(r,n)).map(n=>t[n]);return[r,...i,...e]}var ic,nc=P(()=>{u();ic=pe(rn());ct()});var sc={};Ge(sc,{default:()=>zr});function zr(...r){let[,...e]=nn(r[0]);return na([...r,...e])}var sa=P(()=>{u();tc();nc()});var Ur={};Ge(Ur,{default:()=>me});var me,et=P(()=>{u();me={resolve:r=>r,extname:r=>"."+r.split(".").pop()}});function sn(r){return typeof r=="object"&&r!==null}function bx(r){return Object.keys(r).length===0}function ac(r){return typeof r=="string"||r instanceof String}function aa(r){return sn(r)&&r.config===void 0&&!bx(r)?null:sn(r)&&r.config!==void 0&&ac(r.config)?me.resolve(r.config):sn(r)&&r.config!==void 0&&sn(r.config)?null:ac(r)?me.resolve(r):wx()}function wx(){for(let r of yx)try{let e=me.resolve(r);return be.accessSync(e),e}catch(e){}return null}var yx,oc=P(()=>{u();ft();et();yx=["./tailwind.config.js","./tailwind.config.cjs","./tailwind.config.mjs","./tailwind.config.ts","./tailwind.config.cts","./tailwind.config.mts"]});var lc={};Ge(lc,{default:()=>oa});var oa,la=P(()=>{u();oa={parse:r=>({href:r})}});var ua=x(()=>{u()});var an=x((v3,cc)=>{u();"use strict";var uc=(Qi(),Af),fc=ua(),Jt=class extends Error{constructor(e,t,i,n,s,a){super(e);this.name="CssSyntaxError",this.reason=e,s&&(this.file=s),n&&(this.source=n),a&&(this.plugin=a),typeof t!="undefined"&&typeof i!="undefined"&&(typeof t=="number"?(this.line=t,this.column=i):(this.line=t.line,this.column=t.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,Jt)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",typeof this.line!="undefined"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;e==null&&(e=uc.isColorSupported);let i=f=>f,n=f=>f,s=f=>f;if(e){let{bold:f,gray:d,red:p}=uc.createColors(!0);n=h=>f(p(h)),i=h=>d(h),fc&&(s=h=>fc(h))}let a=t.split(/\r?\n/),o=Math.max(this.line-3,0),l=Math.min(this.line+2,a.length),c=String(l).length;return a.slice(o,l).map((f,d)=>{let p=o+1+d,h=" "+(" "+p).slice(-c)+" | ";if(p===this.line){if(f.length>160){let v=20,y=Math.max(0,this.column-v),w=Math.max(this.column+v,this.endColumn+v),k=f.slice(y,w),S=i(h.replace(/\d/g," "))+f.slice(0,Math.min(this.column-1,v-1)).replace(/[^\t]/g," ");return n(">")+i(h)+s(k)+` + `+S+n("^")}let b=i(h.replace(/\d/g," "))+f.slice(0,this.column-1).replace(/[^\t]/g," ");return n(">")+i(h)+s(f)+` + `+b+n("^")}return" "+i(h)+s(f)}).join(` +`)}toString(){let e=this.showSourceCode();return e&&(e=` + +`+e+` +`),this.name+": "+this.message+e}};cc.exports=Jt;Jt.default=Jt});var fa=x((x3,dc)=>{u();"use strict";var pc={after:` +`,beforeClose:` +`,beforeComment:` +`,beforeDecl:` +`,beforeOpen:" ",beforeRule:` +`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function vx(r){return r[0].toUpperCase()+r.slice(1)}var on=class{constructor(e){this.builder=e}atrule(e,t){let i="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName!="undefined"?i+=e.raws.afterName:n&&(i+=" "),e.nodes)this.block(e,i+n);else{let s=(e.raws.between||"")+(t?";":"");this.builder(i+n+s,e)}}beforeAfter(e,t){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):t==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let n=e.parent,s=0;for(;n&&n.type!=="root";)s+=1,n=n.parent;if(i.includes(` +`)){let a=this.raw(e,null,"indent");if(a.length)for(let o=0;o0&&e.nodes[t].type==="comment";)t-=1;let i=this.raw(e,"semicolon");for(let n=0;n{if(n=l.raws[t],typeof n!="undefined")return!1})}return typeof n=="undefined"&&(n=pc[i]),a.rawCache[i]=n,n}rawBeforeClose(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after!="undefined")return t=i.raws.after,t.includes(` +`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let i;return e.walkComments(n=>{if(typeof n.raws.before!="undefined")return i=n.raws.before,i.includes(` +`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i=="undefined"?i=this.raw(t,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(e,t){let i;return e.walkDecls(n=>{if(typeof n.raws.before!="undefined")return i=n.raws.before,i.includes(` +`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i=="undefined"?i=this.raw(t,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeOpen(e){let t;return e.walk(i=>{if(i.type!=="decl"&&(t=i.raws.between,typeof t!="undefined"))return!1}),t}rawBeforeRule(e){let t;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before!="undefined")return t=i.raws.before,t.includes(` +`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls(i=>{if(typeof i.raws.between!="undefined")return t=i.raws.between.replace(/[^\s:]/g,""),!1}),t}rawEmptyBody(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(t=i.raws.after,typeof t!="undefined"))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(i=>{let n=i.parent;if(n&&n!==e&&n.parent&&n.parent===e&&typeof i.raws.before!="undefined"){let s=i.raws.before.split(` +`);return t=s[s.length-1],t=t.replace(/\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(t=i.raws.semicolon,typeof t!="undefined"))return!1}),t}rawValue(e,t){let i=e[t],n=e.raws[t];return n&&n.value===i?n.raw:i}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};dc.exports=on;on.default=on});var Vr=x((k3,hc)=>{u();"use strict";var xx=fa();function ca(r,e){new xx(e).stringify(r)}hc.exports=ca;ca.default=ca});var ln=x((S3,pa)=>{u();"use strict";pa.exports.isClean=Symbol("isClean");pa.exports.my=Symbol("my")});var Gr=x((A3,mc)=>{u();"use strict";var kx=an(),Sx=fa(),Ax=Vr(),{isClean:Hr,my:Cx}=ln();function da(r,e){let t=new r.constructor;for(let i in r){if(!Object.prototype.hasOwnProperty.call(r,i)||i==="proxyCache")continue;let n=r[i],s=typeof n;i==="parent"&&s==="object"?e&&(t[i]=e):i==="source"?t[i]=n:Array.isArray(n)?t[i]=n.map(a=>da(a,t)):(s==="object"&&n!==null&&(n=da(n)),t[i]=n)}return t}function Wr(r,e){if(e&&typeof e.offset!="undefined")return e.offset;let t=1,i=1,n=0;for(let s=0;se.root().toProxy():e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="prop"||t==="value"||t==="name"||t==="params"||t==="important"||t==="text")&&e.markDirty()),!0}}}markClean(){this[Hr]=!0}markDirty(){if(this[Hr]){this[Hr]=!1;let e=this;for(;e=e.parent;)e[Hr]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e){let t=this.source.start;if(e.index)t=this.positionInside(e.index);else if(e.word){let n=this.source.input.css.slice(Wr(this.source.input.css,this.source.start),Wr(this.source.input.css,this.source.end)).indexOf(e.word);n!==-1&&(t=this.positionInside(n))}return t}positionInside(e){let t=this.source.start.column,i=this.source.start.line,n=Wr(this.source.input.css,this.source.start),s=n+e;for(let a=n;atypeof l=="object"&&l.toJSON?l.toJSON(null,t):l);else if(typeof o=="object"&&o.toJSON)i[a]=o.toJSON(null,t);else if(a==="source"){let l=t.get(o.input);l==null&&(l=s,t.set(o.input,s),s++),i[a]={end:o.end,inputId:l,start:o.start}}else i[a]=o}return n&&(i.inputs=[...t.keys()].map(a=>a.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Ax){e.stringify&&(e=e.stringify);let t="";return e(this,i=>{t+=i}),t}warn(e,t,i){let n={node:this};for(let s in i)n[s]=i[s];return e.warn(t,n)}get proxyOf(){return this}};mc.exports=un;un.default=un});var Qr=x((C3,gc)=>{u();"use strict";var _x=Gr(),fn=class extends _x{constructor(e){super(e);this.type="comment"}};gc.exports=fn;fn.default=fn});var Yr=x((_3,yc)=>{u();"use strict";var Ex=Gr(),cn=class extends Ex{constructor(e){e&&typeof e.value!="undefined"&&typeof e.value!="string"&&(e={...e,value:String(e.value)});super(e);this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};yc.exports=cn;cn.default=cn});var Et=x((E3,_c)=>{u();"use strict";var bc=Qr(),wc=Yr(),Ox=Gr(),{isClean:vc,my:xc}=ln(),ha,kc,Sc,ma;function Ac(r){return r.map(e=>(e.nodes&&(e.nodes=Ac(e.nodes)),delete e.source,e))}function Cc(r){if(r[vc]=!1,r.proxyOf.nodes)for(let e of r.proxyOf.nodes)Cc(e)}var Fe=class extends Ox{append(...e){for(let t of e){let i=this.normalize(t,this.last);for(let n of i)this.proxyOf.nodes.push(n)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let t=this.getIterator(),i,n;for(;this.indexes[t]e[t](...i.map(n=>typeof n=="function"?(s,a)=>n(s.toProxy(),a):n)):t==="every"||t==="some"?i=>e[t]((n,...s)=>i(n.toProxy(),...s)):t==="root"?()=>e.root().toProxy():t==="nodes"?e.nodes.map(i=>i.toProxy()):t==="first"||t==="last"?e[t].toProxy():e[t]:e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="name"||t==="params"||t==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let i=this.index(e),n=this.normalize(t,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let a of n)this.proxyOf.nodes.splice(i+1,0,a);let s;for(let a in this.indexes)s=this.indexes[a],i(n[xc]||Fe.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[vc]&&Cc(n),n.raws||(n.raws={}),typeof n.raws.before=="undefined"&&t&&typeof t.raws.before!="undefined"&&(n.raws.before=t.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}prepend(...e){e=e.reverse();for(let t of e){let i=this.normalize(t,this.first,"prepend").reverse();for(let n of i)this.proxyOf.nodes.unshift(n);for(let n in this.indexes)this.indexes[n]=this.indexes[n]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let t;for(let i in this.indexes)t=this.indexes[i],t>=e&&(this.indexes[i]=t-1);return this.markDirty(),this}replaceValues(e,t,i){return i||(i=t,t={}),this.walkDecls(n=>{t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((t,i)=>{let n;try{n=e(t,i)}catch(s){throw t.addToError(s)}return n!==!1&&t.walk&&(n=t.walk(e)),n})}walkAtRules(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="atrule"&&e.test(i.name))return t(i,n)}):this.walk((i,n)=>{if(i.type==="atrule"&&i.name===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="atrule")return t(i,n)}))}walkComments(e){return this.walk((t,i)=>{if(t.type==="comment")return e(t,i)})}walkDecls(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="decl"&&e.test(i.prop))return t(i,n)}):this.walk((i,n)=>{if(i.type==="decl"&&i.prop===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="decl")return t(i,n)}))}walkRules(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="rule"&&e.test(i.selector))return t(i,n)}):this.walk((i,n)=>{if(i.type==="rule"&&i.selector===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="rule")return t(i,n)}))}get first(){if(!!this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(!!this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};Fe.registerParse=r=>{kc=r};Fe.registerRule=r=>{ma=r};Fe.registerAtRule=r=>{ha=r};Fe.registerRoot=r=>{Sc=r};_c.exports=Fe;Fe.default=Fe;Fe.rebuild=r=>{r.type==="atrule"?Object.setPrototypeOf(r,ha.prototype):r.type==="rule"?Object.setPrototypeOf(r,ma.prototype):r.type==="decl"?Object.setPrototypeOf(r,wc.prototype):r.type==="comment"?Object.setPrototypeOf(r,bc.prototype):r.type==="root"&&Object.setPrototypeOf(r,Sc.prototype),r[xc]=!0,r.nodes&&r.nodes.forEach(e=>{Fe.rebuild(e)})}});var pn=x((O3,Oc)=>{u();"use strict";var Ec=Et(),Kr=class extends Ec{constructor(e){super(e);this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};Oc.exports=Kr;Kr.default=Kr;Ec.registerAtRule(Kr)});var dn=x((T3,Pc)=>{u();"use strict";var Tx=Et(),Tc,Rc,er=class extends Tx{constructor(e){super({type:"document",...e});this.nodes||(this.nodes=[])}toResult(e={}){return new Tc(new Rc,this,e).stringify()}};er.registerLazyResult=r=>{Tc=r};er.registerProcessor=r=>{Rc=r};Pc.exports=er;er.default=er});var Dc=x((R3,Ic)=>{u();var Rx="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Px=(r,e=21)=>(t=e)=>{let i="",n=t;for(;n--;)i+=r[Math.random()*r.length|0];return i},Ix=(r=21)=>{let e="",t=r;for(;t--;)e+=Rx[Math.random()*64|0];return e};Ic.exports={nanoid:Ix,customAlphabet:Px}});var qc=x(()=>{u()});var ga=x((D3,$c)=>{u();$c.exports={}});var mn=x((q3,Bc)=>{u();"use strict";var{nanoid:Dx}=Dc(),{isAbsolute:ya,resolve:ba}=(et(),Ur),{SourceMapConsumer:qx,SourceMapGenerator:$x}=qc(),{fileURLToPath:Lc,pathToFileURL:hn}=(la(),lc),Mc=an(),Lx=ga(),wa=ua(),va=Symbol("fromOffsetCache"),Mx=Boolean(qx&&$x),Nc=Boolean(ba&&ya),Xr=class{constructor(e,t={}){if(e===null||typeof e=="undefined"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]==="\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!Nc||/^\w+:\/\//.test(t.from)||ya(t.from)?this.file=t.from:this.file=ba(t.from)),Nc&&Mx){let i=new Lx(this.css,t);if(i.text){this.map=i;let n=i.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}error(e,t,i,n={}){let s,a,o;if(t&&typeof t=="object"){let c=t,f=i;if(typeof c.offset=="number"){let d=this.fromOffset(c.offset);t=d.line,i=d.col}else t=c.line,i=c.column;if(typeof f.offset=="number"){let d=this.fromOffset(f.offset);a=d.line,s=d.col}else a=f.line,s=f.column}else if(!i){let c=this.fromOffset(t);t=c.line,i=c.col}let l=this.origin(t,i,a,s);return l?o=new Mc(e,l.endLine===void 0?l.line:{column:l.column,line:l.line},l.endLine===void 0?l.column:{column:l.endColumn,line:l.endLine},l.source,l.file,n.plugin):o=new Mc(e,a===void 0?t:{column:i,line:t},a===void 0?i:{column:s,line:a},this.css,this.file,n.plugin),o.input={column:i,endColumn:s,endLine:a,line:t,source:this.css},this.file&&(hn&&(o.input.url=hn(this.file).toString()),o.input.file=this.file),o}fromOffset(e){let t,i;if(this[va])i=this[va];else{let s=this.css.split(` +`);i=new Array(s.length);let a=0;for(let o=0,l=s.length;o=t)n=i.length-1;else{let s=i.length-2,a;for(;n>1),e=i[a+1])n=a+1;else{n=a;break}}return{col:e-i[n]+1,line:n+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:ba(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,i,n){if(!this.map)return!1;let s=this.map.consumer(),a=s.originalPositionFor({column:t,line:e});if(!a.source)return!1;let o;typeof i=="number"&&(o=s.originalPositionFor({column:n,line:i}));let l;ya(a.source)?l=hn(a.source):l=new URL(a.source,this.map.consumer().sourceRoot||hn(this.map.mapFile));let c={column:a.column,endColumn:o&&o.column,endLine:o&&o.line,line:a.line,url:l.toString()};if(l.protocol==="file:")if(Lc)c.file=Lc(l);else throw new Error("file: protocol is not available in this PostCSS build");let f=s.sourceContentFor(a.source);return f&&(c.source=f),c}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])this[t]!=null&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}get from(){return this.file||this.id}};Bc.exports=Xr;Xr.default=Xr;wa&&wa.registerInput&&wa.registerInput(Xr)});var tr=x(($3,Uc)=>{u();"use strict";var Fc=Et(),jc,zc,Ut=class extends Fc{constructor(e){super(e);this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,i){let n=super.normalize(e);if(t){if(i==="prepend")this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let s of n)s.raws.before=t.raws.before}return n}removeChild(e,t){let i=this.index(e);return!t&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new jc(new zc,this,e).stringify()}};Ut.registerLazyResult=r=>{jc=r};Ut.registerProcessor=r=>{zc=r};Uc.exports=Ut;Ut.default=Ut;Fc.registerRoot(Ut)});var xa=x((L3,Vc)=>{u();"use strict";var Zr={comma(r){return Zr.split(r,[","],!0)},space(r){let e=[" ",` +`," "];return Zr.split(r,e)},split(r,e,t){let i=[],n="",s=!1,a=0,o=!1,l="",c=!1;for(let f of r)c?c=!1:f==="\\"?c=!0:o?f===l&&(o=!1):f==='"'||f==="'"?(o=!0,l=f):f==="("?a+=1:f===")"?a>0&&(a-=1):a===0&&e.includes(f)&&(s=!0),s?(n!==""&&i.push(n.trim()),n="",s=!1):n+=f;return(t||n!=="")&&i.push(n.trim()),i}};Vc.exports=Zr;Zr.default=Zr});var gn=x((M3,Wc)=>{u();"use strict";var Hc=Et(),Nx=xa(),Jr=class extends Hc{constructor(e){super(e);this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return Nx.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,i=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}};Wc.exports=Jr;Jr.default=Jr;Hc.registerRule(Jr)});var Qc=x((N3,Gc)=>{u();"use strict";var Bx=pn(),Fx=Qr(),jx=Yr(),zx=mn(),Ux=ga(),Vx=tr(),Hx=gn();function ei(r,e){if(Array.isArray(r))return r.map(n=>ei(n));let{inputs:t,...i}=r;if(t){e=[];for(let n of t){let s={...n,__proto__:zx.prototype};s.map&&(s.map={...s.map,__proto__:Ux.prototype}),e.push(s)}}if(i.nodes&&(i.nodes=r.nodes.map(n=>ei(n,e))),i.source){let{inputId:n,...s}=i.source;i.source=s,n!=null&&(i.source.input=e[n])}if(i.type==="root")return new Vx(i);if(i.type==="decl")return new jx(i);if(i.type==="rule")return new Hx(i);if(i.type==="comment")return new Fx(i);if(i.type==="atrule")return new Bx(i);throw new Error("Unknown node type: "+r.type)}Gc.exports=ei;ei.default=ei});var ka=x((B3,Yc)=>{u();Yc.exports=function(r,e){return{generate:()=>{let t="";return r(e,i=>{t+=i}),[t]}}}});var ep=x((F3,Jc)=>{u();"use strict";var Sa="'".charCodeAt(0),Kc='"'.charCodeAt(0),yn="\\".charCodeAt(0),Xc="/".charCodeAt(0),bn=` +`.charCodeAt(0),ti=" ".charCodeAt(0),wn="\f".charCodeAt(0),vn=" ".charCodeAt(0),xn="\r".charCodeAt(0),Wx="[".charCodeAt(0),Gx="]".charCodeAt(0),Qx="(".charCodeAt(0),Yx=")".charCodeAt(0),Kx="{".charCodeAt(0),Xx="}".charCodeAt(0),Zx=";".charCodeAt(0),Jx="*".charCodeAt(0),e1=":".charCodeAt(0),t1="@".charCodeAt(0),kn=/[\t\n\f\r "#'()/;[\\\]{}]/g,Sn=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,r1=/.[\r\n"'(/\\]/,Zc=/[\da-f]/i;Jc.exports=function(e,t={}){let i=e.css.valueOf(),n=t.ignoreErrors,s,a,o,l,c,f,d,p,h,b,v=i.length,y=0,w=[],k=[];function S(){return y}function E(R){throw e.error("Unclosed "+R,y)}function T(){return k.length===0&&y>=v}function B(R){if(k.length)return k.pop();if(y>=v)return;let F=R?R.ignoreUnclosed:!1;switch(s=i.charCodeAt(y),s){case bn:case ti:case vn:case xn:case wn:{l=y;do l+=1,s=i.charCodeAt(l);while(s===ti||s===bn||s===vn||s===xn||s===wn);f=["space",i.slice(y,l)],y=l-1;break}case Wx:case Gx:case Kx:case Xx:case e1:case Zx:case Yx:{let Y=String.fromCharCode(s);f=[Y,Y,y];break}case Qx:{if(b=w.length?w.pop()[1]:"",h=i.charCodeAt(y+1),b==="url"&&h!==Sa&&h!==Kc&&h!==ti&&h!==bn&&h!==vn&&h!==wn&&h!==xn){l=y;do{if(d=!1,l=i.indexOf(")",l+1),l===-1)if(n||F){l=y;break}else E("bracket");for(p=l;i.charCodeAt(p-1)===yn;)p-=1,d=!d}while(d);f=["brackets",i.slice(y,l+1),y,l],y=l}else l=i.indexOf(")",y+1),a=i.slice(y,l+1),l===-1||r1.test(a)?f=["(","(",y]:(f=["brackets",a,y,l],y=l);break}case Sa:case Kc:{c=s===Sa?"'":'"',l=y;do{if(d=!1,l=i.indexOf(c,l+1),l===-1)if(n||F){l=y+1;break}else E("string");for(p=l;i.charCodeAt(p-1)===yn;)p-=1,d=!d}while(d);f=["string",i.slice(y,l+1),y,l],y=l;break}case t1:{kn.lastIndex=y+1,kn.test(i),kn.lastIndex===0?l=i.length-1:l=kn.lastIndex-2,f=["at-word",i.slice(y,l+1),y,l],y=l;break}case yn:{for(l=y,o=!0;i.charCodeAt(l+1)===yn;)l+=1,o=!o;if(s=i.charCodeAt(l+1),o&&s!==Xc&&s!==ti&&s!==bn&&s!==vn&&s!==xn&&s!==wn&&(l+=1,Zc.test(i.charAt(l)))){for(;Zc.test(i.charAt(l+1));)l+=1;i.charCodeAt(l+1)===ti&&(l+=1)}f=["word",i.slice(y,l+1),y,l],y=l;break}default:{s===Xc&&i.charCodeAt(y+1)===Jx?(l=i.indexOf("*/",y+2)+1,l===0&&(n||F?l=i.length:E("comment")),f=["comment",i.slice(y,l+1),y,l],y=l):(Sn.lastIndex=y+1,Sn.test(i),Sn.lastIndex===0?l=i.length-1:l=Sn.lastIndex-2,f=["word",i.slice(y,l+1),y,l],w.push(f),y=l);break}}return y++,f}function N(R){k.push(R)}return{back:N,endOfFile:T,nextToken:B,position:S}}});var sp=x((j3,np)=>{u();"use strict";var i1=pn(),n1=Qr(),s1=Yr(),a1=tr(),tp=gn(),o1=ep(),rp={empty:!0,space:!0};function l1(r){for(let e=r.length-1;e>=0;e--){let t=r[e],i=t[3]||t[2];if(i)return i}}var ip=class{constructor(e){this.input=e,this.root=new a1,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new i1;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,n,s,a=!1,o=!1,l=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?c.push(i==="("?")":"]"):i==="{"&&c.length>0?c.push("}"):i===c[c.length-1]&&c.pop(),c.length===0)if(i===";"){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){o=!0;break}else if(i==="}"){if(l.length>0){for(s=l.length-1,n=l[s];n&&n[0]==="space";)n=l[--s];n&&(t.source.end=this.getPosition(n[3]||n[2]),t.source.end.offset++)}this.end(e);break}else l.push(e);else l.push(e);if(this.tokenizer.endOfFile()){a=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(l),l.length?(t.raws.afterName=this.spacesAndCommentsFromStart(l),this.raw(t,"params",l),a&&(e=l[l.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),o&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(t===!1)return;let i=0,n;for(let s=t-1;s>=0&&(n=e[s],!(n[0]!=="space"&&(i+=1,i===2)));s--);throw this.input.error("Missed semicolon",n[0]==="word"?n[3]+1:n[2])}colon(e){let t=0,i,n,s;for(let[a,o]of e.entries()){if(n=o,s=n[0],s==="("&&(t+=1),s===")"&&(t-=1),t===0&&s===":")if(!i)this.doubleColon(n);else{if(i[0]==="word"&&i[1]==="progid")continue;return a}i=n}return!1}comment(e){let t=new n1;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let i=e[1].slice(2,-2);if(/^\s*$/.test(i))t.text="",t.raws.left=i,t.raws.right="";else{let n=i.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}}createTokenizer(){this.tokenizer=o1(this.input)}decl(e,t){let i=new s1;this.init(i,e[0][2]);let n=e[e.length-1];for(n[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(n[3]||n[2]||l1(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let c=e[0][0];if(c===":"||c==="space"||c==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let s;for(;e.length;)if(s=e.shift(),s[0]===":"){i.raws.between+=s[1];break}else s[0]==="word"&&/\w/.test(s[1])&&this.unknownWord([s]),i.raws.between+=s[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let a=[],o;for(;e.length&&(o=e[0][0],!(o!=="space"&&o!=="comment"));)a.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(s=e[c],s[1].toLowerCase()==="!important"){i.important=!0;let f=this.stringFrom(e,c);f=this.spacesFromEnd(e)+f,f!==" !important"&&(i.raws.important=f);break}else if(s[1].toLowerCase()==="important"){let f=e.slice(0),d="";for(let p=c;p>0;p--){let h=f[p][0];if(d.trim().startsWith("!")&&h!=="space")break;d=f.pop()[1]+d}d.trim().startsWith("!")&&(i.important=!0,i.raws.important=d,e=f)}if(s[0]!=="space"&&s[0]!=="comment")break}e.some(c=>c[0]!=="space"&&c[0]!=="comment")&&(i.raws.between+=a.map(c=>c[1]).join(""),a=[]),this.raw(i,"value",a.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new tp;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let t=!1,i=null,n=!1,s=null,a=[],o=e[1].startsWith("--"),l=[],c=e;for(;c;){if(i=c[0],l.push(c),i==="("||i==="[")s||(s=c),a.push(i==="("?")":"]");else if(o&&n&&i==="{")s||(s=c),a.push("}");else if(a.length===0)if(i===";")if(n){this.decl(l,o);return}else break;else if(i==="{"){this.rule(l);return}else if(i==="}"){this.tokenizer.back(l.pop()),t=!0;break}else i===":"&&(n=!0);else i===a[a.length-1]&&(a.pop(),a.length===0&&(s=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),a.length>0&&this.unclosedBracket(s),t&&n){if(!o)for(;l.length&&(c=l[l.length-1][0],!(c!=="space"&&c!=="comment"));)this.tokenizer.back(l.pop());this.decl(l,o)}else this.unknownWord(l)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,t,i,n){let s,a,o=i.length,l="",c=!0,f,d;for(let p=0;ph+b[1],"");e.raws[t]={raw:p,value:l}}e[t]=l}rule(e){e.pop();let t=new tp;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],t==="space");)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let n=t;n{u();"use strict";var u1=Et(),f1=mn(),c1=sp();function An(r,e){let t=new f1(r,e),i=new c1(t);try{i.parse()}catch(n){throw n}return i.root}ap.exports=An;An.default=An;u1.registerParse(An)});var Aa=x((U3,op)=>{u();"use strict";var _n=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let i=t.node.rangeBy(t);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in t)this[i]=t[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};op.exports=_n;_n.default=_n});var On=x((V3,lp)=>{u();"use strict";var p1=Aa(),En=class{constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new p1(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}get content(){return this.css}};lp.exports=En;En.default=En});var Ca=x((H3,fp)=>{u();"use strict";var up={};fp.exports=function(e){up[e]||(up[e]=!0,typeof console!="undefined"&&console.warn&&console.warn(e))}});var Oa=x((G3,hp)=>{u();"use strict";var d1=Et(),h1=dn(),m1=ka(),g1=Cn(),cp=On(),y1=tr(),b1=Vr(),{isClean:tt,my:w1}=ln(),W3=Ca(),v1={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},x1={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},k1={Once:!0,postcssPlugin:!0,prepare:!0},rr=0;function ri(r){return typeof r=="object"&&typeof r.then=="function"}function pp(r){let e=!1,t=v1[r.type];return r.type==="decl"?e=r.prop.toLowerCase():r.type==="atrule"&&(e=r.name.toLowerCase()),e&&r.append?[t,t+"-"+e,rr,t+"Exit",t+"Exit-"+e]:e?[t,t+"-"+e,t+"Exit",t+"Exit-"+e]:r.append?[t,rr,t+"Exit"]:[t,t+"Exit"]}function dp(r){let e;return r.type==="document"?e=["Document",rr,"DocumentExit"]:r.type==="root"?e=["Root",rr,"RootExit"]:e=pp(r),{eventIndex:0,events:e,iterator:0,node:r,visitorIndex:0,visitors:[]}}function _a(r){return r[tt]=!1,r.nodes&&r.nodes.forEach(e=>_a(e)),r}var Ea={},pt=class{constructor(e,t,i){this.stringified=!1,this.processed=!1;let n;if(typeof t=="object"&&t!==null&&(t.type==="root"||t.type==="document"))n=_a(t);else if(t instanceof pt||t instanceof cp)n=_a(t.root),t.map&&(typeof i.map=="undefined"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=t.map);else{let s=g1;i.syntax&&(s=i.syntax.parse),i.parser&&(s=i.parser),s.parse&&(s=s.parse);try{n=s(t,i)}catch(a){this.processed=!0,this.error=a}n&&!n[w1]&&d1.rebuild(n)}this.result=new cp(e,n,i),this.helpers={...Ea,postcss:Ea,result:this.result},this.plugins=this.processor.plugins.map(s=>typeof s=="object"&&s.prepare?{...s,...s.prepare(this.result)}:s)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let i=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(n){console&&console.error&&console.error(n)}return e}prepareVisitors(){this.listeners={};let e=(t,i,n)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([t,n])};for(let t of this.plugins)if(typeof t=="object")for(let i in t){if(!x1[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!k1[i])if(typeof t[i]=="object")for(let n in t[i])n==="*"?e(t,i,t[i][n]):e(t,i+"-"+n.toLowerCase(),t[i][n]);else typeof t[i]=="function"&&e(t,i,t[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e0;){let i=this.visitTick(t);if(ri(i))try{await i}catch(n){let s=t[t.length-1].node;throw this.handleError(n,s)}}}if(this.listeners.OnceExit)for(let[t,i]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if(e.type==="document"){let n=e.nodes.map(s=>i(s,this.helpers));await Promise.all(n)}else await i(e,this.helpers)}catch(n){throw this.handleError(n)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let t=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return ri(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(t){throw this.handleError(t)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=b1;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let n=new m1(t,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let t=this.runOnRoot(e);if(ri(t))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[tt];)e[tt]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,t){return this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[i,n]of e){this.result.lastPlugin=i;let s;try{s=n(t,this.helpers)}catch(a){throw this.handleError(a,t.proxyOf)}if(t.type!=="root"&&t.type!=="document"&&!t.parent)return!0;if(ri(s))throw this.getAsyncError()}}visitTick(e){let t=e[e.length-1],{node:i,visitors:n}=t;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(n.length>0&&t.visitorIndex{n[tt]||this.walkSync(n)});else{let n=this.listeners[i];if(n&&this.visitSync(n,e.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}};pt.registerPostcss=r=>{Ea=r};hp.exports=pt;pt.default=pt;y1.registerLazyResult(pt);h1.registerLazyResult(pt)});var gp=x((Y3,mp)=>{u();"use strict";var S1=ka(),A1=Cn(),C1=On(),_1=Vr(),Q3=Ca(),Tn=class{constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let n,s=_1;this.result=new C1(this._processor,n,this._opts),this.result.css=t;let a=this;Object.defineProperty(this.result,"root",{get(){return a.root}});let o=new S1(s,n,this._opts,t);if(o.isMap()){let[l,c]=o.generate();l&&(this.result.css=l),c&&(this.result.map=c)}else o.clearAnnotation(),this.result.css=o.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return this.async().then(e,t)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=A1;try{e=t(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}};mp.exports=Tn;Tn.default=Tn});var bp=x((K3,yp)=>{u();"use strict";var E1=dn(),O1=Oa(),T1=gp(),R1=tr(),ir=class{constructor(e=[]){this.version="8.4.49",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)t.push(i);else if(typeof i=="function")t.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return t}process(e,t={}){return!this.plugins.length&&!t.parser&&!t.stringifier&&!t.syntax?new T1(this,e,t):new O1(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};yp.exports=ir;ir.default=ir;R1.registerProcessor(ir);E1.registerProcessor(ir)});var $e=x((X3,Cp)=>{u();"use strict";var wp=pn(),vp=Qr(),P1=Et(),I1=an(),xp=Yr(),kp=dn(),D1=Qc(),q1=mn(),$1=Oa(),L1=xa(),M1=Gr(),N1=Cn(),Ta=bp(),B1=On(),Sp=tr(),Ap=gn(),F1=Vr(),j1=Aa();function J(...r){return r.length===1&&Array.isArray(r[0])&&(r=r[0]),new Ta(r)}J.plugin=function(e,t){let i=!1;function n(...a){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide: +https://evilmartians.com/chronicles/postcss-8-plugin-migration`),m.env.LANG&&m.env.LANG.startsWith("cn")&&console.warn(e+`: \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357: +https://www.w3ctech.com/topic/2226`));let o=t(...a);return o.postcssPlugin=e,o.postcssVersion=new Ta().version,o}let s;return Object.defineProperty(n,"postcss",{get(){return s||(s=n()),s}}),n.process=function(a,o,l){return J([n(l)]).process(a,o)},n};J.stringify=F1;J.parse=N1;J.fromJSON=D1;J.list=L1;J.comment=r=>new vp(r);J.atRule=r=>new wp(r);J.decl=r=>new xp(r);J.rule=r=>new Ap(r);J.root=r=>new Sp(r);J.document=r=>new kp(r);J.CssSyntaxError=I1;J.Declaration=xp;J.Container=P1;J.Processor=Ta;J.Document=kp;J.Comment=vp;J.Warning=j1;J.AtRule=wp;J.Result=B1;J.Input=q1;J.Rule=Ap;J.Root=Sp;J.Node=M1;$1.registerPostcss(J);Cp.exports=J;J.default=J});var re,ee,Z3,J3,eI,tI,rI,iI,nI,sI,aI,oI,lI,uI,fI,cI,pI,dI,hI,mI,gI,yI,bI,wI,vI,xI,Ot=P(()=>{u();re=pe($e()),ee=re.default,Z3=re.default.stringify,J3=re.default.fromJSON,eI=re.default.plugin,tI=re.default.parse,rI=re.default.list,iI=re.default.document,nI=re.default.comment,sI=re.default.atRule,aI=re.default.rule,oI=re.default.decl,lI=re.default.root,uI=re.default.CssSyntaxError,fI=re.default.Declaration,cI=re.default.Container,pI=re.default.Processor,dI=re.default.Document,hI=re.default.Comment,mI=re.default.Warning,gI=re.default.AtRule,yI=re.default.Result,bI=re.default.Input,wI=re.default.Rule,vI=re.default.Root,xI=re.default.Node});var Ra=x((SI,_p)=>{u();_p.exports=function(r,e,t,i,n){for(e=e.split?e.split("."):e,i=0;i{u();"use strict";Rn.__esModule=!0;Rn.default=V1;function z1(r){for(var e=r.toLowerCase(),t="",i=!1,n=0;n<6&&e[n]!==void 0;n++){var s=e.charCodeAt(n),a=s>=97&&s<=102||s>=48&&s<=57;if(i=s===32,!a)break;t+=e[n]}if(t.length!==0){var o=parseInt(t,16),l=o>=55296&&o<=57343;return l||o===0||o>1114111?["\uFFFD",t.length+(i?1:0)]:[String.fromCodePoint(o),t.length+(i?1:0)]}}var U1=/\\/;function V1(r){var e=U1.test(r);if(!e)return r;for(var t="",i=0;i{u();"use strict";In.__esModule=!0;In.default=H1;function H1(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i0;){var n=t.shift();if(!r[n])return;r=r[n]}return r}Op.exports=In.default});var Pp=x((Dn,Rp)=>{u();"use strict";Dn.__esModule=!0;Dn.default=W1;function W1(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i0;){var n=t.shift();r[n]||(r[n]={}),r=r[n]}}Rp.exports=Dn.default});var Dp=x((qn,Ip)=>{u();"use strict";qn.__esModule=!0;qn.default=G1;function G1(r){for(var e="",t=r.indexOf("/*"),i=0;t>=0;){e=e+r.slice(i,t);var n=r.indexOf("*/",t+2);if(n<0)return e;i=n+2,t=r.indexOf("/*",i)}return e=e+r.slice(i),e}Ip.exports=qn.default});var ii=x(rt=>{u();"use strict";rt.__esModule=!0;rt.unesc=rt.stripComments=rt.getProp=rt.ensureObject=void 0;var Q1=$n(Pn());rt.unesc=Q1.default;var Y1=$n(Tp());rt.getProp=Y1.default;var K1=$n(Pp());rt.ensureObject=K1.default;var X1=$n(Dp());rt.stripComments=X1.default;function $n(r){return r&&r.__esModule?r:{default:r}}});var dt=x((ni,Lp)=>{u();"use strict";ni.__esModule=!0;ni.default=void 0;var qp=ii();function $p(r,e){for(var t=0;ti||this.source.end.linen||this.source.end.line===i&&this.source.end.column{u();"use strict";ie.__esModule=!0;ie.UNIVERSAL=ie.TAG=ie.STRING=ie.SELECTOR=ie.ROOT=ie.PSEUDO=ie.NESTING=ie.ID=ie.COMMENT=ie.COMBINATOR=ie.CLASS=ie.ATTRIBUTE=void 0;var tk="tag";ie.TAG=tk;var rk="string";ie.STRING=rk;var ik="selector";ie.SELECTOR=ik;var nk="root";ie.ROOT=nk;var sk="pseudo";ie.PSEUDO=sk;var ak="nesting";ie.NESTING=ak;var ok="id";ie.ID=ok;var lk="comment";ie.COMMENT=lk;var uk="combinator";ie.COMBINATOR=uk;var fk="class";ie.CLASS=fk;var ck="attribute";ie.ATTRIBUTE=ck;var pk="universal";ie.UNIVERSAL=pk});var Ln=x((si,Fp)=>{u();"use strict";si.__esModule=!0;si.default=void 0;var dk=mk(dt()),ht=hk(Se());function Mp(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Mp=function(n){return n?t:e})(r)}function hk(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=Mp(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s)){var a=n?Object.getOwnPropertyDescriptor(r,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=r[s]}return i.default=r,t&&t.set(r,i),i}function mk(r){return r&&r.__esModule?r:{default:r}}function gk(r,e){var t=typeof Symbol!="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(t)return(t=t.call(r)).next.bind(t);if(Array.isArray(r)||(t=yk(r))||e&&r&&typeof r.length=="number"){t&&(r=t);var i=0;return function(){return i>=r.length?{done:!0}:{done:!1,value:r[i++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function yk(r,e){if(!!r){if(typeof r=="string")return Np(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Np(r,e)}}function Np(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t=n&&(this.indexes[a]=s-1);return this},t.removeAll=function(){for(var n=gk(this.nodes),s;!(s=n()).done;){var a=s.value;a.parent=void 0}return this.nodes=[],this},t.empty=function(){return this.removeAll()},t.insertAfter=function(n,s){s.parent=this;var a=this.index(n);this.nodes.splice(a+1,0,s),s.parent=this;var o;for(var l in this.indexes)o=this.indexes[l],a<=o&&(this.indexes[l]=o+1);return this},t.insertBefore=function(n,s){s.parent=this;var a=this.index(n);this.nodes.splice(a,0,s),s.parent=this;var o;for(var l in this.indexes)o=this.indexes[l],o<=a&&(this.indexes[l]=o+1);return this},t._findChildAtPosition=function(n,s){var a=void 0;return this.each(function(o){if(o.atPosition){var l=o.atPosition(n,s);if(l)return a=l,!1}else if(o.isAtPosition(n,s))return a=o,!1}),a},t.atPosition=function(n,s){if(this.isAtPosition(n,s))return this._findChildAtPosition(n,s)||this},t._inferEndPosition=function(){this.last&&this.last.source&&this.last.source.end&&(this.source=this.source||{},this.source.end=this.source.end||{},Object.assign(this.source.end,this.last.source.end))},t.each=function(n){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var s=this.lastEach;if(this.indexes[s]=0,!!this.length){for(var a,o;this.indexes[s]{u();"use strict";ai.__esModule=!0;ai.default=void 0;var xk=Sk(Ln()),kk=Se();function Sk(r){return r&&r.__esModule?r:{default:r}}function jp(r,e){for(var t=0;t{u();"use strict";oi.__esModule=!0;oi.default=void 0;var Ek=Tk(Ln()),Ok=Se();function Tk(r){return r&&r.__esModule?r:{default:r}}function Rk(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,qa(r,e)}function qa(r,e){return qa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},qa(r,e)}var Pk=function(r){Rk(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=Ok.SELECTOR,i}return e}(Ek.default);oi.default=Pk;Up.exports=oi.default});var Mn=x((_I,Vp)=>{u();"use strict";var Ik={},Dk=Ik.hasOwnProperty,qk=function(e,t){if(!e)return t;var i={};for(var n in t)i[n]=Dk.call(e,n)?e[n]:t[n];return i},$k=/[ -,\.\/:-@\[-\^`\{-~]/,Lk=/[ -,\.\/:-@\[\]\^`\{-~]/,Mk=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,La=function r(e,t){t=qk(t,r.options),t.quotes!="single"&&t.quotes!="double"&&(t.quotes="single");for(var i=t.quotes=="double"?'"':"'",n=t.isIdentifier,s=e.charAt(0),a="",o=0,l=e.length;o126){if(f>=55296&&f<=56319&&o{u();"use strict";li.__esModule=!0;li.default=void 0;var Nk=Hp(Mn()),Bk=ii(),Fk=Hp(dt()),jk=Se();function Hp(r){return r&&r.__esModule?r:{default:r}}function Wp(r,e){for(var t=0;t{u();"use strict";ui.__esModule=!0;ui.default=void 0;var Hk=Gk(dt()),Wk=Se();function Gk(r){return r&&r.__esModule?r:{default:r}}function Qk(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Ba(r,e)}function Ba(r,e){return Ba=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Ba(r,e)}var Yk=function(r){Qk(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=Wk.COMMENT,i}return e}(Hk.default);ui.default=Yk;Qp.exports=ui.default});var za=x((fi,Yp)=>{u();"use strict";fi.__esModule=!0;fi.default=void 0;var Kk=Zk(dt()),Xk=Se();function Zk(r){return r&&r.__esModule?r:{default:r}}function Jk(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ja(r,e)}function ja(r,e){return ja=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ja(r,e)}var eS=function(r){Jk(e,r);function e(i){var n;return n=r.call(this,i)||this,n.type=Xk.ID,n}var t=e.prototype;return t.valueToString=function(){return"#"+r.prototype.valueToString.call(this)},e}(Kk.default);fi.default=eS;Yp.exports=fi.default});var Nn=x((ci,Zp)=>{u();"use strict";ci.__esModule=!0;ci.default=void 0;var tS=Kp(Mn()),rS=ii(),iS=Kp(dt());function Kp(r){return r&&r.__esModule?r:{default:r}}function Xp(r,e){for(var t=0;t{u();"use strict";pi.__esModule=!0;pi.default=void 0;var oS=uS(Nn()),lS=Se();function uS(r){return r&&r.__esModule?r:{default:r}}function fS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Va(r,e)}function Va(r,e){return Va=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Va(r,e)}var cS=function(r){fS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=lS.TAG,i}return e}(oS.default);pi.default=cS;Jp.exports=pi.default});var Ga=x((di,ed)=>{u();"use strict";di.__esModule=!0;di.default=void 0;var pS=hS(dt()),dS=Se();function hS(r){return r&&r.__esModule?r:{default:r}}function mS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Wa(r,e)}function Wa(r,e){return Wa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Wa(r,e)}var gS=function(r){mS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=dS.STRING,i}return e}(pS.default);di.default=gS;ed.exports=di.default});var Ya=x((hi,td)=>{u();"use strict";hi.__esModule=!0;hi.default=void 0;var yS=wS(Ln()),bS=Se();function wS(r){return r&&r.__esModule?r:{default:r}}function vS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Qa(r,e)}function Qa(r,e){return Qa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Qa(r,e)}var xS=function(r){vS(e,r);function e(i){var n;return n=r.call(this,i)||this,n.type=bS.PSEUDO,n}var t=e.prototype;return t.toString=function(){var n=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),n,this.rawSpaceAfter].join("")},e}(yS.default);hi.default=xS;td.exports=hi.default});var Bn={};Ge(Bn,{deprecate:()=>kS});function kS(r){return r}var Fn=P(()=>{u()});var id=x((EI,rd)=>{u();rd.exports=(Fn(),Bn).deprecate});var to=x(yi=>{u();"use strict";yi.__esModule=!0;yi.default=void 0;yi.unescapeValue=Ja;var mi=Xa(Mn()),SS=Xa(Pn()),AS=Xa(Nn()),CS=Se(),Ka;function Xa(r){return r&&r.__esModule?r:{default:r}}function nd(r,e){for(var t=0;t0&&!n.quoted&&o.before.length===0&&!(n.spaces.value&&n.spaces.value.after)&&(o.before=" "),sd(a,o)}))),s.push("]"),s.push(this.rawSpaceAfter),s.join("")},_S(e,[{key:"quoted",get:function(){var n=this.quoteMark;return n==="'"||n==='"'},set:function(n){RS()}},{key:"quoteMark",get:function(){return this._quoteMark},set:function(n){if(!this._constructed){this._quoteMark=n;return}this._quoteMark!==n&&(this._quoteMark=n,this._syncRawValue())}},{key:"qualifiedAttribute",get:function(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function(){return this.insensitive?"i":""}},{key:"value",get:function(){return this._value},set:function(n){if(this._constructed){var s=Ja(n),a=s.deprecatedUsage,o=s.unescaped,l=s.quoteMark;if(a&&TS(),o===this._value&&l===this._quoteMark)return;this._value=o,this._quoteMark=l,this._syncRawValue()}else this._value=n}},{key:"insensitive",get:function(){return this._insensitive},set:function(n){n||(this._insensitive=!1,this.raws&&(this.raws.insensitiveFlag==="I"||this.raws.insensitiveFlag==="i")&&(this.raws.insensitiveFlag=void 0)),this._insensitive=n}},{key:"attribute",get:function(){return this._attribute},set:function(n){this._handleEscapes("attribute",n),this._attribute=n}}]),e}(AS.default);yi.default=jn;jn.NO_QUOTE=null;jn.SINGLE_QUOTE="'";jn.DOUBLE_QUOTE='"';var eo=(Ka={"'":{quotes:"single",wrap:!0},'"':{quotes:"double",wrap:!0}},Ka[null]={isIdentifier:!0},Ka);function sd(r,e){return""+e.before+r+e.after}});var io=x((bi,ad)=>{u();"use strict";bi.__esModule=!0;bi.default=void 0;var DS=$S(Nn()),qS=Se();function $S(r){return r&&r.__esModule?r:{default:r}}function LS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ro(r,e)}function ro(r,e){return ro=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ro(r,e)}var MS=function(r){LS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=qS.UNIVERSAL,i.value="*",i}return e}(DS.default);bi.default=MS;ad.exports=bi.default});var so=x((wi,od)=>{u();"use strict";wi.__esModule=!0;wi.default=void 0;var NS=FS(dt()),BS=Se();function FS(r){return r&&r.__esModule?r:{default:r}}function jS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,no(r,e)}function no(r,e){return no=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},no(r,e)}var zS=function(r){jS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=BS.COMBINATOR,i}return e}(NS.default);wi.default=zS;od.exports=wi.default});var oo=x((vi,ld)=>{u();"use strict";vi.__esModule=!0;vi.default=void 0;var US=HS(dt()),VS=Se();function HS(r){return r&&r.__esModule?r:{default:r}}function WS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ao(r,e)}function ao(r,e){return ao=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ao(r,e)}var GS=function(r){WS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=VS.NESTING,i.value="&",i}return e}(US.default);vi.default=GS;ld.exports=vi.default});var fd=x((zn,ud)=>{u();"use strict";zn.__esModule=!0;zn.default=QS;function QS(r){return r.sort(function(e,t){return e-t})}ud.exports=zn.default});var lo=x(M=>{u();"use strict";M.__esModule=!0;M.word=M.tilde=M.tab=M.str=M.space=M.slash=M.singleQuote=M.semicolon=M.plus=M.pipe=M.openSquare=M.openParenthesis=M.newline=M.greaterThan=M.feed=M.equals=M.doubleQuote=M.dollar=M.cr=M.comment=M.comma=M.combinator=M.colon=M.closeSquare=M.closeParenthesis=M.caret=M.bang=M.backslash=M.at=M.asterisk=M.ampersand=void 0;var YS=38;M.ampersand=YS;var KS=42;M.asterisk=KS;var XS=64;M.at=XS;var ZS=44;M.comma=ZS;var JS=58;M.colon=JS;var eA=59;M.semicolon=eA;var tA=40;M.openParenthesis=tA;var rA=41;M.closeParenthesis=rA;var iA=91;M.openSquare=iA;var nA=93;M.closeSquare=nA;var sA=36;M.dollar=sA;var aA=126;M.tilde=aA;var oA=94;M.caret=oA;var lA=43;M.plus=lA;var uA=61;M.equals=uA;var fA=124;M.pipe=fA;var cA=62;M.greaterThan=cA;var pA=32;M.space=pA;var cd=39;M.singleQuote=cd;var dA=34;M.doubleQuote=dA;var hA=47;M.slash=hA;var mA=33;M.bang=mA;var gA=92;M.backslash=gA;var yA=13;M.cr=yA;var bA=12;M.feed=bA;var wA=10;M.newline=wA;var vA=9;M.tab=vA;var xA=cd;M.str=xA;var kA=-1;M.comment=kA;var SA=-2;M.word=SA;var AA=-3;M.combinator=AA});var hd=x(xi=>{u();"use strict";xi.__esModule=!0;xi.FIELDS=void 0;xi.default=PA;var D=CA(lo()),nr,te;function pd(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(pd=function(n){return n?t:e})(r)}function CA(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=pd(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s)){var a=n?Object.getOwnPropertyDescriptor(r,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=r[s]}return i.default=r,t&&t.set(r,i),i}var _A=(nr={},nr[D.tab]=!0,nr[D.newline]=!0,nr[D.cr]=!0,nr[D.feed]=!0,nr),EA=(te={},te[D.space]=!0,te[D.tab]=!0,te[D.newline]=!0,te[D.cr]=!0,te[D.feed]=!0,te[D.ampersand]=!0,te[D.asterisk]=!0,te[D.bang]=!0,te[D.comma]=!0,te[D.colon]=!0,te[D.semicolon]=!0,te[D.openParenthesis]=!0,te[D.closeParenthesis]=!0,te[D.openSquare]=!0,te[D.closeSquare]=!0,te[D.singleQuote]=!0,te[D.doubleQuote]=!0,te[D.plus]=!0,te[D.pipe]=!0,te[D.tilde]=!0,te[D.greaterThan]=!0,te[D.equals]=!0,te[D.dollar]=!0,te[D.caret]=!0,te[D.slash]=!0,te),uo={},dd="0123456789abcdefABCDEF";for(Un=0;Un0?(k=a+v,S=w-y[v].length):(k=a,S=s),T=D.comment,a=k,p=k,d=w-S):c===D.slash?(w=o,T=c,p=a,d=o-s,l=w+1):(w=OA(t,o),T=D.word,p=a,d=w-s),l=w+1;break}e.push([T,a,o-s,p,d,o,l]),S&&(s=S,S=null),o=l}return e}});var kd=x((ki,xd)=>{u();"use strict";ki.__esModule=!0;ki.default=void 0;var IA=je(Da()),fo=je($a()),DA=je(Na()),md=je(Fa()),qA=je(za()),$A=je(Ha()),co=je(Ga()),LA=je(Ya()),gd=Vn(to()),MA=je(io()),po=je(so()),NA=je(oo()),BA=je(fd()),O=Vn(hd()),q=Vn(lo()),FA=Vn(Se()),ue=ii(),Vt,ho;function yd(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(yd=function(n){return n?t:e})(r)}function Vn(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=yd(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s)){var a=n?Object.getOwnPropertyDescriptor(r,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=r[s]}return i.default=r,t&&t.set(r,i),i}function je(r){return r&&r.__esModule?r:{default:r}}function bd(r,e){for(var t=0;t0){var a=this.current.last;if(a){var o=this.convertWhitespaceNodesToSpace(s),l=o.space,c=o.rawSpace;c!==void 0&&(a.rawSpaceAfter+=c),a.spaces.after+=l}else s.forEach(function(T){return i.newNode(T)})}return}var f=this.currToken,d=void 0;n>this.position&&(d=this.parseWhitespaceEquivalentTokens(n));var p;if(this.isNamedCombinator()?p=this.namedCombinator():this.currToken[O.FIELDS.TYPE]===q.combinator?(p=new po.default({value:this.content(),source:sr(this.currToken),sourceIndex:this.currToken[O.FIELDS.START_POS]}),this.position++):mo[this.currToken[O.FIELDS.TYPE]]||d||this.unexpected(),p){if(d){var h=this.convertWhitespaceNodesToSpace(d),b=h.space,v=h.rawSpace;p.spaces.before=b,p.rawSpaceBefore=v}}else{var y=this.convertWhitespaceNodesToSpace(d,!0),w=y.space,k=y.rawSpace;k||(k=w);var S={},E={spaces:{}};w.endsWith(" ")&&k.endsWith(" ")?(S.before=w.slice(0,w.length-1),E.spaces.before=k.slice(0,k.length-1)):w.startsWith(" ")&&k.startsWith(" ")?(S.after=w.slice(1),E.spaces.after=k.slice(1)):E.value=k,p=new po.default({value:" ",source:go(f,this.tokens[this.position-1]),sourceIndex:f[O.FIELDS.START_POS],spaces:S,raws:E})}return this.currToken&&this.currToken[O.FIELDS.TYPE]===q.space&&(p.spaces.after=this.optionalSpace(this.content()),this.position++),this.newNode(p)},e.comma=function(){if(this.position===this.tokens.length-1){this.root.trailingComma=!0,this.position++;return}this.current._inferEndPosition();var i=new fo.default({source:{start:wd(this.tokens[this.position+1])},sourceIndex:this.tokens[this.position+1][O.FIELDS.START_POS]});this.current.parent.append(i),this.current=i,this.position++},e.comment=function(){var i=this.currToken;this.newNode(new md.default({value:this.content(),source:sr(i),sourceIndex:i[O.FIELDS.START_POS]})),this.position++},e.error=function(i,n){throw this.root.error(i,n)},e.missingBackslash=function(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[O.FIELDS.START_POS]})},e.missingParenthesis=function(){return this.expected("opening parenthesis",this.currToken[O.FIELDS.START_POS])},e.missingSquareBracket=function(){return this.expected("opening square bracket",this.currToken[O.FIELDS.START_POS])},e.unexpected=function(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[O.FIELDS.START_POS])},e.unexpectedPipe=function(){return this.error("Unexpected '|'.",this.currToken[O.FIELDS.START_POS])},e.namespace=function(){var i=this.prevToken&&this.content(this.prevToken)||!0;if(this.nextToken[O.FIELDS.TYPE]===q.word)return this.position++,this.word(i);if(this.nextToken[O.FIELDS.TYPE]===q.asterisk)return this.position++,this.universal(i);this.unexpectedPipe()},e.nesting=function(){if(this.nextToken){var i=this.content(this.nextToken);if(i==="|"){this.position++;return}}var n=this.currToken;this.newNode(new NA.default({value:this.content(),source:sr(n),sourceIndex:n[O.FIELDS.START_POS]})),this.position++},e.parentheses=function(){var i=this.current.last,n=1;if(this.position++,i&&i.type===FA.PSEUDO){var s=new fo.default({source:{start:wd(this.tokens[this.position])},sourceIndex:this.tokens[this.position][O.FIELDS.START_POS]}),a=this.current;for(i.append(s),this.current=s;this.position1&&i.nextToken&&i.nextToken[O.FIELDS.TYPE]===q.openParenthesis&&i.error("Misplaced parenthesis.",{index:i.nextToken[O.FIELDS.START_POS]})});else return this.expected(["pseudo-class","pseudo-element"],this.currToken[O.FIELDS.START_POS])},e.space=function(){var i=this.content();this.position===0||this.prevToken[O.FIELDS.TYPE]===q.comma||this.prevToken[O.FIELDS.TYPE]===q.openParenthesis||this.current.nodes.every(function(n){return n.type==="comment"})?(this.spaces=this.optionalSpace(i),this.position++):this.position===this.tokens.length-1||this.nextToken[O.FIELDS.TYPE]===q.comma||this.nextToken[O.FIELDS.TYPE]===q.closeParenthesis?(this.current.last.spaces.after=this.optionalSpace(i),this.position++):this.combinator()},e.string=function(){var i=this.currToken;this.newNode(new co.default({value:this.content(),source:sr(i),sourceIndex:i[O.FIELDS.START_POS]})),this.position++},e.universal=function(i){var n=this.nextToken;if(n&&this.content(n)==="|")return this.position++,this.namespace();var s=this.currToken;this.newNode(new MA.default({value:this.content(),source:sr(s),sourceIndex:s[O.FIELDS.START_POS]}),i),this.position++},e.splitWord=function(i,n){for(var s=this,a=this.nextToken,o=this.content();a&&~[q.dollar,q.caret,q.equals,q.word].indexOf(a[O.FIELDS.TYPE]);){this.position++;var l=this.content();if(o+=l,l.lastIndexOf("\\")===l.length-1){var c=this.nextToken;c&&c[O.FIELDS.TYPE]===q.space&&(o+=this.requiredSpace(this.content(c)),this.position++)}a=this.nextToken}var f=yo(o,".").filter(function(b){var v=o[b-1]==="\\",y=/^\d+\.\d+%$/.test(o);return!v&&!y}),d=yo(o,"#").filter(function(b){return o[b-1]!=="\\"}),p=yo(o,"#{");p.length&&(d=d.filter(function(b){return!~p.indexOf(b)}));var h=(0,BA.default)(UA([0].concat(f,d)));h.forEach(function(b,v){var y=h[v+1]||o.length,w=o.slice(b,y);if(v===0&&n)return n.call(s,w,h.length);var k,S=s.currToken,E=S[O.FIELDS.START_POS]+h[v],T=Ht(S[1],S[2]+b,S[3],S[2]+(y-1));if(~f.indexOf(b)){var B={value:w.slice(1),source:T,sourceIndex:E};k=new DA.default(ar(B,"value"))}else if(~d.indexOf(b)){var N={value:w.slice(1),source:T,sourceIndex:E};k=new qA.default(ar(N,"value"))}else{var R={value:w,source:T,sourceIndex:E};ar(R,"value"),k=new $A.default(R)}s.newNode(k,i),i=null}),this.position++},e.word=function(i){var n=this.nextToken;return n&&this.content(n)==="|"?(this.position++,this.namespace()):this.splitWord(i)},e.loop=function(){for(;this.position{u();"use strict";Si.__esModule=!0;Si.default=void 0;var HA=WA(kd());function WA(r){return r&&r.__esModule?r:{default:r}}var GA=function(){function r(t,i){this.func=t||function(){},this.funcRes=null,this.options=i}var e=r.prototype;return e._shouldUpdateSelector=function(i,n){n===void 0&&(n={});var s=Object.assign({},this.options,n);return s.updateSelector===!1?!1:typeof i!="string"},e._isLossy=function(i){i===void 0&&(i={});var n=Object.assign({},this.options,i);return n.lossless===!1},e._root=function(i,n){n===void 0&&(n={});var s=new HA.default(i,this._parseOptions(n));return s.root},e._parseOptions=function(i){return{lossy:this._isLossy(i)}},e._run=function(i,n){var s=this;return n===void 0&&(n={}),new Promise(function(a,o){try{var l=s._root(i,n);Promise.resolve(s.func(l)).then(function(c){var f=void 0;return s._shouldUpdateSelector(i,n)&&(f=l.toString(),i.selector=f),{transform:c,root:l,string:f}}).then(a,o)}catch(c){o(c);return}})},e._runSync=function(i,n){n===void 0&&(n={});var s=this._root(i,n),a=this.func(s);if(a&&typeof a.then=="function")throw new Error("Selector processor returned a promise to a synchronous call.");var o=void 0;return n.updateSelector&&typeof i!="string"&&(o=s.toString(),i.selector=o),{transform:a,root:s,string:o}},e.ast=function(i,n){return this._run(i,n).then(function(s){return s.root})},e.astSync=function(i,n){return this._runSync(i,n).root},e.transform=function(i,n){return this._run(i,n).then(function(s){return s.transform})},e.transformSync=function(i,n){return this._runSync(i,n).transform},e.process=function(i,n){return this._run(i,n).then(function(s){return s.string||s.root.toString()})},e.processSync=function(i,n){var s=this._runSync(i,n);return s.string||s.root.toString()},r}();Si.default=GA;Sd.exports=Si.default});var Cd=x(ne=>{u();"use strict";ne.__esModule=!0;ne.universal=ne.tag=ne.string=ne.selector=ne.root=ne.pseudo=ne.nesting=ne.id=ne.comment=ne.combinator=ne.className=ne.attribute=void 0;var QA=ze(to()),YA=ze(Na()),KA=ze(so()),XA=ze(Fa()),ZA=ze(za()),JA=ze(oo()),eC=ze(Ya()),tC=ze(Da()),rC=ze($a()),iC=ze(Ga()),nC=ze(Ha()),sC=ze(io());function ze(r){return r&&r.__esModule?r:{default:r}}var aC=function(e){return new QA.default(e)};ne.attribute=aC;var oC=function(e){return new YA.default(e)};ne.className=oC;var lC=function(e){return new KA.default(e)};ne.combinator=lC;var uC=function(e){return new XA.default(e)};ne.comment=uC;var fC=function(e){return new ZA.default(e)};ne.id=fC;var cC=function(e){return new JA.default(e)};ne.nesting=cC;var pC=function(e){return new eC.default(e)};ne.pseudo=pC;var dC=function(e){return new tC.default(e)};ne.root=dC;var hC=function(e){return new rC.default(e)};ne.selector=hC;var mC=function(e){return new iC.default(e)};ne.string=mC;var gC=function(e){return new nC.default(e)};ne.tag=gC;var yC=function(e){return new sC.default(e)};ne.universal=yC});var Td=x(Z=>{u();"use strict";Z.__esModule=!0;Z.isComment=Z.isCombinator=Z.isClassName=Z.isAttribute=void 0;Z.isContainer=TC;Z.isIdentifier=void 0;Z.isNamespace=RC;Z.isNesting=void 0;Z.isNode=bo;Z.isPseudo=void 0;Z.isPseudoClass=OC;Z.isPseudoElement=Od;Z.isUniversal=Z.isTag=Z.isString=Z.isSelector=Z.isRoot=void 0;var fe=Se(),Oe,bC=(Oe={},Oe[fe.ATTRIBUTE]=!0,Oe[fe.CLASS]=!0,Oe[fe.COMBINATOR]=!0,Oe[fe.COMMENT]=!0,Oe[fe.ID]=!0,Oe[fe.NESTING]=!0,Oe[fe.PSEUDO]=!0,Oe[fe.ROOT]=!0,Oe[fe.SELECTOR]=!0,Oe[fe.STRING]=!0,Oe[fe.TAG]=!0,Oe[fe.UNIVERSAL]=!0,Oe);function bo(r){return typeof r=="object"&&bC[r.type]}function Ue(r,e){return bo(e)&&e.type===r}var _d=Ue.bind(null,fe.ATTRIBUTE);Z.isAttribute=_d;var wC=Ue.bind(null,fe.CLASS);Z.isClassName=wC;var vC=Ue.bind(null,fe.COMBINATOR);Z.isCombinator=vC;var xC=Ue.bind(null,fe.COMMENT);Z.isComment=xC;var kC=Ue.bind(null,fe.ID);Z.isIdentifier=kC;var SC=Ue.bind(null,fe.NESTING);Z.isNesting=SC;var wo=Ue.bind(null,fe.PSEUDO);Z.isPseudo=wo;var AC=Ue.bind(null,fe.ROOT);Z.isRoot=AC;var CC=Ue.bind(null,fe.SELECTOR);Z.isSelector=CC;var _C=Ue.bind(null,fe.STRING);Z.isString=_C;var Ed=Ue.bind(null,fe.TAG);Z.isTag=Ed;var EC=Ue.bind(null,fe.UNIVERSAL);Z.isUniversal=EC;function Od(r){return wo(r)&&r.value&&(r.value.startsWith("::")||r.value.toLowerCase()===":before"||r.value.toLowerCase()===":after"||r.value.toLowerCase()===":first-letter"||r.value.toLowerCase()===":first-line")}function OC(r){return wo(r)&&!Od(r)}function TC(r){return!!(bo(r)&&r.walk)}function RC(r){return _d(r)||Ed(r)}});var Rd=x(Ke=>{u();"use strict";Ke.__esModule=!0;var vo=Se();Object.keys(vo).forEach(function(r){r==="default"||r==="__esModule"||r in Ke&&Ke[r]===vo[r]||(Ke[r]=vo[r])});var xo=Cd();Object.keys(xo).forEach(function(r){r==="default"||r==="__esModule"||r in Ke&&Ke[r]===xo[r]||(Ke[r]=xo[r])});var ko=Td();Object.keys(ko).forEach(function(r){r==="default"||r==="__esModule"||r in Ke&&Ke[r]===ko[r]||(Ke[r]=ko[r])})});var it=x((Ai,Id)=>{u();"use strict";Ai.__esModule=!0;Ai.default=void 0;var PC=qC(Ad()),IC=DC(Rd());function Pd(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Pd=function(n){return n?t:e})(r)}function DC(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=Pd(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s)){var a=n?Object.getOwnPropertyDescriptor(r,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=r[s]}return i.default=r,t&&t.set(r,i),i}function qC(r){return r&&r.__esModule?r:{default:r}}var So=function(e){return new PC.default(e)};Object.assign(So,IC);delete So.__esModule;var $C=So;Ai.default=$C;Id.exports=Ai.default});function mt(r){return["fontSize","outline"].includes(r)?e=>(typeof e=="function"&&(e=e({})),Array.isArray(e)&&(e=e[0]),e):r==="fontFamily"?e=>{typeof e=="function"&&(e=e({}));let t=Array.isArray(e)&&ke(e[1])?e[0]:e;return Array.isArray(t)?t.join(", "):t}:["boxShadow","transitionProperty","transitionDuration","transitionDelay","transitionTimingFunction","backgroundImage","backgroundSize","backgroundColor","cursor","animation"].includes(r)?e=>(typeof e=="function"&&(e=e({})),Array.isArray(e)&&(e=e.join(", ")),e):["gridTemplateColumns","gridTemplateRows","objectPosition"].includes(r)?e=>(typeof e=="function"&&(e=e({})),typeof e=="string"&&(e=ee.list.comma(e).join(" ")),e):(e,t={})=>(typeof e=="function"&&(e=e(t)),e)}var Ci=P(()=>{u();Ot();Kt()});var Bd=x((MI,Oo)=>{u();var{AtRule:LC,Rule:Dd}=$e(),qd=it();function Ao(r,e){let t;try{qd(i=>{t=i}).processSync(r)}catch(i){throw r.includes(":")?e?e.error("Missed semicolon"):i:e?e.error(i.message):i}return t.at(0)}function $d(r,e){let t=!1;return r.each(i=>{if(i.type==="nesting"){let n=e.clone({});i.value!=="&"?i.replaceWith(Ao(i.value.replace("&",n.toString()))):i.replaceWith(n),t=!0}else"nodes"in i&&i.nodes&&$d(i,e)&&(t=!0)}),t}function Ld(r,e){let t=[];return r.selectors.forEach(i=>{let n=Ao(i,r);e.selectors.forEach(s=>{if(!s)return;let a=Ao(s,e);$d(a,n)||(a.prepend(qd.combinator({value:" "})),a.prepend(n.clone({}))),t.push(a.toString())})}),t}function Hn(r,e){let t=r.prev();for(e.after(r);t&&t.type==="comment";){let i=t.prev();e.after(t),t=i}return r}function MC(r){return function e(t,i,n,s=n){let a=[];if(i.each(o=>{o.type==="rule"&&n?s&&(o.selectors=Ld(t,o)):o.type==="atrule"&&o.nodes?r[o.name]?e(t,o,s):i[_o]!==!1&&a.push(o):a.push(o)}),n&&a.length){let o=t.clone({nodes:[]});for(let l of a)o.append(l);i.prepend(o)}}}function Co(r,e,t){let i=new Dd({nodes:[],selector:r});return i.append(e),t.after(i),i}function Md(r,e){let t={};for(let i of r)t[i]=!0;if(e)for(let i of e)t[i.replace(/^@/,"")]=!0;return t}function NC(r){r=r.trim();let e=r.match(/^\((.*)\)$/);if(!e)return{selector:r,type:"basic"};let t=e[1].match(/^(with(?:out)?):(.+)$/);if(t){let i=t[1]==="with",n=Object.fromEntries(t[2].trim().split(/\s+/).map(a=>[a,!0]));if(i&&n.all)return{type:"noop"};let s=a=>!!n[a];return n.all?s=()=>!0:i&&(s=a=>a==="all"?!1:!n[a]),{escapes:s,type:"withrules"}}return{type:"unknown"}}function BC(r){let e=[],t=r.parent;for(;t&&t instanceof LC;)e.push(t),t=t.parent;return e}function FC(r){let e=r[Nd];if(!e)r.after(r.nodes);else{let t=r.nodes,i,n=-1,s,a,o,l=BC(r);if(l.forEach((c,f)=>{if(e(c.name))i=c,n=f,a=o;else{let d=o;o=c.clone({nodes:[]}),d&&o.append(d),s=s||o}}),i?a?(s.append(t),i.after(a)):i.after(t):r.after(t),r.next()&&i){let c;l.slice(0,n+1).forEach((f,d,p)=>{let h=c;c=f.clone({nodes:[]}),h&&c.append(h);let b=[],y=(p[d-1]||r).next();for(;y;)b.push(y),y=y.next();c.append(b)}),c&&(a||t[t.length-1]).after(c)}}r.remove()}var _o=Symbol("rootRuleMergeSel"),Nd=Symbol("rootRuleEscapes");function jC(r){let{params:e}=r,{escapes:t,selector:i,type:n}=NC(e);if(n==="unknown")throw r.error(`Unknown @${r.name} parameter ${JSON.stringify(e)}`);if(n==="basic"&&i){let s=new Dd({nodes:r.nodes,selector:i});r.removeAll(),r.append(s)}r[Nd]=t,r[_o]=t?!t("all"):n==="noop"}var Eo=Symbol("hasRootRule");Oo.exports=(r={})=>{let e=Md(["media","supports","layer","container","starting-style"],r.bubble),t=MC(e),i=Md(["document","font-face","keyframes","-webkit-keyframes","-moz-keyframes"],r.unwrap),n=(r.rootRuleName||"at-root").replace(/^@/,""),s=r.preserveEmpty;return{Once(a){a.walkAtRules(n,o=>{jC(o),a[Eo]=!0})},postcssPlugin:"postcss-nested",RootExit(a){a[Eo]&&(a.walkAtRules(n,FC),a[Eo]=!1)},Rule(a){let o=!1,l=a,c=!1,f=[];a.each(d=>{d.type==="rule"?(f.length&&(l=Co(a.selector,f,l),f=[]),c=!0,o=!0,d.selectors=Ld(a,d),l=Hn(d,l)):d.type==="atrule"?(f.length&&(l=Co(a.selector,f,l),f=[]),d.name===n?(o=!0,t(a,d,!0,d[_o]),l=Hn(d,l)):e[d.name]?(c=!0,o=!0,t(a,d,!0),l=Hn(d,l)):i[d.name]?(c=!0,o=!0,t(a,d,!1),l=Hn(d,l)):c&&f.push(d)):d.type==="decl"&&c&&f.push(d)}),f.length&&(l=Co(a.selector,f,l)),o&&s!==!0&&(a.raws.semicolon=!0,a.nodes.length===0&&a.remove())}}};Oo.exports.postcss=!0});var Ud=x((NI,zd)=>{u();"use strict";var Fd=/-(\w|$)/g,jd=(r,e)=>e.toUpperCase(),zC=r=>(r=r.toLowerCase(),r==="float"?"cssFloat":r.startsWith("-ms-")?r.substr(1).replace(Fd,jd):r.replace(Fd,jd));zd.exports=zC});var Po=x((BI,Vd)=>{u();var UC=Ud(),VC={boxFlex:!0,boxFlexGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0};function To(r){return typeof r.nodes=="undefined"?!0:Ro(r)}function Ro(r){let e,t={};return r.each(i=>{if(i.type==="atrule")e="@"+i.name,i.params&&(e+=" "+i.params),typeof t[e]=="undefined"?t[e]=To(i):Array.isArray(t[e])?t[e].push(To(i)):t[e]=[t[e],To(i)];else if(i.type==="rule"){let n=Ro(i);if(t[i.selector])for(let s in n)t[i.selector][s]=n[s];else t[i.selector]=n}else if(i.type==="decl"){i.prop[0]==="-"&&i.prop[1]==="-"||i.parent&&i.parent.selector===":export"?e=i.prop:e=UC(i.prop);let n=i.value;!isNaN(i.value)&&VC[e]&&(n=parseFloat(i.value)),i.important&&(n+=" !important"),typeof t[e]=="undefined"?t[e]=n:Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]}}),t}Vd.exports=Ro});var Wn=x((FI,Qd)=>{u();var _i=$e(),Hd=/\s*!important\s*$/i,HC={"box-flex":!0,"box-flex-group":!0,"column-count":!0,flex:!0,"flex-grow":!0,"flex-positive":!0,"flex-shrink":!0,"flex-negative":!0,"font-weight":!0,"line-clamp":!0,"line-height":!0,opacity:!0,order:!0,orphans:!0,"tab-size":!0,widows:!0,"z-index":!0,zoom:!0,"fill-opacity":!0,"stroke-dashoffset":!0,"stroke-opacity":!0,"stroke-width":!0};function WC(r){return r.replace(/([A-Z])/g,"-$1").replace(/^ms-/,"-ms-").toLowerCase()}function Wd(r,e,t){t===!1||t===null||(e.startsWith("--")||(e=WC(e)),typeof t=="number"&&(t===0||HC[e]?t=t.toString():t+="px"),e==="css-float"&&(e="float"),Hd.test(t)?(t=t.replace(Hd,""),r.push(_i.decl({prop:e,value:t,important:!0}))):r.push(_i.decl({prop:e,value:t})))}function Gd(r,e,t){let i=_i.atRule({name:e[1],params:e[3]||""});typeof t=="object"&&(i.nodes=[],Io(t,i)),r.push(i)}function Io(r,e){let t,i,n;for(t in r)if(i=r[t],!(i===null||typeof i=="undefined"))if(t[0]==="@"){let s=t.match(/@(\S+)(\s+([\W\w]*)\s*)?/);if(Array.isArray(i))for(let a of i)Gd(e,s,a);else Gd(e,s,i)}else if(Array.isArray(i))for(let s of i)Wd(e,t,s);else typeof i=="object"?(n=_i.rule({selector:t}),Io(i,n),e.push(n)):Wd(e,t,i)}Qd.exports=function(r){let e=_i.root();return Io(r,e),e}});var Do=x((jI,Yd)=>{u();var GC=Po();Yd.exports=function(e){return console&&console.warn&&e.warnings().forEach(t=>{let i=t.plugin||"PostCSS";console.warn(i+": "+t.text)}),GC(e.root)}});var Xd=x((zI,Kd)=>{u();var QC=$e(),YC=Do(),KC=Wn();Kd.exports=function(e){let t=QC(e);return async i=>{let n=await t.process(i,{parser:KC,from:void 0});return YC(n)}}});var Jd=x((UI,Zd)=>{u();var XC=$e(),ZC=Do(),JC=Wn();Zd.exports=function(r){let e=XC(r);return t=>{let i=e.process(t,{parser:JC,from:void 0});return ZC(i)}}});var th=x((VI,eh)=>{u();var e_=Po(),t_=Wn(),r_=Xd(),i_=Jd();eh.exports={objectify:e_,parse:t_,async:r_,sync:i_}});var or,rh,HI,WI,GI,QI,ih=P(()=>{u();or=pe(th()),rh=or.default,HI=or.default.objectify,WI=or.default.parse,GI=or.default.async,QI=or.default.sync});function lr(r){return Array.isArray(r)?r.flatMap(e=>ee([(0,nh.default)({bubble:["screen"]})]).process(e,{parser:rh}).root.nodes):lr([r])}var nh,qo=P(()=>{u();Ot();nh=pe(Bd());ih()});function ur(r,e,t=!1){if(r==="")return e;let i=typeof e=="string"?(0,sh.default)().astSync(e):e;return i.walkClasses(n=>{let s=n.value,a=t&&s.startsWith("-");n.value=a?`-${r}${s.slice(1)}`:`${r}${s}`}),typeof e=="string"?i.toString():i}var sh,Gn=P(()=>{u();sh=pe(it())});function Te(r){let e=ah.default.className();return e.value=r,jt(e?.raws?.value??e.value)}var ah,fr=P(()=>{u();ah=pe(it());Zi()});function $o(r){return jt(`.${Te(r)}`)}function Qn(r,e){return $o(Ei(r,e))}function Ei(r,e){return e==="DEFAULT"?r:e==="-"||e==="-DEFAULT"?`-${r}`:e.startsWith("-")?`-${r}${e}`:e.startsWith("/")?`${r}${e}`:`${r}-${e}`}var Lo=P(()=>{u();fr();Zi()});function L(r,e=[[r,[r]]],{filterDefault:t=!1,...i}={}){let n=mt(r);return function({matchUtilities:s,theme:a}){for(let o of e){let l=Array.isArray(o[0])?o:[o];s(l.reduce((c,[f,d])=>Object.assign(c,{[f]:p=>d.reduce((h,b)=>Array.isArray(b)?Object.assign(h,{[b[0]]:b[1]}):Object.assign(h,{[b]:n(p)}),{})}),{}),{...i,values:t?Object.fromEntries(Object.entries(a(r)??{}).filter(([c])=>c!=="DEFAULT")):a(r)})}}}var oh=P(()=>{u();Ci()});function Tt(r){return r=Array.isArray(r)?r:[r],r.map(e=>{let t=e.values.map(i=>i.raw!==void 0?i.raw:[i.min&&`(min-width: ${i.min})`,i.max&&`(max-width: ${i.max})`].filter(Boolean).join(" and "));return e.not?`not all and ${t}`:t}).join(", ")}var Yn=P(()=>{u()});function Mo(r){return r.split(f_).map(t=>{let i=t.trim(),n={value:i},s=i.split(c_),a=new Set;for(let o of s)!a.has("DIRECTIONS")&&n_.has(o)?(n.direction=o,a.add("DIRECTIONS")):!a.has("PLAY_STATES")&&s_.has(o)?(n.playState=o,a.add("PLAY_STATES")):!a.has("FILL_MODES")&&a_.has(o)?(n.fillMode=o,a.add("FILL_MODES")):!a.has("ITERATION_COUNTS")&&(o_.has(o)||p_.test(o))?(n.iterationCount=o,a.add("ITERATION_COUNTS")):!a.has("TIMING_FUNCTION")&&l_.has(o)||!a.has("TIMING_FUNCTION")&&u_.some(l=>o.startsWith(`${l}(`))?(n.timingFunction=o,a.add("TIMING_FUNCTION")):!a.has("DURATION")&&lh.test(o)?(n.duration=o,a.add("DURATION")):!a.has("DELAY")&&lh.test(o)?(n.delay=o,a.add("DELAY")):a.has("NAME")?(n.unknown||(n.unknown=[]),n.unknown.push(o)):(n.name=o,a.add("NAME"));return n})}var n_,s_,a_,o_,l_,u_,f_,c_,lh,p_,uh=P(()=>{u();n_=new Set(["normal","reverse","alternate","alternate-reverse"]),s_=new Set(["running","paused"]),a_=new Set(["none","forwards","backwards","both"]),o_=new Set(["infinite"]),l_=new Set(["linear","ease","ease-in","ease-out","ease-in-out","step-start","step-end"]),u_=["cubic-bezier","steps"],f_=/\,(?![^(]*\))/g,c_=/\ +(?![^(]*\))/g,lh=/^(-?[\d.]+m?s)$/,p_=/^(\d+)$/});var fh,xe,ch=P(()=>{u();fh=r=>Object.assign({},...Object.entries(r??{}).flatMap(([e,t])=>typeof t=="object"?Object.entries(fh(t)).map(([i,n])=>({[e+(i==="DEFAULT"?"":`-${i}`)]:n})):[{[`${e}`]:t}])),xe=fh});var dh,ph=P(()=>{dh="3.4.17"});function Rt(r,e=!0){return Array.isArray(r)?r.map(t=>{if(e&&Array.isArray(t))throw new Error("The tuple syntax is not supported for `screens`.");if(typeof t=="string")return{name:t.toString(),not:!1,values:[{min:t,max:void 0}]};let[i,n]=t;return i=i.toString(),typeof n=="string"?{name:i,not:!1,values:[{min:n,max:void 0}]}:Array.isArray(n)?{name:i,not:!1,values:n.map(s=>mh(s))}:{name:i,not:!1,values:[mh(n)]}}):Rt(Object.entries(r??{}),!1)}function Kn(r){return r.values.length!==1?{result:!1,reason:"multiple-values"}:r.values[0].raw!==void 0?{result:!1,reason:"raw-values"}:r.values[0].min!==void 0&&r.values[0].max!==void 0?{result:!1,reason:"min-and-max"}:{result:!0,reason:null}}function hh(r,e,t){let i=Xn(e,r),n=Xn(t,r),s=Kn(i),a=Kn(n);if(s.reason==="multiple-values"||a.reason==="multiple-values")throw new Error("Attempted to sort a screen with multiple values. This should never happen. Please open a bug report.");if(s.reason==="raw-values"||a.reason==="raw-values")throw new Error("Attempted to sort a screen with raw values. This should never happen. Please open a bug report.");if(s.reason==="min-and-max"||a.reason==="min-and-max")throw new Error("Attempted to sort a screen with both min and max values. This should never happen. Please open a bug report.");let{min:o,max:l}=i.values[0],{min:c,max:f}=n.values[0];e.not&&([o,l]=[l,o]),t.not&&([c,f]=[f,c]),o=o===void 0?o:parseFloat(o),l=l===void 0?l:parseFloat(l),c=c===void 0?c:parseFloat(c),f=f===void 0?f:parseFloat(f);let[d,p]=r==="min"?[o,c]:[f,l];return d-p}function Xn(r,e){return typeof r=="object"?r:{name:"arbitrary-screen",values:[{[e]:r}]}}function mh({"min-width":r,min:e=r,max:t,raw:i}={}){return{min:e,max:t,raw:i}}var Zn=P(()=>{u()});function Jn(r,e){r.walkDecls(t=>{if(e.includes(t.prop)){t.remove();return}for(let i of e)t.value.includes(`/ var(${i})`)?t.value=t.value.replace(`/ var(${i})`,""):t.value.includes(`/ var(${i}, 1)`)&&(t.value=t.value.replace(`/ var(${i}, 1)`,""))})}var gh=P(()=>{u()});var se,Xe,nt,ge,yh,bh=P(()=>{u();ft();et();Ot();oh();Yn();fr();uh();ch();Lr();ra();Kt();Ci();ph();Be();Zn();Ys();gh();ct();Br();Oi();se={childVariant:({addVariant:r})=>{r("*","& > *")},pseudoElementVariants:({addVariant:r})=>{r("first-letter","&::first-letter"),r("first-line","&::first-line"),r("marker",[({container:e})=>(Jn(e,["--tw-text-opacity"]),"& *::marker"),({container:e})=>(Jn(e,["--tw-text-opacity"]),"&::marker")]),r("selection",["& *::selection","&::selection"]),r("file","&::file-selector-button"),r("placeholder","&::placeholder"),r("backdrop","&::backdrop"),r("before",({container:e})=>(e.walkRules(t=>{let i=!1;t.walkDecls("content",()=>{i=!0}),i||t.prepend(ee.decl({prop:"content",value:"var(--tw-content)"}))}),"&::before")),r("after",({container:e})=>(e.walkRules(t=>{let i=!1;t.walkDecls("content",()=>{i=!0}),i||t.prepend(ee.decl({prop:"content",value:"var(--tw-content)"}))}),"&::after"))},pseudoClassVariants:({addVariant:r,matchVariant:e,config:t,prefix:i})=>{let n=[["first","&:first-child"],["last","&:last-child"],["only","&:only-child"],["odd","&:nth-child(odd)"],["even","&:nth-child(even)"],"first-of-type","last-of-type","only-of-type",["visited",({container:a})=>(Jn(a,["--tw-text-opacity","--tw-border-opacity","--tw-bg-opacity"]),"&:visited")],"target",["open","&[open]"],"default","checked","indeterminate","placeholder-shown","autofill","optional","required","valid","invalid","in-range","out-of-range","read-only","empty","focus-within",["hover",we(t(),"hoverOnlyWhenSupported")?"@media (hover: hover) and (pointer: fine) { &:hover }":"&:hover"],"focus","focus-visible","active","enabled","disabled"].map(a=>Array.isArray(a)?a:[a,`&:${a}`]);for(let[a,o]of n)r(a,l=>typeof o=="function"?o(l):o);let s={group:(a,{modifier:o})=>o?[`:merge(${i(".group")}\\/${Te(o)})`," &"]:[`:merge(${i(".group")})`," &"],peer:(a,{modifier:o})=>o?[`:merge(${i(".peer")}\\/${Te(o)})`," ~ &"]:[`:merge(${i(".peer")})`," ~ &"]};for(let[a,o]of Object.entries(s))e(a,(l="",c)=>{let f=K(typeof l=="function"?l(c):l);f.includes("&")||(f="&"+f);let[d,p]=o("",c),h=null,b=null,v=0;for(let y=0;y{r("ltr",'&:where([dir="ltr"], [dir="ltr"] *)'),r("rtl",'&:where([dir="rtl"], [dir="rtl"] *)')},reducedMotionVariants:({addVariant:r})=>{r("motion-safe","@media (prefers-reduced-motion: no-preference)"),r("motion-reduce","@media (prefers-reduced-motion: reduce)")},darkVariants:({config:r,addVariant:e})=>{let[t,i=".dark"]=[].concat(r("darkMode","media"));if(t===!1&&(t="media",G.warn("darkmode-false",["The `darkMode` option in your Tailwind CSS configuration is set to `false`, which now behaves the same as `media`.","Change `darkMode` to `media` or remove it entirely.","https://tailwindcss.com/docs/upgrade-guide#remove-dark-mode-configuration"])),t==="variant"){let n;if(Array.isArray(i)||typeof i=="function"?n=i:typeof i=="string"&&(n=[i]),Array.isArray(n))for(let s of n)s===".dark"?(t=!1,G.warn("darkmode-variant-without-selector",["When using `variant` for `darkMode`, you must provide a selector.",'Example: `darkMode: ["variant", ".your-selector &"]`'])):s.includes("&")||(t=!1,G.warn("darkmode-variant-without-ampersand",["When using `variant` for `darkMode`, your selector must contain `&`.",'Example `darkMode: ["variant", ".your-selector &"]`']));i=n}t==="selector"?e("dark",`&:where(${i}, ${i} *)`):t==="media"?e("dark","@media (prefers-color-scheme: dark)"):t==="variant"?e("dark",i):t==="class"&&e("dark",`&:is(${i} *)`)},printVariant:({addVariant:r})=>{r("print","@media print")},screenVariants:({theme:r,addVariant:e,matchVariant:t})=>{let i=r("screens")??{},n=Object.values(i).every(w=>typeof w=="string"),s=Rt(r("screens")),a=new Set([]);function o(w){return w.match(/(\D+)$/)?.[1]??"(none)"}function l(w){w!==void 0&&a.add(o(w))}function c(w){return l(w),a.size===1}for(let w of s)for(let k of w.values)l(k.min),l(k.max);let f=a.size<=1;function d(w){return Object.fromEntries(s.filter(k=>Kn(k).result).map(k=>{let{min:S,max:E}=k.values[0];if(w==="min"&&S!==void 0)return k;if(w==="min"&&E!==void 0)return{...k,not:!k.not};if(w==="max"&&E!==void 0)return k;if(w==="max"&&S!==void 0)return{...k,not:!k.not}}).map(k=>[k.name,k]))}function p(w){return(k,S)=>hh(w,k.value,S.value)}let h=p("max"),b=p("min");function v(w){return k=>{if(n)if(f){if(typeof k=="string"&&!c(k))return G.warn("minmax-have-mixed-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[]}else return G.warn("mixed-screen-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[];else return G.warn("complex-screen-config",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing objects."]),[];return[`@media ${Tt(Xn(k,w))}`]}}t("max",v("max"),{sort:h,values:n?d("max"):{}});let y="min-screens";for(let w of s)e(w.name,`@media ${Tt(w)}`,{id:y,sort:n&&f?b:void 0,value:w});t("min",v("min"),{id:y,sort:b})},supportsVariants:({matchVariant:r,theme:e})=>{r("supports",(t="")=>{let i=K(t),n=/^\w*\s*\(/.test(i);return i=n?i.replace(/\b(and|or|not)\b/g," $1 "):i,n?`@supports ${i}`:(i.includes(":")||(i=`${i}: var(--tw)`),i.startsWith("(")&&i.endsWith(")")||(i=`(${i})`),`@supports ${i}`)},{values:e("supports")??{}})},hasVariants:({matchVariant:r,prefix:e})=>{r("has",t=>`&:has(${K(t)})`,{values:{},[Pt]:{respectPrefix:!1}}),r("group-has",(t,{modifier:i})=>i?`:merge(${e(".group")}\\/${i}):has(${K(t)}) &`:`:merge(${e(".group")}):has(${K(t)}) &`,{values:{},[Pt]:{respectPrefix:!1}}),r("peer-has",(t,{modifier:i})=>i?`:merge(${e(".peer")}\\/${i}):has(${K(t)}) ~ &`:`:merge(${e(".peer")}):has(${K(t)}) ~ &`,{values:{},[Pt]:{respectPrefix:!1}})},ariaVariants:({matchVariant:r,theme:e})=>{r("aria",t=>`&[aria-${Ye(K(t))}]`,{values:e("aria")??{}}),r("group-aria",(t,{modifier:i})=>i?`:merge(.group\\/${i})[aria-${Ye(K(t))}] &`:`:merge(.group)[aria-${Ye(K(t))}] &`,{values:e("aria")??{}}),r("peer-aria",(t,{modifier:i})=>i?`:merge(.peer\\/${i})[aria-${Ye(K(t))}] ~ &`:`:merge(.peer)[aria-${Ye(K(t))}] ~ &`,{values:e("aria")??{}})},dataVariants:({matchVariant:r,theme:e})=>{r("data",t=>`&[data-${Ye(K(t))}]`,{values:e("data")??{}}),r("group-data",(t,{modifier:i})=>i?`:merge(.group\\/${i})[data-${Ye(K(t))}] &`:`:merge(.group)[data-${Ye(K(t))}] &`,{values:e("data")??{}}),r("peer-data",(t,{modifier:i})=>i?`:merge(.peer\\/${i})[data-${Ye(K(t))}] ~ &`:`:merge(.peer)[data-${Ye(K(t))}] ~ &`,{values:e("data")??{}})},orientationVariants:({addVariant:r})=>{r("portrait","@media (orientation: portrait)"),r("landscape","@media (orientation: landscape)")},prefersContrastVariants:({addVariant:r})=>{r("contrast-more","@media (prefers-contrast: more)"),r("contrast-less","@media (prefers-contrast: less)")},forcedColorsVariants:({addVariant:r})=>{r("forced-colors","@media (forced-colors: active)")}},Xe=["translate(var(--tw-translate-x), var(--tw-translate-y))","rotate(var(--tw-rotate))","skewX(var(--tw-skew-x))","skewY(var(--tw-skew-y))","scaleX(var(--tw-scale-x))","scaleY(var(--tw-scale-y))"].join(" "),nt=["var(--tw-blur)","var(--tw-brightness)","var(--tw-contrast)","var(--tw-grayscale)","var(--tw-hue-rotate)","var(--tw-invert)","var(--tw-saturate)","var(--tw-sepia)","var(--tw-drop-shadow)"].join(" "),ge=["var(--tw-backdrop-blur)","var(--tw-backdrop-brightness)","var(--tw-backdrop-contrast)","var(--tw-backdrop-grayscale)","var(--tw-backdrop-hue-rotate)","var(--tw-backdrop-invert)","var(--tw-backdrop-opacity)","var(--tw-backdrop-saturate)","var(--tw-backdrop-sepia)"].join(" "),yh={preflight:({addBase:r})=>{let e=ee.parse(`*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:theme('borderColor.DEFAULT', currentColor)}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:theme('fontFamily.sans', ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:theme('fontFamily.sans[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.sans[1].fontVariationSettings', normal);-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:theme('fontFamily.mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:theme('fontFamily.mono[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.mono[1].fontVariationSettings', normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:theme('colors.gray.4', #9ca3af)}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}`);r([ee.comment({text:`! tailwindcss v${dh} | MIT License | https://tailwindcss.com`}),...e.nodes])},container:(()=>{function r(t=[]){return t.flatMap(i=>i.values.map(n=>n.min)).filter(i=>i!==void 0)}function e(t,i,n){if(typeof n=="undefined")return[];if(!(typeof n=="object"&&n!==null))return[{screen:"DEFAULT",minWidth:0,padding:n}];let s=[];n.DEFAULT&&s.push({screen:"DEFAULT",minWidth:0,padding:n.DEFAULT});for(let a of t)for(let o of i)for(let{min:l}of o.values)l===a&&s.push({minWidth:a,padding:n[o.name]});return s}return function({addComponents:t,theme:i}){let n=Rt(i("container.screens",i("screens"))),s=r(n),a=e(s,n,i("container.padding")),o=c=>{let f=a.find(d=>d.minWidth===c);return f?{paddingRight:f.padding,paddingLeft:f.padding}:{}},l=Array.from(new Set(s.slice().sort((c,f)=>parseInt(c)-parseInt(f)))).map(c=>({[`@media (min-width: ${c})`]:{".container":{"max-width":c,...o(c)}}}));t([{".container":Object.assign({width:"100%"},i("container.center",!1)?{marginRight:"auto",marginLeft:"auto"}:{},o(0))},...l])}})(),accessibility:({addUtilities:r})=>{r({".sr-only":{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},".not-sr-only":{position:"static",width:"auto",height:"auto",padding:"0",margin:"0",overflow:"visible",clip:"auto",whiteSpace:"normal"}})},pointerEvents:({addUtilities:r})=>{r({".pointer-events-none":{"pointer-events":"none"},".pointer-events-auto":{"pointer-events":"auto"}})},visibility:({addUtilities:r})=>{r({".visible":{visibility:"visible"},".invisible":{visibility:"hidden"},".collapse":{visibility:"collapse"}})},position:({addUtilities:r})=>{r({".static":{position:"static"},".fixed":{position:"fixed"},".absolute":{position:"absolute"},".relative":{position:"relative"},".sticky":{position:"sticky"}})},inset:L("inset",[["inset",["inset"]],[["inset-x",["left","right"]],["inset-y",["top","bottom"]]],[["start",["inset-inline-start"]],["end",["inset-inline-end"]],["top",["top"]],["right",["right"]],["bottom",["bottom"]],["left",["left"]]]],{supportsNegativeValues:!0}),isolation:({addUtilities:r})=>{r({".isolate":{isolation:"isolate"},".isolation-auto":{isolation:"auto"}})},zIndex:L("zIndex",[["z",["zIndex"]]],{supportsNegativeValues:!0}),order:L("order",void 0,{supportsNegativeValues:!0}),gridColumn:L("gridColumn",[["col",["gridColumn"]]]),gridColumnStart:L("gridColumnStart",[["col-start",["gridColumnStart"]]],{supportsNegativeValues:!0}),gridColumnEnd:L("gridColumnEnd",[["col-end",["gridColumnEnd"]]],{supportsNegativeValues:!0}),gridRow:L("gridRow",[["row",["gridRow"]]]),gridRowStart:L("gridRowStart",[["row-start",["gridRowStart"]]],{supportsNegativeValues:!0}),gridRowEnd:L("gridRowEnd",[["row-end",["gridRowEnd"]]],{supportsNegativeValues:!0}),float:({addUtilities:r})=>{r({".float-start":{float:"inline-start"},".float-end":{float:"inline-end"},".float-right":{float:"right"},".float-left":{float:"left"},".float-none":{float:"none"}})},clear:({addUtilities:r})=>{r({".clear-start":{clear:"inline-start"},".clear-end":{clear:"inline-end"},".clear-left":{clear:"left"},".clear-right":{clear:"right"},".clear-both":{clear:"both"},".clear-none":{clear:"none"}})},margin:L("margin",[["m",["margin"]],[["mx",["margin-left","margin-right"]],["my",["margin-top","margin-bottom"]]],[["ms",["margin-inline-start"]],["me",["margin-inline-end"]],["mt",["margin-top"]],["mr",["margin-right"]],["mb",["margin-bottom"]],["ml",["margin-left"]]]],{supportsNegativeValues:!0}),boxSizing:({addUtilities:r})=>{r({".box-border":{"box-sizing":"border-box"},".box-content":{"box-sizing":"content-box"}})},lineClamp:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"line-clamp":i=>({overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":`${i}`})},{values:t("lineClamp")}),e({".line-clamp-none":{overflow:"visible",display:"block","-webkit-box-orient":"horizontal","-webkit-line-clamp":"none"}})},display:({addUtilities:r})=>{r({".block":{display:"block"},".inline-block":{display:"inline-block"},".inline":{display:"inline"},".flex":{display:"flex"},".inline-flex":{display:"inline-flex"},".table":{display:"table"},".inline-table":{display:"inline-table"},".table-caption":{display:"table-caption"},".table-cell":{display:"table-cell"},".table-column":{display:"table-column"},".table-column-group":{display:"table-column-group"},".table-footer-group":{display:"table-footer-group"},".table-header-group":{display:"table-header-group"},".table-row-group":{display:"table-row-group"},".table-row":{display:"table-row"},".flow-root":{display:"flow-root"},".grid":{display:"grid"},".inline-grid":{display:"inline-grid"},".contents":{display:"contents"},".list-item":{display:"list-item"},".hidden":{display:"none"}})},aspectRatio:L("aspectRatio",[["aspect",["aspect-ratio"]]]),size:L("size",[["size",["width","height"]]]),height:L("height",[["h",["height"]]]),maxHeight:L("maxHeight",[["max-h",["maxHeight"]]]),minHeight:L("minHeight",[["min-h",["minHeight"]]]),width:L("width",[["w",["width"]]]),minWidth:L("minWidth",[["min-w",["minWidth"]]]),maxWidth:L("maxWidth",[["max-w",["maxWidth"]]]),flex:L("flex"),flexShrink:L("flexShrink",[["flex-shrink",["flex-shrink"]],["shrink",["flex-shrink"]]]),flexGrow:L("flexGrow",[["flex-grow",["flex-grow"]],["grow",["flex-grow"]]]),flexBasis:L("flexBasis",[["basis",["flex-basis"]]]),tableLayout:({addUtilities:r})=>{r({".table-auto":{"table-layout":"auto"},".table-fixed":{"table-layout":"fixed"}})},captionSide:({addUtilities:r})=>{r({".caption-top":{"caption-side":"top"},".caption-bottom":{"caption-side":"bottom"}})},borderCollapse:({addUtilities:r})=>{r({".border-collapse":{"border-collapse":"collapse"},".border-separate":{"border-collapse":"separate"}})},borderSpacing:({addDefaults:r,matchUtilities:e,theme:t})=>{r("border-spacing",{"--tw-border-spacing-x":0,"--tw-border-spacing-y":0}),e({"border-spacing":i=>({"--tw-border-spacing-x":i,"--tw-border-spacing-y":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-x":i=>({"--tw-border-spacing-x":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-y":i=>({"--tw-border-spacing-y":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"})},{values:t("borderSpacing")})},transformOrigin:L("transformOrigin",[["origin",["transformOrigin"]]]),translate:L("translate",[[["translate-x",[["@defaults transform",{}],"--tw-translate-x",["transform",Xe]]],["translate-y",[["@defaults transform",{}],"--tw-translate-y",["transform",Xe]]]]],{supportsNegativeValues:!0}),rotate:L("rotate",[["rotate",[["@defaults transform",{}],"--tw-rotate",["transform",Xe]]]],{supportsNegativeValues:!0}),skew:L("skew",[[["skew-x",[["@defaults transform",{}],"--tw-skew-x",["transform",Xe]]],["skew-y",[["@defaults transform",{}],"--tw-skew-y",["transform",Xe]]]]],{supportsNegativeValues:!0}),scale:L("scale",[["scale",[["@defaults transform",{}],"--tw-scale-x","--tw-scale-y",["transform",Xe]]],[["scale-x",[["@defaults transform",{}],"--tw-scale-x",["transform",Xe]]],["scale-y",[["@defaults transform",{}],"--tw-scale-y",["transform",Xe]]]]],{supportsNegativeValues:!0}),transform:({addDefaults:r,addUtilities:e})=>{r("transform",{"--tw-translate-x":"0","--tw-translate-y":"0","--tw-rotate":"0","--tw-skew-x":"0","--tw-skew-y":"0","--tw-scale-x":"1","--tw-scale-y":"1"}),e({".transform":{"@defaults transform":{},transform:Xe},".transform-cpu":{transform:Xe},".transform-gpu":{transform:Xe.replace("translate(var(--tw-translate-x), var(--tw-translate-y))","translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)")},".transform-none":{transform:"none"}})},animation:({matchUtilities:r,theme:e,config:t})=>{let i=s=>Te(t("prefix")+s),n=Object.fromEntries(Object.entries(e("keyframes")??{}).map(([s,a])=>[s,{[`@keyframes ${i(s)}`]:a}]));r({animate:s=>{let a=Mo(s);return[...a.flatMap(o=>n[o.name]),{animation:a.map(({name:o,value:l})=>o===void 0||n[o]===void 0?l:l.replace(o,i(o))).join(", ")}]}},{values:e("animation")})},cursor:L("cursor"),touchAction:({addDefaults:r,addUtilities:e})=>{r("touch-action",{"--tw-pan-x":" ","--tw-pan-y":" ","--tw-pinch-zoom":" "});let t="var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)";e({".touch-auto":{"touch-action":"auto"},".touch-none":{"touch-action":"none"},".touch-pan-x":{"@defaults touch-action":{},"--tw-pan-x":"pan-x","touch-action":t},".touch-pan-left":{"@defaults touch-action":{},"--tw-pan-x":"pan-left","touch-action":t},".touch-pan-right":{"@defaults touch-action":{},"--tw-pan-x":"pan-right","touch-action":t},".touch-pan-y":{"@defaults touch-action":{},"--tw-pan-y":"pan-y","touch-action":t},".touch-pan-up":{"@defaults touch-action":{},"--tw-pan-y":"pan-up","touch-action":t},".touch-pan-down":{"@defaults touch-action":{},"--tw-pan-y":"pan-down","touch-action":t},".touch-pinch-zoom":{"@defaults touch-action":{},"--tw-pinch-zoom":"pinch-zoom","touch-action":t},".touch-manipulation":{"touch-action":"manipulation"}})},userSelect:({addUtilities:r})=>{r({".select-none":{"user-select":"none"},".select-text":{"user-select":"text"},".select-all":{"user-select":"all"},".select-auto":{"user-select":"auto"}})},resize:({addUtilities:r})=>{r({".resize-none":{resize:"none"},".resize-y":{resize:"vertical"},".resize-x":{resize:"horizontal"},".resize":{resize:"both"}})},scrollSnapType:({addDefaults:r,addUtilities:e})=>{r("scroll-snap-type",{"--tw-scroll-snap-strictness":"proximity"}),e({".snap-none":{"scroll-snap-type":"none"},".snap-x":{"@defaults scroll-snap-type":{},"scroll-snap-type":"x var(--tw-scroll-snap-strictness)"},".snap-y":{"@defaults scroll-snap-type":{},"scroll-snap-type":"y var(--tw-scroll-snap-strictness)"},".snap-both":{"@defaults scroll-snap-type":{},"scroll-snap-type":"both var(--tw-scroll-snap-strictness)"},".snap-mandatory":{"--tw-scroll-snap-strictness":"mandatory"},".snap-proximity":{"--tw-scroll-snap-strictness":"proximity"}})},scrollSnapAlign:({addUtilities:r})=>{r({".snap-start":{"scroll-snap-align":"start"},".snap-end":{"scroll-snap-align":"end"},".snap-center":{"scroll-snap-align":"center"},".snap-align-none":{"scroll-snap-align":"none"}})},scrollSnapStop:({addUtilities:r})=>{r({".snap-normal":{"scroll-snap-stop":"normal"},".snap-always":{"scroll-snap-stop":"always"}})},scrollMargin:L("scrollMargin",[["scroll-m",["scroll-margin"]],[["scroll-mx",["scroll-margin-left","scroll-margin-right"]],["scroll-my",["scroll-margin-top","scroll-margin-bottom"]]],[["scroll-ms",["scroll-margin-inline-start"]],["scroll-me",["scroll-margin-inline-end"]],["scroll-mt",["scroll-margin-top"]],["scroll-mr",["scroll-margin-right"]],["scroll-mb",["scroll-margin-bottom"]],["scroll-ml",["scroll-margin-left"]]]],{supportsNegativeValues:!0}),scrollPadding:L("scrollPadding",[["scroll-p",["scroll-padding"]],[["scroll-px",["scroll-padding-left","scroll-padding-right"]],["scroll-py",["scroll-padding-top","scroll-padding-bottom"]]],[["scroll-ps",["scroll-padding-inline-start"]],["scroll-pe",["scroll-padding-inline-end"]],["scroll-pt",["scroll-padding-top"]],["scroll-pr",["scroll-padding-right"]],["scroll-pb",["scroll-padding-bottom"]],["scroll-pl",["scroll-padding-left"]]]]),listStylePosition:({addUtilities:r})=>{r({".list-inside":{"list-style-position":"inside"},".list-outside":{"list-style-position":"outside"}})},listStyleType:L("listStyleType",[["list",["listStyleType"]]]),listStyleImage:L("listStyleImage",[["list-image",["listStyleImage"]]]),appearance:({addUtilities:r})=>{r({".appearance-none":{appearance:"none"},".appearance-auto":{appearance:"auto"}})},columns:L("columns",[["columns",["columns"]]]),breakBefore:({addUtilities:r})=>{r({".break-before-auto":{"break-before":"auto"},".break-before-avoid":{"break-before":"avoid"},".break-before-all":{"break-before":"all"},".break-before-avoid-page":{"break-before":"avoid-page"},".break-before-page":{"break-before":"page"},".break-before-left":{"break-before":"left"},".break-before-right":{"break-before":"right"},".break-before-column":{"break-before":"column"}})},breakInside:({addUtilities:r})=>{r({".break-inside-auto":{"break-inside":"auto"},".break-inside-avoid":{"break-inside":"avoid"},".break-inside-avoid-page":{"break-inside":"avoid-page"},".break-inside-avoid-column":{"break-inside":"avoid-column"}})},breakAfter:({addUtilities:r})=>{r({".break-after-auto":{"break-after":"auto"},".break-after-avoid":{"break-after":"avoid"},".break-after-all":{"break-after":"all"},".break-after-avoid-page":{"break-after":"avoid-page"},".break-after-page":{"break-after":"page"},".break-after-left":{"break-after":"left"},".break-after-right":{"break-after":"right"},".break-after-column":{"break-after":"column"}})},gridAutoColumns:L("gridAutoColumns",[["auto-cols",["gridAutoColumns"]]]),gridAutoFlow:({addUtilities:r})=>{r({".grid-flow-row":{gridAutoFlow:"row"},".grid-flow-col":{gridAutoFlow:"column"},".grid-flow-dense":{gridAutoFlow:"dense"},".grid-flow-row-dense":{gridAutoFlow:"row dense"},".grid-flow-col-dense":{gridAutoFlow:"column dense"}})},gridAutoRows:L("gridAutoRows",[["auto-rows",["gridAutoRows"]]]),gridTemplateColumns:L("gridTemplateColumns",[["grid-cols",["gridTemplateColumns"]]]),gridTemplateRows:L("gridTemplateRows",[["grid-rows",["gridTemplateRows"]]]),flexDirection:({addUtilities:r})=>{r({".flex-row":{"flex-direction":"row"},".flex-row-reverse":{"flex-direction":"row-reverse"},".flex-col":{"flex-direction":"column"},".flex-col-reverse":{"flex-direction":"column-reverse"}})},flexWrap:({addUtilities:r})=>{r({".flex-wrap":{"flex-wrap":"wrap"},".flex-wrap-reverse":{"flex-wrap":"wrap-reverse"},".flex-nowrap":{"flex-wrap":"nowrap"}})},placeContent:({addUtilities:r})=>{r({".place-content-center":{"place-content":"center"},".place-content-start":{"place-content":"start"},".place-content-end":{"place-content":"end"},".place-content-between":{"place-content":"space-between"},".place-content-around":{"place-content":"space-around"},".place-content-evenly":{"place-content":"space-evenly"},".place-content-baseline":{"place-content":"baseline"},".place-content-stretch":{"place-content":"stretch"}})},placeItems:({addUtilities:r})=>{r({".place-items-start":{"place-items":"start"},".place-items-end":{"place-items":"end"},".place-items-center":{"place-items":"center"},".place-items-baseline":{"place-items":"baseline"},".place-items-stretch":{"place-items":"stretch"}})},alignContent:({addUtilities:r})=>{r({".content-normal":{"align-content":"normal"},".content-center":{"align-content":"center"},".content-start":{"align-content":"flex-start"},".content-end":{"align-content":"flex-end"},".content-between":{"align-content":"space-between"},".content-around":{"align-content":"space-around"},".content-evenly":{"align-content":"space-evenly"},".content-baseline":{"align-content":"baseline"},".content-stretch":{"align-content":"stretch"}})},alignItems:({addUtilities:r})=>{r({".items-start":{"align-items":"flex-start"},".items-end":{"align-items":"flex-end"},".items-center":{"align-items":"center"},".items-baseline":{"align-items":"baseline"},".items-stretch":{"align-items":"stretch"}})},justifyContent:({addUtilities:r})=>{r({".justify-normal":{"justify-content":"normal"},".justify-start":{"justify-content":"flex-start"},".justify-end":{"justify-content":"flex-end"},".justify-center":{"justify-content":"center"},".justify-between":{"justify-content":"space-between"},".justify-around":{"justify-content":"space-around"},".justify-evenly":{"justify-content":"space-evenly"},".justify-stretch":{"justify-content":"stretch"}})},justifyItems:({addUtilities:r})=>{r({".justify-items-start":{"justify-items":"start"},".justify-items-end":{"justify-items":"end"},".justify-items-center":{"justify-items":"center"},".justify-items-stretch":{"justify-items":"stretch"}})},gap:L("gap",[["gap",["gap"]],[["gap-x",["columnGap"]],["gap-y",["rowGap"]]]]),space:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"space-x":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"0","margin-right":`calc(${i} * var(--tw-space-x-reverse))`,"margin-left":`calc(${i} * calc(1 - var(--tw-space-x-reverse)))`}}),"space-y":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"0","margin-top":`calc(${i} * calc(1 - var(--tw-space-y-reverse)))`,"margin-bottom":`calc(${i} * var(--tw-space-y-reverse))`}})},{values:t("space"),supportsNegativeValues:!0}),e({".space-y-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"1"},".space-x-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"1"}})},divideWidth:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"divide-x":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"0","border-right-width":`calc(${i} * var(--tw-divide-x-reverse))`,"border-left-width":`calc(${i} * calc(1 - var(--tw-divide-x-reverse)))`}}),"divide-y":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"0","border-top-width":`calc(${i} * calc(1 - var(--tw-divide-y-reverse)))`,"border-bottom-width":`calc(${i} * var(--tw-divide-y-reverse))`}})},{values:t("divideWidth"),type:["line-width","length","any"]}),e({".divide-y-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"1"},".divide-x-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"1"}})},divideStyle:({addUtilities:r})=>{r({".divide-solid > :not([hidden]) ~ :not([hidden])":{"border-style":"solid"},".divide-dashed > :not([hidden]) ~ :not([hidden])":{"border-style":"dashed"},".divide-dotted > :not([hidden]) ~ :not([hidden])":{"border-style":"dotted"},".divide-double > :not([hidden]) ~ :not([hidden])":{"border-style":"double"},".divide-none > :not([hidden]) ~ :not([hidden])":{"border-style":"none"}})},divideColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({divide:i=>t("divideOpacity")?{["& > :not([hidden]) ~ :not([hidden])"]:Ae({color:i,property:"border-color",variable:"--tw-divide-opacity"})}:{["& > :not([hidden]) ~ :not([hidden])"]:{"border-color":X(i)}}},{values:(({DEFAULT:i,...n})=>n)(xe(e("divideColor"))),type:["color","any"]})},divideOpacity:({matchUtilities:r,theme:e})=>{r({"divide-opacity":t=>({["& > :not([hidden]) ~ :not([hidden])"]:{"--tw-divide-opacity":t}})},{values:e("divideOpacity")})},placeSelf:({addUtilities:r})=>{r({".place-self-auto":{"place-self":"auto"},".place-self-start":{"place-self":"start"},".place-self-end":{"place-self":"end"},".place-self-center":{"place-self":"center"},".place-self-stretch":{"place-self":"stretch"}})},alignSelf:({addUtilities:r})=>{r({".self-auto":{"align-self":"auto"},".self-start":{"align-self":"flex-start"},".self-end":{"align-self":"flex-end"},".self-center":{"align-self":"center"},".self-stretch":{"align-self":"stretch"},".self-baseline":{"align-self":"baseline"}})},justifySelf:({addUtilities:r})=>{r({".justify-self-auto":{"justify-self":"auto"},".justify-self-start":{"justify-self":"start"},".justify-self-end":{"justify-self":"end"},".justify-self-center":{"justify-self":"center"},".justify-self-stretch":{"justify-self":"stretch"}})},overflow:({addUtilities:r})=>{r({".overflow-auto":{overflow:"auto"},".overflow-hidden":{overflow:"hidden"},".overflow-clip":{overflow:"clip"},".overflow-visible":{overflow:"visible"},".overflow-scroll":{overflow:"scroll"},".overflow-x-auto":{"overflow-x":"auto"},".overflow-y-auto":{"overflow-y":"auto"},".overflow-x-hidden":{"overflow-x":"hidden"},".overflow-y-hidden":{"overflow-y":"hidden"},".overflow-x-clip":{"overflow-x":"clip"},".overflow-y-clip":{"overflow-y":"clip"},".overflow-x-visible":{"overflow-x":"visible"},".overflow-y-visible":{"overflow-y":"visible"},".overflow-x-scroll":{"overflow-x":"scroll"},".overflow-y-scroll":{"overflow-y":"scroll"}})},overscrollBehavior:({addUtilities:r})=>{r({".overscroll-auto":{"overscroll-behavior":"auto"},".overscroll-contain":{"overscroll-behavior":"contain"},".overscroll-none":{"overscroll-behavior":"none"},".overscroll-y-auto":{"overscroll-behavior-y":"auto"},".overscroll-y-contain":{"overscroll-behavior-y":"contain"},".overscroll-y-none":{"overscroll-behavior-y":"none"},".overscroll-x-auto":{"overscroll-behavior-x":"auto"},".overscroll-x-contain":{"overscroll-behavior-x":"contain"},".overscroll-x-none":{"overscroll-behavior-x":"none"}})},scrollBehavior:({addUtilities:r})=>{r({".scroll-auto":{"scroll-behavior":"auto"},".scroll-smooth":{"scroll-behavior":"smooth"}})},textOverflow:({addUtilities:r})=>{r({".truncate":{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"},".overflow-ellipsis":{"text-overflow":"ellipsis"},".text-ellipsis":{"text-overflow":"ellipsis"},".text-clip":{"text-overflow":"clip"}})},hyphens:({addUtilities:r})=>{r({".hyphens-none":{hyphens:"none"},".hyphens-manual":{hyphens:"manual"},".hyphens-auto":{hyphens:"auto"}})},whitespace:({addUtilities:r})=>{r({".whitespace-normal":{"white-space":"normal"},".whitespace-nowrap":{"white-space":"nowrap"},".whitespace-pre":{"white-space":"pre"},".whitespace-pre-line":{"white-space":"pre-line"},".whitespace-pre-wrap":{"white-space":"pre-wrap"},".whitespace-break-spaces":{"white-space":"break-spaces"}})},textWrap:({addUtilities:r})=>{r({".text-wrap":{"text-wrap":"wrap"},".text-nowrap":{"text-wrap":"nowrap"},".text-balance":{"text-wrap":"balance"},".text-pretty":{"text-wrap":"pretty"}})},wordBreak:({addUtilities:r})=>{r({".break-normal":{"overflow-wrap":"normal","word-break":"normal"},".break-words":{"overflow-wrap":"break-word"},".break-all":{"word-break":"break-all"},".break-keep":{"word-break":"keep-all"}})},borderRadius:L("borderRadius",[["rounded",["border-radius"]],[["rounded-s",["border-start-start-radius","border-end-start-radius"]],["rounded-e",["border-start-end-radius","border-end-end-radius"]],["rounded-t",["border-top-left-radius","border-top-right-radius"]],["rounded-r",["border-top-right-radius","border-bottom-right-radius"]],["rounded-b",["border-bottom-right-radius","border-bottom-left-radius"]],["rounded-l",["border-top-left-radius","border-bottom-left-radius"]]],[["rounded-ss",["border-start-start-radius"]],["rounded-se",["border-start-end-radius"]],["rounded-ee",["border-end-end-radius"]],["rounded-es",["border-end-start-radius"]],["rounded-tl",["border-top-left-radius"]],["rounded-tr",["border-top-right-radius"]],["rounded-br",["border-bottom-right-radius"]],["rounded-bl",["border-bottom-left-radius"]]]]),borderWidth:L("borderWidth",[["border",[["@defaults border-width",{}],"border-width"]],[["border-x",[["@defaults border-width",{}],"border-left-width","border-right-width"]],["border-y",[["@defaults border-width",{}],"border-top-width","border-bottom-width"]]],[["border-s",[["@defaults border-width",{}],"border-inline-start-width"]],["border-e",[["@defaults border-width",{}],"border-inline-end-width"]],["border-t",[["@defaults border-width",{}],"border-top-width"]],["border-r",[["@defaults border-width",{}],"border-right-width"]],["border-b",[["@defaults border-width",{}],"border-bottom-width"]],["border-l",[["@defaults border-width",{}],"border-left-width"]]]],{type:["line-width","length"]}),borderStyle:({addUtilities:r})=>{r({".border-solid":{"border-style":"solid"},".border-dashed":{"border-style":"dashed"},".border-dotted":{"border-style":"dotted"},".border-double":{"border-style":"double"},".border-hidden":{"border-style":"hidden"},".border-none":{"border-style":"none"}})},borderColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({border:i=>t("borderOpacity")?Ae({color:i,property:"border-color",variable:"--tw-border-opacity"}):{"border-color":X(i)}},{values:(({DEFAULT:i,...n})=>n)(xe(e("borderColor"))),type:["color","any"]}),r({"border-x":i=>t("borderOpacity")?Ae({color:i,property:["border-left-color","border-right-color"],variable:"--tw-border-opacity"}):{"border-left-color":X(i),"border-right-color":X(i)},"border-y":i=>t("borderOpacity")?Ae({color:i,property:["border-top-color","border-bottom-color"],variable:"--tw-border-opacity"}):{"border-top-color":X(i),"border-bottom-color":X(i)}},{values:(({DEFAULT:i,...n})=>n)(xe(e("borderColor"))),type:["color","any"]}),r({"border-s":i=>t("borderOpacity")?Ae({color:i,property:"border-inline-start-color",variable:"--tw-border-opacity"}):{"border-inline-start-color":X(i)},"border-e":i=>t("borderOpacity")?Ae({color:i,property:"border-inline-end-color",variable:"--tw-border-opacity"}):{"border-inline-end-color":X(i)},"border-t":i=>t("borderOpacity")?Ae({color:i,property:"border-top-color",variable:"--tw-border-opacity"}):{"border-top-color":X(i)},"border-r":i=>t("borderOpacity")?Ae({color:i,property:"border-right-color",variable:"--tw-border-opacity"}):{"border-right-color":X(i)},"border-b":i=>t("borderOpacity")?Ae({color:i,property:"border-bottom-color",variable:"--tw-border-opacity"}):{"border-bottom-color":X(i)},"border-l":i=>t("borderOpacity")?Ae({color:i,property:"border-left-color",variable:"--tw-border-opacity"}):{"border-left-color":X(i)}},{values:(({DEFAULT:i,...n})=>n)(xe(e("borderColor"))),type:["color","any"]})},borderOpacity:L("borderOpacity",[["border-opacity",["--tw-border-opacity"]]]),backgroundColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({bg:i=>t("backgroundOpacity")?Ae({color:i,property:"background-color",variable:"--tw-bg-opacity"}):{"background-color":X(i)}},{values:xe(e("backgroundColor")),type:["color","any"]})},backgroundOpacity:L("backgroundOpacity",[["bg-opacity",["--tw-bg-opacity"]]]),backgroundImage:L("backgroundImage",[["bg",["background-image"]]],{type:["lookup","image","url"]}),gradientColorStops:(()=>{function r(e){return Je(e,0,"rgb(255 255 255 / 0)")}return function({matchUtilities:e,theme:t,addDefaults:i}){i("gradient-color-stops",{"--tw-gradient-from-position":" ","--tw-gradient-via-position":" ","--tw-gradient-to-position":" "});let n={values:xe(t("gradientColorStops")),type:["color","any"]},s={values:t("gradientColorStopPositions"),type:["length","percentage"]};e({from:a=>{let o=r(a);return{"@defaults gradient-color-stops":{},"--tw-gradient-from":`${X(a)} var(--tw-gradient-from-position)`,"--tw-gradient-to":`${o} var(--tw-gradient-to-position)`,"--tw-gradient-stops":"var(--tw-gradient-from), var(--tw-gradient-to)"}}},n),e({from:a=>({"--tw-gradient-from-position":a})},s),e({via:a=>{let o=r(a);return{"@defaults gradient-color-stops":{},"--tw-gradient-to":`${o} var(--tw-gradient-to-position)`,"--tw-gradient-stops":`var(--tw-gradient-from), ${X(a)} var(--tw-gradient-via-position), var(--tw-gradient-to)`}}},n),e({via:a=>({"--tw-gradient-via-position":a})},s),e({to:a=>({"@defaults gradient-color-stops":{},"--tw-gradient-to":`${X(a)} var(--tw-gradient-to-position)`})},n),e({to:a=>({"--tw-gradient-to-position":a})},s)}})(),boxDecorationBreak:({addUtilities:r})=>{r({".decoration-slice":{"box-decoration-break":"slice"},".decoration-clone":{"box-decoration-break":"clone"},".box-decoration-slice":{"box-decoration-break":"slice"},".box-decoration-clone":{"box-decoration-break":"clone"}})},backgroundSize:L("backgroundSize",[["bg",["background-size"]]],{type:["lookup","length","percentage","size"]}),backgroundAttachment:({addUtilities:r})=>{r({".bg-fixed":{"background-attachment":"fixed"},".bg-local":{"background-attachment":"local"},".bg-scroll":{"background-attachment":"scroll"}})},backgroundClip:({addUtilities:r})=>{r({".bg-clip-border":{"background-clip":"border-box"},".bg-clip-padding":{"background-clip":"padding-box"},".bg-clip-content":{"background-clip":"content-box"},".bg-clip-text":{"background-clip":"text"}})},backgroundPosition:L("backgroundPosition",[["bg",["background-position"]]],{type:["lookup",["position",{preferOnConflict:!0}]]}),backgroundRepeat:({addUtilities:r})=>{r({".bg-repeat":{"background-repeat":"repeat"},".bg-no-repeat":{"background-repeat":"no-repeat"},".bg-repeat-x":{"background-repeat":"repeat-x"},".bg-repeat-y":{"background-repeat":"repeat-y"},".bg-repeat-round":{"background-repeat":"round"},".bg-repeat-space":{"background-repeat":"space"}})},backgroundOrigin:({addUtilities:r})=>{r({".bg-origin-border":{"background-origin":"border-box"},".bg-origin-padding":{"background-origin":"padding-box"},".bg-origin-content":{"background-origin":"content-box"}})},fill:({matchUtilities:r,theme:e})=>{r({fill:t=>({fill:X(t)})},{values:xe(e("fill")),type:["color","any"]})},stroke:({matchUtilities:r,theme:e})=>{r({stroke:t=>({stroke:X(t)})},{values:xe(e("stroke")),type:["color","url","any"]})},strokeWidth:L("strokeWidth",[["stroke",["stroke-width"]]],{type:["length","number","percentage"]}),objectFit:({addUtilities:r})=>{r({".object-contain":{"object-fit":"contain"},".object-cover":{"object-fit":"cover"},".object-fill":{"object-fit":"fill"},".object-none":{"object-fit":"none"},".object-scale-down":{"object-fit":"scale-down"}})},objectPosition:L("objectPosition",[["object",["object-position"]]]),padding:L("padding",[["p",["padding"]],[["px",["padding-left","padding-right"]],["py",["padding-top","padding-bottom"]]],[["ps",["padding-inline-start"]],["pe",["padding-inline-end"]],["pt",["padding-top"]],["pr",["padding-right"]],["pb",["padding-bottom"]],["pl",["padding-left"]]]]),textAlign:({addUtilities:r})=>{r({".text-left":{"text-align":"left"},".text-center":{"text-align":"center"},".text-right":{"text-align":"right"},".text-justify":{"text-align":"justify"},".text-start":{"text-align":"start"},".text-end":{"text-align":"end"}})},textIndent:L("textIndent",[["indent",["text-indent"]]],{supportsNegativeValues:!0}),verticalAlign:({addUtilities:r,matchUtilities:e})=>{r({".align-baseline":{"vertical-align":"baseline"},".align-top":{"vertical-align":"top"},".align-middle":{"vertical-align":"middle"},".align-bottom":{"vertical-align":"bottom"},".align-text-top":{"vertical-align":"text-top"},".align-text-bottom":{"vertical-align":"text-bottom"},".align-sub":{"vertical-align":"sub"},".align-super":{"vertical-align":"super"}}),e({align:t=>({"vertical-align":t})})},fontFamily:({matchUtilities:r,theme:e})=>{r({font:t=>{let[i,n={}]=Array.isArray(t)&&ke(t[1])?t:[t],{fontFeatureSettings:s,fontVariationSettings:a}=n;return{"font-family":Array.isArray(i)?i.join(", "):i,...s===void 0?{}:{"font-feature-settings":s},...a===void 0?{}:{"font-variation-settings":a}}}},{values:e("fontFamily"),type:["lookup","generic-name","family-name"]})},fontSize:({matchUtilities:r,theme:e})=>{r({text:(t,{modifier:i})=>{let[n,s]=Array.isArray(t)?t:[t];if(i)return{"font-size":n,"line-height":i};let{lineHeight:a,letterSpacing:o,fontWeight:l}=ke(s)?s:{lineHeight:s};return{"font-size":n,...a===void 0?{}:{"line-height":a},...o===void 0?{}:{"letter-spacing":o},...l===void 0?{}:{"font-weight":l}}}},{values:e("fontSize"),modifiers:e("lineHeight"),type:["absolute-size","relative-size","length","percentage"]})},fontWeight:L("fontWeight",[["font",["fontWeight"]]],{type:["lookup","number","any"]}),textTransform:({addUtilities:r})=>{r({".uppercase":{"text-transform":"uppercase"},".lowercase":{"text-transform":"lowercase"},".capitalize":{"text-transform":"capitalize"},".normal-case":{"text-transform":"none"}})},fontStyle:({addUtilities:r})=>{r({".italic":{"font-style":"italic"},".not-italic":{"font-style":"normal"}})},fontVariantNumeric:({addDefaults:r,addUtilities:e})=>{let t="var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)";r("font-variant-numeric",{"--tw-ordinal":" ","--tw-slashed-zero":" ","--tw-numeric-figure":" ","--tw-numeric-spacing":" ","--tw-numeric-fraction":" "}),e({".normal-nums":{"font-variant-numeric":"normal"},".ordinal":{"@defaults font-variant-numeric":{},"--tw-ordinal":"ordinal","font-variant-numeric":t},".slashed-zero":{"@defaults font-variant-numeric":{},"--tw-slashed-zero":"slashed-zero","font-variant-numeric":t},".lining-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"lining-nums","font-variant-numeric":t},".oldstyle-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"oldstyle-nums","font-variant-numeric":t},".proportional-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"proportional-nums","font-variant-numeric":t},".tabular-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"tabular-nums","font-variant-numeric":t},".diagonal-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"diagonal-fractions","font-variant-numeric":t},".stacked-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"stacked-fractions","font-variant-numeric":t}})},lineHeight:L("lineHeight",[["leading",["lineHeight"]]]),letterSpacing:L("letterSpacing",[["tracking",["letterSpacing"]]],{supportsNegativeValues:!0}),textColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({text:i=>t("textOpacity")?Ae({color:i,property:"color",variable:"--tw-text-opacity"}):{color:X(i)}},{values:xe(e("textColor")),type:["color","any"]})},textOpacity:L("textOpacity",[["text-opacity",["--tw-text-opacity"]]]),textDecoration:({addUtilities:r})=>{r({".underline":{"text-decoration-line":"underline"},".overline":{"text-decoration-line":"overline"},".line-through":{"text-decoration-line":"line-through"},".no-underline":{"text-decoration-line":"none"}})},textDecorationColor:({matchUtilities:r,theme:e})=>{r({decoration:t=>({"text-decoration-color":X(t)})},{values:xe(e("textDecorationColor")),type:["color","any"]})},textDecorationStyle:({addUtilities:r})=>{r({".decoration-solid":{"text-decoration-style":"solid"},".decoration-double":{"text-decoration-style":"double"},".decoration-dotted":{"text-decoration-style":"dotted"},".decoration-dashed":{"text-decoration-style":"dashed"},".decoration-wavy":{"text-decoration-style":"wavy"}})},textDecorationThickness:L("textDecorationThickness",[["decoration",["text-decoration-thickness"]]],{type:["length","percentage"]}),textUnderlineOffset:L("textUnderlineOffset",[["underline-offset",["text-underline-offset"]]],{type:["length","percentage","any"]}),fontSmoothing:({addUtilities:r})=>{r({".antialiased":{"-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale"},".subpixel-antialiased":{"-webkit-font-smoothing":"auto","-moz-osx-font-smoothing":"auto"}})},placeholderColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({placeholder:i=>t("placeholderOpacity")?{"&::placeholder":Ae({color:i,property:"color",variable:"--tw-placeholder-opacity"})}:{"&::placeholder":{color:X(i)}}},{values:xe(e("placeholderColor")),type:["color","any"]})},placeholderOpacity:({matchUtilities:r,theme:e})=>{r({"placeholder-opacity":t=>({["&::placeholder"]:{"--tw-placeholder-opacity":t}})},{values:e("placeholderOpacity")})},caretColor:({matchUtilities:r,theme:e})=>{r({caret:t=>({"caret-color":X(t)})},{values:xe(e("caretColor")),type:["color","any"]})},accentColor:({matchUtilities:r,theme:e})=>{r({accent:t=>({"accent-color":X(t)})},{values:xe(e("accentColor")),type:["color","any"]})},opacity:L("opacity",[["opacity",["opacity"]]]),backgroundBlendMode:({addUtilities:r})=>{r({".bg-blend-normal":{"background-blend-mode":"normal"},".bg-blend-multiply":{"background-blend-mode":"multiply"},".bg-blend-screen":{"background-blend-mode":"screen"},".bg-blend-overlay":{"background-blend-mode":"overlay"},".bg-blend-darken":{"background-blend-mode":"darken"},".bg-blend-lighten":{"background-blend-mode":"lighten"},".bg-blend-color-dodge":{"background-blend-mode":"color-dodge"},".bg-blend-color-burn":{"background-blend-mode":"color-burn"},".bg-blend-hard-light":{"background-blend-mode":"hard-light"},".bg-blend-soft-light":{"background-blend-mode":"soft-light"},".bg-blend-difference":{"background-blend-mode":"difference"},".bg-blend-exclusion":{"background-blend-mode":"exclusion"},".bg-blend-hue":{"background-blend-mode":"hue"},".bg-blend-saturation":{"background-blend-mode":"saturation"},".bg-blend-color":{"background-blend-mode":"color"},".bg-blend-luminosity":{"background-blend-mode":"luminosity"}})},mixBlendMode:({addUtilities:r})=>{r({".mix-blend-normal":{"mix-blend-mode":"normal"},".mix-blend-multiply":{"mix-blend-mode":"multiply"},".mix-blend-screen":{"mix-blend-mode":"screen"},".mix-blend-overlay":{"mix-blend-mode":"overlay"},".mix-blend-darken":{"mix-blend-mode":"darken"},".mix-blend-lighten":{"mix-blend-mode":"lighten"},".mix-blend-color-dodge":{"mix-blend-mode":"color-dodge"},".mix-blend-color-burn":{"mix-blend-mode":"color-burn"},".mix-blend-hard-light":{"mix-blend-mode":"hard-light"},".mix-blend-soft-light":{"mix-blend-mode":"soft-light"},".mix-blend-difference":{"mix-blend-mode":"difference"},".mix-blend-exclusion":{"mix-blend-mode":"exclusion"},".mix-blend-hue":{"mix-blend-mode":"hue"},".mix-blend-saturation":{"mix-blend-mode":"saturation"},".mix-blend-color":{"mix-blend-mode":"color"},".mix-blend-luminosity":{"mix-blend-mode":"luminosity"},".mix-blend-plus-darker":{"mix-blend-mode":"plus-darker"},".mix-blend-plus-lighter":{"mix-blend-mode":"plus-lighter"}})},boxShadow:(()=>{let r=mt("boxShadow"),e=["var(--tw-ring-offset-shadow, 0 0 #0000)","var(--tw-ring-shadow, 0 0 #0000)","var(--tw-shadow)"].join(", ");return function({matchUtilities:t,addDefaults:i,theme:n}){i("box-shadow",{"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),t({shadow:s=>{s=r(s);let a=en(s);for(let o of a)!o.valid||(o.color="var(--tw-shadow-color)");return{"@defaults box-shadow":{},"--tw-shadow":s==="none"?"0 0 #0000":s,"--tw-shadow-colored":s==="none"?"0 0 #0000":Lf(a),"box-shadow":e}}},{values:n("boxShadow"),type:["shadow"]})}})(),boxShadowColor:({matchUtilities:r,theme:e})=>{r({shadow:t=>({"--tw-shadow-color":X(t),"--tw-shadow":"var(--tw-shadow-colored)"})},{values:xe(e("boxShadowColor")),type:["color","any"]})},outlineStyle:({addUtilities:r})=>{r({".outline-none":{outline:"2px solid transparent","outline-offset":"2px"},".outline":{"outline-style":"solid"},".outline-dashed":{"outline-style":"dashed"},".outline-dotted":{"outline-style":"dotted"},".outline-double":{"outline-style":"double"}})},outlineWidth:L("outlineWidth",[["outline",["outline-width"]]],{type:["length","number","percentage"]}),outlineOffset:L("outlineOffset",[["outline-offset",["outline-offset"]]],{type:["length","number","percentage","any"],supportsNegativeValues:!0}),outlineColor:({matchUtilities:r,theme:e})=>{r({outline:t=>({"outline-color":X(t)})},{values:xe(e("outlineColor")),type:["color","any"]})},ringWidth:({matchUtilities:r,addDefaults:e,addUtilities:t,theme:i,config:n})=>{let s=(()=>{if(we(n(),"respectDefaultRingColorOpacity"))return i("ringColor.DEFAULT");let a=i("ringOpacity.DEFAULT","0.5");return i("ringColor")?.DEFAULT?Je(i("ringColor")?.DEFAULT,a,`rgb(147 197 253 / ${a})`):`rgb(147 197 253 / ${a})`})();e("ring-width",{"--tw-ring-inset":" ","--tw-ring-offset-width":i("ringOffsetWidth.DEFAULT","0px"),"--tw-ring-offset-color":i("ringOffsetColor.DEFAULT","#fff"),"--tw-ring-color":s,"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),r({ring:a=>({"@defaults ring-width":{},"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":`var(--tw-ring-inset) 0 0 0 calc(${a} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,"box-shadow":["var(--tw-ring-offset-shadow)","var(--tw-ring-shadow)","var(--tw-shadow, 0 0 #0000)"].join(", ")})},{values:i("ringWidth"),type:"length"}),t({".ring-inset":{"@defaults ring-width":{},"--tw-ring-inset":"inset"}})},ringColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({ring:i=>t("ringOpacity")?Ae({color:i,property:"--tw-ring-color",variable:"--tw-ring-opacity"}):{"--tw-ring-color":X(i)}},{values:Object.fromEntries(Object.entries(xe(e("ringColor"))).filter(([i])=>i!=="DEFAULT")),type:["color","any"]})},ringOpacity:r=>{let{config:e}=r;return L("ringOpacity",[["ring-opacity",["--tw-ring-opacity"]]],{filterDefault:!we(e(),"respectDefaultRingColorOpacity")})(r)},ringOffsetWidth:L("ringOffsetWidth",[["ring-offset",["--tw-ring-offset-width"]]],{type:"length"}),ringOffsetColor:({matchUtilities:r,theme:e})=>{r({"ring-offset":t=>({"--tw-ring-offset-color":X(t)})},{values:xe(e("ringOffsetColor")),type:["color","any"]})},blur:({matchUtilities:r,theme:e})=>{r({blur:t=>({"--tw-blur":t.trim()===""?" ":`blur(${t})`,"@defaults filter":{},filter:nt})},{values:e("blur")})},brightness:({matchUtilities:r,theme:e})=>{r({brightness:t=>({"--tw-brightness":`brightness(${t})`,"@defaults filter":{},filter:nt})},{values:e("brightness")})},contrast:({matchUtilities:r,theme:e})=>{r({contrast:t=>({"--tw-contrast":`contrast(${t})`,"@defaults filter":{},filter:nt})},{values:e("contrast")})},dropShadow:({matchUtilities:r,theme:e})=>{r({"drop-shadow":t=>({"--tw-drop-shadow":Array.isArray(t)?t.map(i=>`drop-shadow(${i})`).join(" "):`drop-shadow(${t})`,"@defaults filter":{},filter:nt})},{values:e("dropShadow")})},grayscale:({matchUtilities:r,theme:e})=>{r({grayscale:t=>({"--tw-grayscale":`grayscale(${t})`,"@defaults filter":{},filter:nt})},{values:e("grayscale")})},hueRotate:({matchUtilities:r,theme:e})=>{r({"hue-rotate":t=>({"--tw-hue-rotate":`hue-rotate(${t})`,"@defaults filter":{},filter:nt})},{values:e("hueRotate"),supportsNegativeValues:!0})},invert:({matchUtilities:r,theme:e})=>{r({invert:t=>({"--tw-invert":`invert(${t})`,"@defaults filter":{},filter:nt})},{values:e("invert")})},saturate:({matchUtilities:r,theme:e})=>{r({saturate:t=>({"--tw-saturate":`saturate(${t})`,"@defaults filter":{},filter:nt})},{values:e("saturate")})},sepia:({matchUtilities:r,theme:e})=>{r({sepia:t=>({"--tw-sepia":`sepia(${t})`,"@defaults filter":{},filter:nt})},{values:e("sepia")})},filter:({addDefaults:r,addUtilities:e})=>{r("filter",{"--tw-blur":" ","--tw-brightness":" ","--tw-contrast":" ","--tw-grayscale":" ","--tw-hue-rotate":" ","--tw-invert":" ","--tw-saturate":" ","--tw-sepia":" ","--tw-drop-shadow":" "}),e({".filter":{"@defaults filter":{},filter:nt},".filter-none":{filter:"none"}})},backdropBlur:({matchUtilities:r,theme:e})=>{r({"backdrop-blur":t=>({"--tw-backdrop-blur":t.trim()===""?" ":`blur(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropBlur")})},backdropBrightness:({matchUtilities:r,theme:e})=>{r({"backdrop-brightness":t=>({"--tw-backdrop-brightness":`brightness(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropBrightness")})},backdropContrast:({matchUtilities:r,theme:e})=>{r({"backdrop-contrast":t=>({"--tw-backdrop-contrast":`contrast(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropContrast")})},backdropGrayscale:({matchUtilities:r,theme:e})=>{r({"backdrop-grayscale":t=>({"--tw-backdrop-grayscale":`grayscale(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropGrayscale")})},backdropHueRotate:({matchUtilities:r,theme:e})=>{r({"backdrop-hue-rotate":t=>({"--tw-backdrop-hue-rotate":`hue-rotate(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropHueRotate"),supportsNegativeValues:!0})},backdropInvert:({matchUtilities:r,theme:e})=>{r({"backdrop-invert":t=>({"--tw-backdrop-invert":`invert(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropInvert")})},backdropOpacity:({matchUtilities:r,theme:e})=>{r({"backdrop-opacity":t=>({"--tw-backdrop-opacity":`opacity(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropOpacity")})},backdropSaturate:({matchUtilities:r,theme:e})=>{r({"backdrop-saturate":t=>({"--tw-backdrop-saturate":`saturate(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropSaturate")})},backdropSepia:({matchUtilities:r,theme:e})=>{r({"backdrop-sepia":t=>({"--tw-backdrop-sepia":`sepia(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropSepia")})},backdropFilter:({addDefaults:r,addUtilities:e})=>{r("backdrop-filter",{"--tw-backdrop-blur":" ","--tw-backdrop-brightness":" ","--tw-backdrop-contrast":" ","--tw-backdrop-grayscale":" ","--tw-backdrop-hue-rotate":" ","--tw-backdrop-invert":" ","--tw-backdrop-opacity":" ","--tw-backdrop-saturate":" ","--tw-backdrop-sepia":" "}),e({".backdrop-filter":{"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge},".backdrop-filter-none":{"-webkit-backdrop-filter":"none","backdrop-filter":"none"}})},transitionProperty:({matchUtilities:r,theme:e})=>{let t=e("transitionTimingFunction.DEFAULT"),i=e("transitionDuration.DEFAULT");r({transition:n=>({"transition-property":n,...n==="none"?{}:{"transition-timing-function":t,"transition-duration":i}})},{values:e("transitionProperty")})},transitionDelay:L("transitionDelay",[["delay",["transitionDelay"]]]),transitionDuration:L("transitionDuration",[["duration",["transitionDuration"]]],{filterDefault:!0}),transitionTimingFunction:L("transitionTimingFunction",[["ease",["transitionTimingFunction"]]],{filterDefault:!0}),willChange:L("willChange",[["will-change",["will-change"]]]),contain:({addDefaults:r,addUtilities:e})=>{let t="var(--tw-contain-size) var(--tw-contain-layout) var(--tw-contain-paint) var(--tw-contain-style)";r("contain",{"--tw-contain-size":" ","--tw-contain-layout":" ","--tw-contain-paint":" ","--tw-contain-style":" "}),e({".contain-none":{contain:"none"},".contain-content":{contain:"content"},".contain-strict":{contain:"strict"},".contain-size":{"@defaults contain":{},"--tw-contain-size":"size",contain:t},".contain-inline-size":{"@defaults contain":{},"--tw-contain-size":"inline-size",contain:t},".contain-layout":{"@defaults contain":{},"--tw-contain-layout":"layout",contain:t},".contain-paint":{"@defaults contain":{},"--tw-contain-paint":"paint",contain:t},".contain-style":{"@defaults contain":{},"--tw-contain-style":"style",contain:t}})},content:L("content",[["content",["--tw-content",["content","var(--tw-content)"]]]]),forcedColorAdjust:({addUtilities:r})=>{r({".forced-color-adjust-auto":{"forced-color-adjust":"auto"},".forced-color-adjust-none":{"forced-color-adjust":"none"}})}}});function h_(r){if(r===void 0)return!1;if(r==="true"||r==="1")return!0;if(r==="false"||r==="0")return!1;if(r==="*")return!0;let e=r.split(",").map(t=>t.split(":")[0]);return e.includes("-tailwindcss")?!1:!!e.includes("tailwindcss")}var Ze,wh,vh,es,No,gt,Ti,It=P(()=>{u();Ze=typeof m!="undefined"?{NODE_ENV:"production",DEBUG:h_(m.env.DEBUG)}:{NODE_ENV:"production",DEBUG:!1},wh=new Map,vh=new Map,es=new Map,No=new Map,gt=new String("*"),Ti=Symbol("__NONE__")});function cr(r){let e=[],t=!1;for(let i=0;i0)}var xh,kh,m_,Bo=P(()=>{u();xh=new Map([["{","}"],["[","]"],["(",")"]]),kh=new Map(Array.from(xh.entries()).map(([r,e])=>[e,r])),m_=new Set(['"',"'","`"])});function pr(r){let[e]=Sh(r);return e.forEach(([t,i])=>t.removeChild(i)),r.nodes.push(...e.map(([,t])=>t)),r}function Sh(r){let e=[],t=null;for(let i of r.nodes)if(i.type==="combinator")e=e.filter(([,n])=>jo(n).includes("jumpable")),t=null;else if(i.type==="pseudo"){g_(i)?(t=i,e.push([r,i,null])):t&&y_(i,t)?e.push([r,i,t]):t=null;for(let n of i.nodes??[]){let[s,a]=Sh(n);t=a||t,e.push(...s)}}return[e,t]}function Ah(r){return r.value.startsWith("::")||Fo[r.value]!==void 0}function g_(r){return Ah(r)&&jo(r).includes("terminal")}function y_(r,e){return r.type!=="pseudo"||Ah(r)?!1:jo(e).includes("actionable")}function jo(r){return Fo[r.value]??Fo.__default__}var Fo,ts=P(()=>{u();Fo={"::after":["terminal","jumpable"],"::backdrop":["terminal","jumpable"],"::before":["terminal","jumpable"],"::cue":["terminal"],"::cue-region":["terminal"],"::first-letter":["terminal","jumpable"],"::first-line":["terminal","jumpable"],"::grammar-error":["terminal"],"::marker":["terminal","jumpable"],"::part":["terminal","actionable"],"::placeholder":["terminal","jumpable"],"::selection":["terminal","jumpable"],"::slotted":["terminal"],"::spelling-error":["terminal"],"::target-text":["terminal"],"::file-selector-button":["terminal","actionable"],"::deep":["actionable"],"::v-deep":["actionable"],"::ng-deep":["actionable"],":after":["terminal","jumpable"],":before":["terminal","jumpable"],":first-letter":["terminal","jumpable"],":first-line":["terminal","jumpable"],":where":[],":is":[],":has":[],__default__:["terminal","actionable"]}});function dr(r,{context:e,candidate:t}){let i=e?.tailwindConfig.prefix??"",n=r.map(a=>{let o=(0,st.default)().astSync(a.format);return{...a,ast:a.respectPrefix?ur(i,o):o}}),s=st.default.root({nodes:[st.default.selector({nodes:[st.default.className({value:Te(t)})]})]});for(let{ast:a}of n)[s,a]=w_(s,a),a.walkNesting(o=>o.replaceWith(...s.nodes[0].nodes)),s=a;return s}function _h(r){let e=[];for(;r.prev()&&r.prev().type!=="combinator";)r=r.prev();for(;r&&r.type!=="combinator";)e.push(r),r=r.next();return e}function b_(r){return r.sort((e,t)=>e.type==="tag"&&t.type==="class"?-1:e.type==="class"&&t.type==="tag"?1:e.type==="class"&&t.type==="pseudo"&&t.value.startsWith("::")?-1:e.type==="pseudo"&&e.value.startsWith("::")&&t.type==="class"?1:r.index(e)-r.index(t)),r}function Uo(r,e){let t=!1;r.walk(i=>{if(i.type==="class"&&i.value===e)return t=!0,!1}),t||r.remove()}function rs(r,e,{context:t,candidate:i,base:n}){let s=t?.tailwindConfig?.separator??":";n=n??ve(i,s).pop();let a=(0,st.default)().astSync(r);if(a.walkClasses(f=>{f.raws&&f.value.includes(n)&&(f.raws.value=Te((0,Ch.default)(f.raws.value)))}),a.each(f=>Uo(f,n)),a.length===0)return null;let o=Array.isArray(e)?dr(e,{context:t,candidate:i}):e;if(o===null)return a.toString();let l=st.default.comment({value:"/*__simple__*/"}),c=st.default.comment({value:"/*__simple__*/"});return a.walkClasses(f=>{if(f.value!==n)return;let d=f.parent,p=o.nodes[0].nodes;if(d.nodes.length===1){f.replaceWith(...p);return}let h=_h(f);d.insertBefore(h[0],l),d.insertAfter(h[h.length-1],c);for(let v of p)d.insertBefore(h[0],v.clone());f.remove(),h=_h(l);let b=d.index(l);d.nodes.splice(b,h.length,...b_(st.default.selector({nodes:h})).nodes),l.remove(),c.remove()}),a.walkPseudos(f=>{f.value===zo&&f.replaceWith(f.nodes)}),a.each(f=>pr(f)),a.toString()}function w_(r,e){let t=[];return r.walkPseudos(i=>{i.value===zo&&t.push({pseudo:i,value:i.nodes[0].toString()})}),e.walkPseudos(i=>{if(i.value!==zo)return;let n=i.nodes[0].toString(),s=t.find(c=>c.value===n);if(!s)return;let a=[],o=i.next();for(;o&&o.type!=="combinator";)a.push(o),o=o.next();let l=o;s.pseudo.parent.insertAfter(s.pseudo,st.default.selector({nodes:a.map(c=>c.clone())})),i.remove(),a.forEach(c=>c.remove()),l&&l.type==="combinator"&&l.remove()}),[r,e]}var st,Ch,zo,Vo=P(()=>{u();st=pe(it()),Ch=pe(Pn());fr();Gn();ts();zt();zo=":merge"});function is(r,e){let t=(0,Ho.default)().astSync(r);return t.each(i=>{i.nodes.some(s=>s.type==="combinator")&&(i.nodes=[Ho.default.pseudo({value:":is",nodes:[i.clone()]})]),pr(i)}),`${e} ${t.toString()}`}var Ho,Wo=P(()=>{u();Ho=pe(it());ts()});function Go(r){return v_.transformSync(r)}function*x_(r){let e=1/0;for(;e>=0;){let t,i=!1;if(e===1/0&&r.endsWith("]")){let a=r.indexOf("[");r[a-1]==="-"?t=a-1:r[a-1]==="/"?(t=a-1,i=!0):t=-1}else e===1/0&&r.includes("/")?(t=r.lastIndexOf("/"),i=!0):t=r.lastIndexOf("-",e);if(t<0)break;let n=r.slice(0,t),s=r.slice(i?t:t+1);e=t-1,!(n===""||s==="/")&&(yield[n,s])}}function k_(r,e){if(r.length===0||e.tailwindConfig.prefix==="")return r;for(let t of r){let[i]=t;if(i.options.respectPrefix){let n=ee.root({nodes:[t[1].clone()]}),s=t[1].raws.tailwind.classCandidate;n.walkRules(a=>{let o=s.startsWith("-");a.selector=ur(e.tailwindConfig.prefix,a.selector,o)}),t[1]=n.nodes[0]}}return r}function S_(r,e){if(r.length===0)return r;let t=[];function i(n){return n.parent&&n.parent.type==="atrule"&&n.parent.name==="keyframes"}for(let[n,s]of r){let a=ee.root({nodes:[s.clone()]});a.walkRules(o=>{if(i(o))return;let l=(0,ns.default)().astSync(o.selector);l.each(c=>Uo(c,e)),Qf(l,c=>c===e?`!${c}`:c),o.selector=l.toString(),o.walkDecls(c=>c.important=!0)}),t.push([{...n,important:!0},a.nodes[0]])}return t}function A_(r,e,t){if(e.length===0)return e;let i={modifier:null,value:Ti};{let[n,...s]=ve(r,"/");if(s.length>1&&(n=n+"/"+s.slice(0,-1).join("/"),s=s.slice(-1)),s.length&&!t.variantMap.has(r)&&(r=n,i.modifier=s[0],!we(t.tailwindConfig,"generalizedModifiers")))return[]}if(r.endsWith("]")&&!r.startsWith("[")){let n=/(.)(-?)\[(.*)\]/g.exec(r);if(n){let[,s,a,o]=n;if(s==="@"&&a==="-")return[];if(s!=="@"&&a==="")return[];r=r.replace(`${a}[${o}]`,""),i.value=o}}if(Ko(r)&&!t.variantMap.has(r)){let n=t.offsets.recordVariant(r),s=K(r.slice(1,-1)),a=ve(s,",");if(a.length>1)return[];if(!a.every(ls))return[];let o=a.map((l,c)=>[t.offsets.applyParallelOffset(n,c),Ri(l.trim())]);t.variantMap.set(r,o)}if(t.variantMap.has(r)){let n=Ko(r),s=t.variantOptions.get(r)?.[Pt]??{},a=t.variantMap.get(r).slice(),o=[],l=(()=>!(n||s.respectPrefix===!1))();for(let[c,f]of e){if(c.layer==="user")continue;let d=ee.root({nodes:[f.clone()]});for(let[p,h,b]of a){let w=function(){v.raws.neededBackup||(v.raws.neededBackup=!0,v.walkRules(T=>T.raws.originalSelector=T.selector))},k=function(T){return w(),v.each(B=>{B.type==="rule"&&(B.selectors=B.selectors.map(N=>T({get className(){return Go(N)},selector:N})))}),v},v=(b??d).clone(),y=[],S=h({get container(){return w(),v},separator:t.tailwindConfig.separator,modifySelectors:k,wrap(T){let B=v.nodes;v.removeAll(),T.append(B),v.append(T)},format(T){y.push({format:T,respectPrefix:l})},args:i});if(Array.isArray(S)){for(let[T,B]of S.entries())a.push([t.offsets.applyParallelOffset(p,T),B,v.clone()]);continue}if(typeof S=="string"&&y.push({format:S,respectPrefix:l}),S===null)continue;v.raws.neededBackup&&(delete v.raws.neededBackup,v.walkRules(T=>{let B=T.raws.originalSelector;if(!B||(delete T.raws.originalSelector,B===T.selector))return;let N=T.selector,R=(0,ns.default)(F=>{F.walkClasses(Y=>{Y.value=`${r}${t.tailwindConfig.separator}${Y.value}`})}).processSync(B);y.push({format:N.replace(R,"&"),respectPrefix:l}),T.selector=B})),v.nodes[0].raws.tailwind={...v.nodes[0].raws.tailwind,parentLayer:c.layer};let E=[{...c,sort:t.offsets.applyVariantOffset(c.sort,p,Object.assign(i,t.variantOptions.get(r))),collectedFormats:(c.collectedFormats??[]).concat(y)},v.nodes[0]];o.push(E)}}return o}return[]}function Qo(r,e,t={}){return!ke(r)&&!Array.isArray(r)?[[r],t]:Array.isArray(r)?Qo(r[0],e,r[1]):(e.has(r)||e.set(r,lr(r)),[e.get(r),t])}function __(r){return C_.test(r)}function E_(r){if(!r.includes("://"))return!1;try{let e=new URL(r);return e.scheme!==""&&e.host!==""}catch(e){return!1}}function Eh(r){let e=!0;return r.walkDecls(t=>{if(!Oh(t.prop,t.value))return e=!1,!1}),e}function Oh(r,e){if(E_(`${r}:${e}`))return!1;try{return ee.parse(`a{${r}:${e}}`).toResult(),!0}catch(t){return!1}}function O_(r,e){let[,t,i]=r.match(/^\[([a-zA-Z0-9-_]+):(\S+)\]$/)??[];if(i===void 0||!__(t)||!cr(i))return null;let n=K(i,{property:t});return Oh(t,n)?[[{sort:e.offsets.arbitraryProperty(r),layer:"utilities",options:{respectImportant:!0}},()=>({[$o(r)]:{[t]:n}})]]:null}function*T_(r,e){e.candidateRuleMap.has(r)&&(yield[e.candidateRuleMap.get(r),"DEFAULT"]),yield*function*(o){o!==null&&(yield[o,"DEFAULT"])}(O_(r,e));let t=r,i=!1,n=e.tailwindConfig.prefix,s=n.length,a=t.startsWith(n)||t.startsWith(`-${n}`);t[s]==="-"&&a&&(i=!0,t=n+t.slice(s+1)),i&&e.candidateRuleMap.has(t)&&(yield[e.candidateRuleMap.get(t),"-DEFAULT"]);for(let[o,l]of x_(t))e.candidateRuleMap.has(o)&&(yield[e.candidateRuleMap.get(o),i?`-${l}`:l])}function R_(r,e){return r===gt?[gt]:ve(r,e)}function*P_(r,e){for(let t of r)t[1].raws.tailwind={...t[1].raws.tailwind,classCandidate:e,preserveSource:t[0].options?.preserveSource??!1},yield t}function*Yo(r,e){let t=e.tailwindConfig.separator,[i,...n]=R_(r,t).reverse(),s=!1;i.startsWith("!")&&(s=!0,i=i.slice(1));for(let a of T_(i,e)){let o=[],l=new Map,[c,f]=a,d=c.length===1;for(let[p,h]of c){let b=[];if(typeof h=="function")for(let v of[].concat(h(f,{isOnlyPlugin:d}))){let[y,w]=Qo(v,e.postCssNodeCache);for(let k of y)b.push([{...p,options:{...p.options,...w}},k])}else if(f==="DEFAULT"||f==="-DEFAULT"){let v=h,[y,w]=Qo(v,e.postCssNodeCache);for(let k of y)b.push([{...p,options:{...p.options,...w}},k])}if(b.length>0){let v=Array.from(ta(p.options?.types??[],f,p.options??{},e.tailwindConfig)).map(([y,w])=>w);v.length>0&&l.set(b,v),o.push(b)}}if(Ko(f)){if(o.length>1){let b=function(y){return y.length===1?y[0]:y.find(w=>{let k=l.get(w);return w.some(([{options:S},E])=>Eh(E)?S.types.some(({type:T,preferOnConflict:B})=>k.includes(T)&&B):!1)})},[p,h]=o.reduce((y,w)=>(w.some(([{options:S}])=>S.types.some(({type:E})=>E==="any"))?y[0].push(w):y[1].push(w),y),[[],[]]),v=b(h)??b(p);if(v)o=[v];else{let y=o.map(k=>new Set([...l.get(k)??[]]));for(let k of y)for(let S of k){let E=!1;for(let T of y)k!==T&&T.has(S)&&(T.delete(S),E=!0);E&&k.delete(S)}let w=[];for(let[k,S]of y.entries())for(let E of S){let T=o[k].map(([,B])=>B).flat().map(B=>B.toString().split(` +`).slice(1,-1).map(N=>N.trim()).map(N=>` ${N}`).join(` +`)).join(` + +`);w.push(` Use \`${r.replace("[",`[${E}:`)}\` for \`${T.trim()}\``);break}G.warn([`The class \`${r}\` is ambiguous and matches multiple utilities.`,...w,`If this is content and not a class, replace it with \`${r.replace("[","[").replace("]","]")}\` to silence this warning.`]);continue}}o=o.map(p=>p.filter(h=>Eh(h[1])))}o=o.flat(),o=Array.from(P_(o,i)),o=k_(o,e),s&&(o=S_(o,i));for(let p of n)o=A_(p,o,e);for(let p of o)p[1].raws.tailwind={...p[1].raws.tailwind,candidate:r},p=I_(p,{context:e,candidate:r}),p!==null&&(yield p)}}function I_(r,{context:e,candidate:t}){if(!r[0].collectedFormats)return r;let i=!0,n;try{n=dr(r[0].collectedFormats,{context:e,candidate:t})}catch{return null}let s=ee.root({nodes:[r[1].clone()]});return s.walkRules(a=>{if(!ss(a))try{let o=rs(a.selector,n,{candidate:t,context:e});if(o===null){a.remove();return}a.selector=o}catch{return i=!1,!1}}),!i||s.nodes.length===0?null:(r[1]=s.nodes[0],r)}function ss(r){return r.parent&&r.parent.type==="atrule"&&r.parent.name==="keyframes"}function D_(r){if(r===!0)return e=>{ss(e)||e.walkDecls(t=>{t.parent.type==="rule"&&!ss(t.parent)&&(t.important=!0)})};if(typeof r=="string")return e=>{ss(e)||(e.selectors=e.selectors.map(t=>is(t,r)))}}function as(r,e,t=!1){let i=[],n=D_(e.tailwindConfig.important);for(let s of r){if(e.notClassCache.has(s))continue;if(e.candidateRuleCache.has(s)){i=i.concat(Array.from(e.candidateRuleCache.get(s)));continue}let a=Array.from(Yo(s,e));if(a.length===0){e.notClassCache.add(s);continue}e.classCache.set(s,a);let o=e.candidateRuleCache.get(s)??new Set;e.candidateRuleCache.set(s,o);for(let l of a){let[{sort:c,options:f},d]=l;if(f.respectImportant&&n){let h=ee.root({nodes:[d.clone()]});h.walkRules(n),d=h.nodes[0]}let p=[c,t?d.clone():d];o.add(p),e.ruleCache.add(p),i.push(p)}}return i}function Ko(r){return r.startsWith("[")&&r.endsWith("]")}var ns,v_,C_,os=P(()=>{u();Ot();ns=pe(it());qo();Kt();Gn();Fr();Be();It();Vo();Lo();Br();Oi();Bo();zt();ct();Wo();v_=(0,ns.default)(r=>r.first.filter(({type:e})=>e==="class").pop().value);C_=/^[a-z_-]/});var Th,Rh=P(()=>{u();Th={}});function q_(r){try{return Th.createHash("md5").update(r,"utf-8").digest("binary")}catch(e){return""}}function Ph(r,e){let t=e.toString();if(!t.includes("@tailwind"))return!1;let i=No.get(r),n=q_(t),s=i!==n;return No.set(r,n),s}var Ih=P(()=>{u();Rh();It()});function us(r){return(r>0n)-(r<0n)}var Dh=P(()=>{u()});function qh(r,e){let t=0n,i=0n;for(let[n,s]of e)r&n&&(t=t|n,i=i|s);return r&~t|i}var $h=P(()=>{u()});function Lh(r){let e=null;for(let t of r)e=e??t,e=e>t?e:t;return e}function $_(r,e){let t=r.length,i=e.length,n=t{u();Dh();$h();Xo=class{constructor(){this.offsets={defaults:0n,base:0n,components:0n,utilities:0n,variants:0n,user:0n},this.layerPositions={defaults:0n,base:1n,components:2n,utilities:3n,user:4n,variants:5n},this.reservedVariantBits=0n,this.variantOffsets=new Map}create(e){return{layer:e,parentLayer:e,arbitrary:0n,variants:0n,parallelIndex:0n,index:this.offsets[e]++,propertyOffset:0n,property:"",options:[]}}arbitraryProperty(e){return{...this.create("utilities"),arbitrary:1n,property:e}}forVariant(e,t=0){let i=this.variantOffsets.get(e);if(i===void 0)throw new Error(`Cannot find offset for unknown variant ${e}`);return{...this.create("variants"),variants:i<n.startsWith("[")).sort(([n],[s])=>$_(n,s)),t=e.map(([,n])=>n).sort((n,s)=>us(n-s));return e.map(([,n],s)=>[n,t[s]]).filter(([n,s])=>n!==s)}remapArbitraryVariantOffsets(e){let t=this.recalculateVariantOffsets();return t.length===0?e:e.map(i=>{let[n,s]=i;return n={...n,variants:qh(n.variants,t)},[n,s]})}sortArbitraryProperties(e){let t=new Set;for(let[a]of e)a.arbitrary===1n&&t.add(a.property);if(t.size===0)return e;let i=Array.from(t).sort(),n=new Map,s=1n;for(let a of i)n.set(a,s++);return e.map(a=>{let[o,l]=a;return o={...o,propertyOffset:n.get(o.property)??0n},[o,l]})}sort(e){return e=this.remapArbitraryVariantOffsets(e),e=this.sortArbitraryProperties(e),e.sort(([t],[i])=>us(this.compare(t,i)))}}});function tl(r,e){let t=r.tailwindConfig.prefix;return typeof t=="function"?t(e):t+e}function Bh({type:r="any",...e}){let t=[].concat(r);return{...e,types:t.map(i=>Array.isArray(i)?{type:i[0],...i[1]}:{type:i,preferOnConflict:!1})}}function L_(r){let e=[],t="",i=0;for(let n=0;n0&&e.push(t.trim()),e=e.filter(n=>n!==""),e}function M_(r,e,{before:t=[]}={}){if(t=[].concat(t),t.length<=0){r.push(e);return}let i=r.length-1;for(let n of t){let s=r.indexOf(n);s!==-1&&(i=Math.min(i,s))}r.splice(i,0,e)}function Fh(r){return Array.isArray(r)?r.flatMap(e=>!Array.isArray(e)&&!ke(e)?e:lr(e)):Fh([r])}function N_(r,e){return(0,Zo.default)(i=>{let n=[];return e&&e(i),i.walkClasses(s=>{n.push(s.value)}),n}).transformSync(r)}function B_(r){r.walkPseudos(e=>{e.value===":not"&&e.remove()})}function F_(r,e={containsNonOnDemandable:!1},t=0){let i=[],n=[];r.type==="rule"?n.push(...r.selectors):r.type==="atrule"&&r.walkRules(s=>n.push(...s.selectors));for(let s of n){let a=N_(s,B_);a.length===0&&(e.containsNonOnDemandable=!0);for(let o of a)i.push(o)}return t===0?[e.containsNonOnDemandable||i.length===0,i]:i}function fs(r){return Fh(r).flatMap(e=>{let t=new Map,[i,n]=F_(e);return i&&n.unshift(gt),n.map(s=>(t.has(e)||t.set(e,e),[s,t.get(e)]))})}function ls(r){return r.startsWith("@")||r.includes("&")}function Ri(r){r=r.replace(/\n+/g,"").replace(/\s{1,}/g," ").trim();let e=L_(r).map(t=>{if(!t.startsWith("@"))return({format:s})=>s(t);let[,i,n]=/@(\S*)( .+|[({].*)?/g.exec(t);return({wrap:s})=>s(ee.atRule({name:i,params:n?.trim()??""}))}).reverse();return t=>{for(let i of e)i(t)}}function j_(r,e,{variantList:t,variantMap:i,offsets:n,classList:s}){function a(p,h){return p?(0,Nh.default)(r,p,h):r}function o(p){return ur(r.prefix,p)}function l(p,h){return p===gt?gt:h.respectPrefix?e.tailwindConfig.prefix+p:p}function c(p,h,b={}){let v=kt(p),y=a(["theme",...v],h);return mt(v[0])(y,b)}let f=0,d={postcss:ee,prefix:o,e:Te,config:a,theme:c,corePlugins:p=>Array.isArray(r.corePlugins)?r.corePlugins.includes(p):a(["corePlugins",p],!0),variants:()=>[],addBase(p){for(let[h,b]of fs(p)){let v=l(h,{}),y=n.create("base");e.candidateRuleMap.has(v)||e.candidateRuleMap.set(v,[]),e.candidateRuleMap.get(v).push([{sort:y,layer:"base"},b])}},addDefaults(p,h){let b={[`@defaults ${p}`]:h};for(let[v,y]of fs(b)){let w=l(v,{});e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("defaults"),layer:"defaults"},y])}},addComponents(p,h){h=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!1},Array.isArray(h)?{}:h);for(let[v,y]of fs(p)){let w=l(v,h);s.add(w),e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("components"),layer:"components",options:h},y])}},addUtilities(p,h){h=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!0},Array.isArray(h)?{}:h);for(let[v,y]of fs(p)){let w=l(v,h);s.add(w),e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("utilities"),layer:"utilities",options:h},y])}},matchUtilities:function(p,h){h=Bh({...{respectPrefix:!0,respectImportant:!0,modifiers:!1},...h});let v=n.create("utilities");for(let y in p){let S=function(T,{isOnlyPlugin:B}){let[N,R,F]=ea(h.types,T,h,r);if(N===void 0)return[];if(!h.types.some(({type:U})=>U===R))if(B)G.warn([`Unnecessary typehint \`${R}\` in \`${y}-${T}\`.`,`You can safely update it to \`${y}-${T.replace(R+":","")}\`.`]);else return[];if(!cr(N))return[];let Y={get modifier(){return h.modifiers||G.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),F}},_=we(r,"generalizedModifiers");return[].concat(_?k(N,Y):k(N)).filter(Boolean).map(U=>({[Qn(y,T)]:U}))},w=l(y,h),k=p[y];s.add([w,h]);let E=[{sort:v,layer:"utilities",options:h},S];e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push(E)}},matchComponents:function(p,h){h=Bh({...{respectPrefix:!0,respectImportant:!1,modifiers:!1},...h});let v=n.create("components");for(let y in p){let S=function(T,{isOnlyPlugin:B}){let[N,R,F]=ea(h.types,T,h,r);if(N===void 0)return[];if(!h.types.some(({type:U})=>U===R))if(B)G.warn([`Unnecessary typehint \`${R}\` in \`${y}-${T}\`.`,`You can safely update it to \`${y}-${T.replace(R+":","")}\`.`]);else return[];if(!cr(N))return[];let Y={get modifier(){return h.modifiers||G.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),F}},_=we(r,"generalizedModifiers");return[].concat(_?k(N,Y):k(N)).filter(Boolean).map(U=>({[Qn(y,T)]:U}))},w=l(y,h),k=p[y];s.add([w,h]);let E=[{sort:v,layer:"components",options:h},S];e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push(E)}},addVariant(p,h,b={}){h=[].concat(h).map(v=>{if(typeof v!="string")return(y={})=>{let{args:w,modifySelectors:k,container:S,separator:E,wrap:T,format:B}=y,N=v(Object.assign({modifySelectors:k,container:S,separator:E},b.type===Jo.MatchVariant&&{args:w,wrap:T,format:B}));if(typeof N=="string"&&!ls(N))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return Array.isArray(N)?N.filter(R=>typeof R=="string").map(R=>Ri(R)):N&&typeof N=="string"&&Ri(N)(y)};if(!ls(v))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return Ri(v)}),M_(t,p,b),i.set(p,h),e.variantOptions.set(p,b)},matchVariant(p,h,b){let v=b?.id??++f,y=p==="@",w=we(r,"generalizedModifiers");for(let[S,E]of Object.entries(b?.values??{}))S!=="DEFAULT"&&d.addVariant(y?`${p}${S}`:`${p}-${S}`,({args:T,container:B})=>h(E,w?{modifier:T?.modifier,container:B}:{container:B}),{...b,value:E,id:v,type:Jo.MatchVariant,variantInfo:el.Base});let k="DEFAULT"in(b?.values??{});d.addVariant(p,({args:S,container:E})=>S?.value===Ti&&!k?null:h(S?.value===Ti?b.values.DEFAULT:S?.value??(typeof S=="string"?S:""),w?{modifier:S?.modifier,container:E}:{container:E}),{...b,id:v,type:Jo.MatchVariant,variantInfo:el.Dynamic})}};return d}function cs(r){return rl.has(r)||rl.set(r,new Map),rl.get(r)}function jh(r,e){let t=!1,i=new Map;for(let n of r){if(!n)continue;let s=oa.parse(n),a=s.hash?s.href.replace(s.hash,""):s.href;a=s.search?a.replace(s.search,""):a;let o=be.statSync(decodeURIComponent(a),{throwIfNoEntry:!1})?.mtimeMs;!o||((!e.has(n)||o>e.get(n))&&(t=!0),i.set(n,o))}return[t,i]}function zh(r){r.walkAtRules(e=>{["responsive","variants"].includes(e.name)&&(zh(e),e.before(e.nodes),e.remove())})}function z_(r){let e=[];return r.each(t=>{t.type==="atrule"&&["responsive","variants"].includes(t.name)&&(t.name="layer",t.params="utilities")}),r.walkAtRules("layer",t=>{if(zh(t),t.params==="base"){for(let i of t.nodes)e.push(function({addBase:n}){n(i,{respectPrefix:!1})});t.remove()}else if(t.params==="components"){for(let i of t.nodes)e.push(function({addComponents:n}){n(i,{respectPrefix:!1,preserveSource:!0})});t.remove()}else if(t.params==="utilities"){for(let i of t.nodes)e.push(function({addUtilities:n}){n(i,{respectPrefix:!1,preserveSource:!0})});t.remove()}}),e}function U_(r,e){let t=Object.entries({...se,...yh}).map(([l,c])=>r.tailwindConfig.corePlugins.includes(l)?c:null).filter(Boolean),i=r.tailwindConfig.plugins.map(l=>(l.__isOptionsFunction&&(l=l()),typeof l=="function"?l:l.handler)),n=z_(e),s=[se.childVariant,se.pseudoElementVariants,se.pseudoClassVariants,se.hasVariants,se.ariaVariants,se.dataVariants],a=[se.supportsVariants,se.reducedMotionVariants,se.prefersContrastVariants,se.screenVariants,se.orientationVariants,se.directionVariants,se.darkVariants,se.forcedColorsVariants,se.printVariant];return(r.tailwindConfig.darkMode==="class"||Array.isArray(r.tailwindConfig.darkMode)&&r.tailwindConfig.darkMode[0]==="class")&&(a=[se.supportsVariants,se.reducedMotionVariants,se.prefersContrastVariants,se.darkVariants,se.screenVariants,se.orientationVariants,se.directionVariants,se.forcedColorsVariants,se.printVariant]),[...t,...s,...i,...a,...n]}function V_(r,e){let t=[],i=new Map;e.variantMap=i;let n=new Xo;e.offsets=n;let s=new Set,a=j_(e.tailwindConfig,e,{variantList:t,variantMap:i,offsets:n,classList:s});for(let f of r)if(Array.isArray(f))for(let d of f)d(a);else f?.(a);n.recordVariants(t,f=>i.get(f).length);for(let[f,d]of i.entries())e.variantMap.set(f,d.map((p,h)=>[n.forVariant(f,h),p]));let o=(e.tailwindConfig.safelist??[]).filter(Boolean);if(o.length>0){let f=[];for(let d of o){if(typeof d=="string"){e.changedContent.push({content:d,extension:"html"});continue}if(d instanceof RegExp){G.warn("root-regex",["Regular expressions in `safelist` work differently in Tailwind CSS v3.0.","Update your `safelist` configuration to eliminate this warning.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"]);continue}f.push(d)}if(f.length>0){let d=new Map,p=e.tailwindConfig.prefix.length,h=f.some(b=>b.pattern.source.includes("!"));for(let b of s){let v=Array.isArray(b)?(()=>{let[y,w]=b,S=Object.keys(w?.values??{}).map(E=>Ei(y,E));return w?.supportsNegativeValues&&(S=[...S,...S.map(E=>"-"+E)],S=[...S,...S.map(E=>E.slice(0,p)+"-"+E.slice(p))]),w.types.some(({type:E})=>E==="color")&&(S=[...S,...S.flatMap(E=>Object.keys(e.tailwindConfig.theme.opacity).map(T=>`${E}/${T}`))]),h&&w?.respectImportant&&(S=[...S,...S.map(E=>"!"+E)]),S})():[b];for(let y of v)for(let{pattern:w,variants:k=[]}of f)if(w.lastIndex=0,d.has(w)||d.set(w,0),!!w.test(y)){d.set(w,d.get(w)+1),e.changedContent.push({content:y,extension:"html"});for(let S of k)e.changedContent.push({content:S+e.tailwindConfig.separator+y,extension:"html"})}}for(let[b,v]of d.entries())v===0&&G.warn([`The safelist pattern \`${b}\` doesn't match any Tailwind CSS classes.`,"Fix this pattern or remove it from your `safelist` configuration.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"])}}let l=[].concat(e.tailwindConfig.darkMode??"media")[1]??"dark",c=[tl(e,l),tl(e,"group"),tl(e,"peer")];e.getClassOrder=function(d){let p=[...d].sort((y,w)=>y===w?0:y[y,null])),b=as(new Set(p),e,!0);b=e.offsets.sort(b);let v=BigInt(c.length);for(let[,y]of b){let w=y.raws.tailwind.candidate;h.set(w,h.get(w)??v++)}return d.map(y=>{let w=h.get(y)??null,k=c.indexOf(y);return w===null&&k!==-1&&(w=BigInt(k)),[y,w]})},e.getClassList=function(d={}){let p=[];for(let h of s)if(Array.isArray(h)){let[b,v]=h,y=[],w=Object.keys(v?.modifiers??{});v?.types?.some(({type:E})=>E==="color")&&w.push(...Object.keys(e.tailwindConfig.theme.opacity??{}));let k={modifiers:w},S=d.includeMetadata&&w.length>0;for(let[E,T]of Object.entries(v?.values??{})){if(T==null)continue;let B=Ei(b,E);if(p.push(S?[B,k]:B),v?.supportsNegativeValues&&xt(T)){let N=Ei(b,`-${E}`);y.push(S?[N,k]:N)}}p.push(...y)}else p.push(h);return p},e.getVariants=function(){let d=Math.random().toString(36).substring(7).toUpperCase(),p=[];for(let[h,b]of e.variantOptions.entries())b.variantInfo!==el.Base&&p.push({name:h,isArbitrary:b.type===Symbol.for("MATCH_VARIANT"),values:Object.keys(b.values??{}),hasDash:h!=="@",selectors({modifier:v,value:y}={}){let w=`TAILWINDPLACEHOLDER${d}`,k=ee.rule({selector:`.${w}`}),S=ee.root({nodes:[k.clone()]}),E=S.toString(),T=(e.variantMap.get(h)??[]).flatMap(([le,A])=>A),B=[];for(let le of T){let A=[],C={args:{modifier:v,value:b.values?.[y]??y},separator:e.tailwindConfig.separator,modifySelectors(V){return S.each(Ee=>{Ee.type==="rule"&&(Ee.selectors=Ee.selectors.map(Ie=>V({get className(){return Go(Ie)},selector:Ie})))}),S},format(V){A.push(V)},wrap(V){A.push(`@${V.name} ${V.params} { & }`)},container:S},he=le(C);if(A.length>0&&B.push(A),Array.isArray(he))for(let V of he)A=[],V(C),B.push(A)}let N=[],R=S.toString();E!==R&&(S.walkRules(le=>{let A=le.selector,C=(0,Zo.default)(he=>{he.walkClasses(V=>{V.value=`${h}${e.tailwindConfig.separator}${V.value}`})}).processSync(A);N.push(A.replace(C,"&").replace(w,"&"))}),S.walkAtRules(le=>{N.push(`@${le.name} (${le.params}) { & }`)}));let F=!(y in(b.values??{})),Y=b[Pt]??{},_=(()=>!(F||Y.respectPrefix===!1))();B=B.map(le=>le.map(A=>({format:A,respectPrefix:_}))),N=N.map(le=>({format:le,respectPrefix:_}));let Q={candidate:w,context:e},U=B.map(le=>rs(`.${w}`,dr(le,Q),Q).replace(`.${w}`,"&").replace("{ & }","").trim());return N.length>0&&U.push(dr(N,Q).toString().replace(`.${w}`,"&")),U}});return p}}function Uh(r,e){!r.classCache.has(e)||(r.notClassCache.add(e),r.classCache.delete(e),r.applyClassCache.delete(e),r.candidateRuleMap.delete(e),r.candidateRuleCache.delete(e),r.stylesheetCache=null)}function H_(r,e){let t=e.raws.tailwind.candidate;if(!!t){for(let i of r.ruleCache)i[1].raws.tailwind.candidate===t&&r.ruleCache.delete(i);Uh(r,t)}}function il(r,e=[],t=ee.root()){let i={disposables:[],ruleCache:new Set,candidateRuleCache:new Map,classCache:new Map,applyClassCache:new Map,notClassCache:new Set(r.blocklist??[]),postCssNodeCache:new Map,candidateRuleMap:new Map,tailwindConfig:r,changedContent:e,variantMap:new Map,stylesheetCache:null,variantOptions:new Map,markInvalidUtilityCandidate:s=>Uh(i,s),markInvalidUtilityNode:s=>H_(i,s)},n=U_(i,t);return V_(n,i),i}function Vh(r,e,t,i,n,s){let a=e.opts.from,o=i!==null;Ze.DEBUG&&console.log("Source path:",a);let l;if(o&&hr.has(a))l=hr.get(a);else if(Pi.has(n)){let p=Pi.get(n);Dt.get(p).add(a),hr.set(a,p),l=p}let c=Ph(a,r);if(l){let[p,h]=jh([...s],cs(l));if(!p&&!c)return[l,!1,h]}if(hr.has(a)){let p=hr.get(a);if(Dt.has(p)&&(Dt.get(p).delete(a),Dt.get(p).size===0)){Dt.delete(p);for(let[h,b]of Pi)b===p&&Pi.delete(h);for(let h of p.disposables.splice(0))h(p)}}Ze.DEBUG&&console.log("Setting up new context...");let f=il(t,[],r);Object.assign(f,{userConfigPath:i});let[,d]=jh([...s],cs(f));return Pi.set(n,f),hr.set(a,f),Dt.has(f)||Dt.set(f,new Set),Dt.get(f).add(a),[f,!0,d]}var Nh,Zo,Pt,Jo,el,rl,hr,Pi,Dt,Oi=P(()=>{u();ft();la();Ot();Nh=pe(Ra()),Zo=pe(it());Ci();qo();Gn();Kt();fr();Lo();Fr();bh();It();It();Yi();Be();Gi();Bo();os();Ih();Mh();ct();Vo();Pt=Symbol(),Jo={AddVariant:Symbol.for("ADD_VARIANT"),MatchVariant:Symbol.for("MATCH_VARIANT")},el={Base:1<<0,Dynamic:1<<1};rl=new WeakMap;hr=wh,Pi=vh,Dt=es});function nl(r){return r.ignore?[]:r.glob?m.env.ROLLUP_WATCH==="true"?[{type:"dependency",file:r.base}]:[{type:"dir-dependency",dir:r.base,glob:r.glob}]:[{type:"dependency",file:r.base}]}var Hh=P(()=>{u()});function Wh(r,e){return{handler:r,config:e}}var Gh,Qh=P(()=>{u();Wh.withOptions=function(r,e=()=>({})){let t=function(i){return{__options:i,handler:r(i),config:e(i)}};return t.__isOptionsFunction=!0,t.__pluginFunction=r,t.__configFunction=e,t};Gh=Wh});var sl={};Ge(sl,{default:()=>W_});var W_,al=P(()=>{u();Qh();W_=Gh});var Kh=x((z4,Yh)=>{u();var G_=(al(),sl).default,Q_={overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical"},Y_=G_(function({matchUtilities:r,addUtilities:e,theme:t,variants:i}){let n=t("lineClamp");r({"line-clamp":s=>({...Q_,"-webkit-line-clamp":`${s}`})},{values:n}),e([{".line-clamp-none":{"-webkit-line-clamp":"unset"}}],i("lineClamp"))},{theme:{lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"}},variants:{lineClamp:["responsive"]}});Yh.exports=Y_});function ol(r){r.content.files.length===0&&G.warn("content-problems",["The `content` option in your Tailwind CSS configuration is missing or empty.","Configure your content sources or your generated CSS will be missing styles.","https://tailwindcss.com/docs/content-configuration"]);try{let e=Kh();r.plugins.includes(e)&&(G.warn("line-clamp-in-core",["As of Tailwind CSS v3.3, the `@tailwindcss/line-clamp` plugin is now included by default.","Remove it from the `plugins` array in your configuration to eliminate this warning."]),r.plugins=r.plugins.filter(t=>t!==e))}catch{}return r}var Xh=P(()=>{u();Be()});var Zh,Jh=P(()=>{u();Zh=()=>!1});var ps,em=P(()=>{u();ps={sync:r=>[].concat(r),generateTasks:r=>[{dynamic:!1,base:".",negative:[],positive:[].concat(r),patterns:[].concat(r)}],escapePath:r=>r}});var ll,tm=P(()=>{u();ll=r=>r});var rm,im=P(()=>{u();rm=()=>""});function nm(r){let e=r,t=rm(r);return t!=="."&&(e=r.substr(t.length),e.charAt(0)==="/"&&(e=e.substr(1))),e.substr(0,2)==="./"?e=e.substr(2):e.charAt(0)==="/"&&(e=e.substr(1)),{base:t,glob:e}}var sm=P(()=>{u();im()});var ds=x(Ve=>{u();"use strict";Ve.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;Ve.find=(r,e)=>r.nodes.find(t=>t.type===e);Ve.exceedsLimit=(r,e,t=1,i)=>i===!1||!Ve.isInteger(r)||!Ve.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;Ve.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};Ve.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0==0?(r.invalid=!0,!0):!1;Ve.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0==0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;Ve.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;Ve.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);Ve.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n{u();"use strict";var am=ds();om.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&am.isInvalidBrace(n),a=i.invalid===!0&&e.escapeInvalid===!0,o="";if(i.value)return(s||a)&&am.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)o+=t(l);return o};return t(r)}});var um=x((J4,lm)=>{u();"use strict";lm.exports=function(r){return typeof r=="number"?r-r==0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var bm=x((e6,ym)=>{u();"use strict";var fm=um(),Wt=(r,e,t)=>{if(fm(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(fm(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),a=String(i.capture),o=String(i.wrap),l=r+":"+e+"="+n+s+a+o;if(Wt.cache.hasOwnProperty(l))return Wt.cache[l].result;let c=Math.min(r,e),f=Math.max(r,e);if(Math.abs(c-f)===1){let v=r+"|"+e;return i.capture?`(${v})`:i.wrap===!1?v:`(?:${v})`}let d=gm(r)||gm(e),p={min:r,max:e,a:c,b:f},h=[],b=[];if(d&&(p.isPadded=d,p.maxLen=String(p.max).length),c<0){let v=f<0?Math.abs(f):1;b=cm(v,Math.abs(c),p,i),c=p.a=0}return f>=0&&(h=cm(c,f,p,i)),p.negatives=b,p.positives=h,p.result=K_(b,h,i),i.capture===!0?p.result=`(${p.result})`:i.wrap!==!1&&h.length+b.length>1&&(p.result=`(?:${p.result})`),Wt.cache[l]=p,p.result};function K_(r,e,t){let i=ul(r,e,"-",!1,t)||[],n=ul(e,r,"",!1,t)||[],s=ul(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function X_(r,e){let t=1,i=1,n=dm(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=dm(r,t);for(n=hm(e+1,i)-1;r1&&o.count.pop(),o.count.push(f.count[0]),o.string=o.pattern+mm(o.count),a=c+1;continue}t.isPadded&&(d=rE(c,t,i)),f.string=d+f.pattern+mm(f.count),s.push(f),a=c+1,o=f}return s}function ul(r,e,t,i,n){let s=[];for(let a of r){let{string:o}=a;!i&&!pm(e,"string",o)&&s.push(t+o),i&&pm(e,"string",o)&&s.push(t+o)}return s}function J_(r,e){let t=[];for(let i=0;ie?1:e>r?-1:0}function pm(r,e,t){return r.some(i=>i[e]===t)}function dm(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function hm(r,e){return r-r%Math.pow(10,e)}function mm(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tE(r,e,t){return`[${r}${e-r==1?"":"-"}${e}]`}function gm(r){return/^-?(0+)\d/.test(r)}function rE(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}Wt.cache={};Wt.clearCache=()=>Wt.cache={};ym.exports=Wt});var pl=x((t6,Cm)=>{u();"use strict";var iE=(Fn(),Bn),wm=bm(),vm=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nE=r=>e=>r===!0?Number(e):String(e),fl=r=>typeof r=="number"||typeof r=="string"&&r!=="",Ii=r=>Number.isInteger(+r),cl=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sE=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,aE=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},ms=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length{r.negatives.sort((o,l)=>ol?1:0),r.positives.sort((o,l)=>ol?1:0);let i=e.capture?"":"?:",n="",s="",a;return r.positives.length&&(n=r.positives.map(o=>ms(String(o),t)).join("|")),r.negatives.length&&(s=`-(${i}${r.negatives.map(o=>ms(String(o),t)).join("|")})`),n&&s?a=`${n}|${s}`:a=n||s,e.wrap?`(${i}${a})`:a},xm=(r,e,t,i)=>{if(t)return wm(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},km=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return wm(r,e,t)},Sm=(...r)=>new RangeError("Invalid range arguments: "+iE.inspect(...r)),Am=(r,e,t)=>{if(t.strictRanges===!0)throw Sm([r,e]);return[]},lE=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},uE=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw Sm([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let a=n>s,o=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let f=cl(o)||cl(l)||cl(c),d=f?Math.max(o.length,l.length,c.length):0,p=f===!1&&sE(r,e,i)===!1,h=i.transform||nE(p);if(i.toRegex&&t===1)return xm(ms(r,d),ms(e,d),!0,i);let b={negatives:[],positives:[]},v=k=>b[k<0?"negatives":"positives"].push(Math.abs(k)),y=[],w=0;for(;a?n>=s:n<=s;)i.toRegex===!0&&t>1?v(n):y.push(aE(h(n,w),d,p)),n=a?n-t:n+t,w++;return i.toRegex===!0?t>1?oE(b,i,d):km(y,null,{wrap:!1,...i}):y},fE=(r,e,t=1,i={})=>{if(!Ii(r)&&r.length>1||!Ii(e)&&e.length>1)return Am(r,e,i);let n=i.transform||(p=>String.fromCharCode(p)),s=`${r}`.charCodeAt(0),a=`${e}`.charCodeAt(0),o=s>a,l=Math.min(s,a),c=Math.max(s,a);if(i.toRegex&&t===1)return xm(l,c,!1,i);let f=[],d=0;for(;o?s>=a:s<=a;)f.push(n(s,d)),s=o?s-t:s+t,d++;return i.toRegex===!0?km(f,null,{wrap:!1,options:i}):f},gs=(r,e,t,i={})=>{if(e==null&&fl(r))return[r];if(!fl(r)||!fl(e))return Am(r,e,i);if(typeof t=="function")return gs(r,e,1,{transform:t});if(vm(t))return gs(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,Ii(t)?Ii(r)&&Ii(e)?uE(r,e,t,n):fE(r,e,Math.max(Math.abs(t),1),n):t!=null&&!vm(t)?lE(t,n):gs(r,e,1,t)};Cm.exports=gs});var Om=x((r6,Em)=>{u();"use strict";var cE=pl(),_m=ds(),pE=(r,e={})=>{let t=(i,n={})=>{let s=_m.isInvalidBrace(n),a=i.invalid===!0&&e.escapeInvalid===!0,o=s===!0||a===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0)return l+i.value;if(i.isClose===!0)return console.log("node.isClose",l,i.value),l+i.value;if(i.type==="open")return o?l+i.value:"(";if(i.type==="close")return o?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":o?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let f=_m.reduce(i.nodes),d=cE(...f,{...e,wrap:!1,toRegex:!0,strictZeros:!0});if(d.length!==0)return f.length>1&&d.length>1?`(${d})`:d}if(i.nodes)for(let f of i.nodes)c+=t(f,i);return c};return t(r)};Em.exports=pE});var Pm=x((i6,Rm)=>{u();"use strict";var dE=pl(),Tm=hs(),mr=ds(),Gt=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?mr.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Gt(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Gt(n,s,t):n+s);return mr.flatten(i)},hE=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let a=s,o=s.queue;for(;a.type!=="brace"&&a.type!=="root"&&a.parent;)a=a.parent,o=a.queue;if(n.invalid||n.dollar){o.push(Gt(o.pop(),Tm(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){o.push(Gt(o.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let d=mr.reduce(n.nodes);if(mr.exceedsLimit(...d,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let p=dE(...d,e);p.length===0&&(p=Tm(n,e)),o.push(Gt(o.pop(),p)),n.nodes=[];return}let l=mr.encloseBrace(n),c=n.queue,f=n;for(;f.type!=="brace"&&f.type!=="root"&&f.parent;)f=f.parent,c=f.queue;for(let d=0;d{u();"use strict";Im.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Nm=x((s6,Mm)=>{u();"use strict";var mE=hs(),{MAX_LENGTH:qm,CHAR_BACKSLASH:dl,CHAR_BACKTICK:gE,CHAR_COMMA:yE,CHAR_DOT:bE,CHAR_LEFT_PARENTHESES:wE,CHAR_RIGHT_PARENTHESES:vE,CHAR_LEFT_CURLY_BRACE:xE,CHAR_RIGHT_CURLY_BRACE:kE,CHAR_LEFT_SQUARE_BRACKET:$m,CHAR_RIGHT_SQUARE_BRACKET:Lm,CHAR_DOUBLE_QUOTE:SE,CHAR_SINGLE_QUOTE:AE,CHAR_NO_BREAK_SPACE:CE,CHAR_ZERO_WIDTH_NOBREAK_SPACE:_E}=Dm(),EE=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(qm,t.maxLength):qm;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],a=n,o=n,l=0,c=r.length,f=0,d=0,p,h=()=>r[f++],b=v=>{if(v.type==="text"&&o.type==="dot"&&(o.type="text"),o&&o.type==="text"&&v.type==="text"){o.value+=v.value;return}return a.nodes.push(v),v.parent=a,v.prev=o,o=v,v};for(b({type:"bos"});f0){if(a.ranges>0){a.ranges=0;let v=a.nodes.shift();a.nodes=[v,{type:"text",value:mE(a)}]}b({type:"comma",value:p}),a.commas++;continue}if(p===bE&&d>0&&a.commas===0){let v=a.nodes;if(d===0||v.length===0){b({type:"text",value:p});continue}if(o.type==="dot"){if(a.range=[],o.value+=p,o.type="range",a.nodes.length!==3&&a.nodes.length!==5){a.invalid=!0,a.ranges=0,o.type="text";continue}a.ranges++,a.args=[];continue}if(o.type==="range"){v.pop();let y=v[v.length-1];y.value+=o.value+p,o=y,a.ranges--;continue}b({type:"dot",value:p});continue}b({type:"text",value:p})}do if(a=s.pop(),a.type!=="root"){a.nodes.forEach(w=>{w.nodes||(w.type==="open"&&(w.isOpen=!0),w.type==="close"&&(w.isClose=!0),w.nodes||(w.type="text"),w.invalid=!0)});let v=s[s.length-1],y=v.nodes.indexOf(a);v.nodes.splice(y,1,...a.nodes)}while(s.length>0);return b({type:"eos"}),n};Mm.exports=EE});var jm=x((a6,Fm)=>{u();"use strict";var Bm=hs(),OE=Om(),TE=Pm(),RE=Nm(),Le=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Le.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Le.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Le.parse=(r,e={})=>RE(r,e);Le.stringify=(r,e={})=>typeof r=="string"?Bm(Le.parse(r,e),e):Bm(r,e);Le.compile=(r,e={})=>(typeof r=="string"&&(r=Le.parse(r,e)),OE(r,e));Le.expand=(r,e={})=>{typeof r=="string"&&(r=Le.parse(r,e));let t=TE(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Le.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Le.compile(r,e):Le.expand(r,e);Fm.exports=Le});var Di=x((o6,Wm)=>{u();"use strict";var PE=(et(),Ur),at="\\\\/",zm=`[^${at}]`,yt="\\.",IE="\\+",DE="\\?",ys="\\/",qE="(?=.)",Um="[^/]",hl=`(?:${ys}|$)`,Vm=`(?:^|${ys})`,ml=`${yt}{1,2}${hl}`,$E=`(?!${yt})`,LE=`(?!${Vm}${ml})`,ME=`(?!${yt}{0,1}${hl})`,NE=`(?!${ml})`,BE=`[^.${ys}]`,FE=`${Um}*?`,Hm={DOT_LITERAL:yt,PLUS_LITERAL:IE,QMARK_LITERAL:DE,SLASH_LITERAL:ys,ONE_CHAR:qE,QMARK:Um,END_ANCHOR:hl,DOTS_SLASH:ml,NO_DOT:$E,NO_DOTS:LE,NO_DOT_SLASH:ME,NO_DOTS_SLASH:NE,QMARK_NO_DOT:BE,STAR:FE,START_ANCHOR:Vm},jE={...Hm,SLASH_LITERAL:`[${at}]`,QMARK:zm,STAR:`${zm}*?`,DOTS_SLASH:`${yt}{1,2}(?:[${at}]|$)`,NO_DOT:`(?!${yt})`,NO_DOTS:`(?!(?:^|[${at}])${yt}{1,2}(?:[${at}]|$))`,NO_DOT_SLASH:`(?!${yt}{0,1}(?:[${at}]|$))`,NO_DOTS_SLASH:`(?!${yt}{1,2}(?:[${at}]|$))`,QMARK_NO_DOT:`[^.${at}]`,START_ANCHOR:`(?:^|[${at}])`,END_ANCHOR:`(?:[${at}]|$)`},zE={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Wm.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:zE,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:PE.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?jE:Hm}}});var qi=x(Re=>{u();"use strict";var UE=(et(),Ur),VE=m.platform==="win32",{REGEX_BACKSLASH:HE,REGEX_REMOVE_BACKSLASH:WE,REGEX_SPECIAL_CHARS:GE,REGEX_SPECIAL_CHARS_GLOBAL:QE}=Di();Re.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Re.hasRegexChars=r=>GE.test(r);Re.isRegexChar=r=>r.length===1&&Re.hasRegexChars(r);Re.escapeRegex=r=>r.replace(QE,"\\$1");Re.toPosixSlashes=r=>r.replace(HE,"/");Re.removeBackslashes=r=>r.replace(WE,e=>e==="\\"?"":e);Re.supportsLookbehinds=()=>{let r=m.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};Re.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:VE===!0||UE.sep==="\\";Re.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?Re.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};Re.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};Re.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var eg=x((u6,Jm)=>{u();"use strict";var Gm=qi(),{CHAR_ASTERISK:gl,CHAR_AT:YE,CHAR_BACKWARD_SLASH:$i,CHAR_COMMA:KE,CHAR_DOT:yl,CHAR_EXCLAMATION_MARK:bl,CHAR_FORWARD_SLASH:Qm,CHAR_LEFT_CURLY_BRACE:wl,CHAR_LEFT_PARENTHESES:vl,CHAR_LEFT_SQUARE_BRACKET:XE,CHAR_PLUS:ZE,CHAR_QUESTION_MARK:Ym,CHAR_RIGHT_CURLY_BRACE:JE,CHAR_RIGHT_PARENTHESES:Km,CHAR_RIGHT_SQUARE_BRACKET:e2}=Di(),Xm=r=>r===Qm||r===$i,Zm=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t2=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],a=[],o=[],l=r,c=-1,f=0,d=0,p=!1,h=!1,b=!1,v=!1,y=!1,w=!1,k=!1,S=!1,E=!1,T=!1,B=0,N,R,F={value:"",depth:0,isGlob:!1},Y=()=>c>=i,_=()=>l.charCodeAt(c+1),Q=()=>(N=R,l.charCodeAt(++c));for(;c0&&(le=l.slice(0,f),l=l.slice(f),d-=f),U&&b===!0&&d>0?(U=l.slice(0,d),A=l.slice(d)):b===!0?(U="",A=l):U=l,U&&U!==""&&U!=="/"&&U!==l&&Xm(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),t.unescape===!0&&(A&&(A=Gm.removeBackslashes(A)),U&&k===!0&&(U=Gm.removeBackslashes(U)));let C={prefix:le,input:r,start:f,base:U,glob:A,isBrace:p,isBracket:h,isGlob:b,isExtglob:v,isGlobstar:y,negated:S,negatedExtglob:E};if(t.tokens===!0&&(C.maxDepth=0,Xm(R)||a.push(F),C.tokens=a),t.parts===!0||t.tokens===!0){let he;for(let V=0;V{u();"use strict";var bs=Di(),Me=qi(),{MAX_LENGTH:ws,POSIX_REGEX_SOURCE:r2,REGEX_NON_SPECIAL_CHARS:i2,REGEX_SPECIAL_CHARS_BACKREF:n2,REPLACEMENTS:tg}=bs,s2=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch(i){return r.map(n=>Me.escapeRegex(n)).join("..")}return t},gr=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,xl=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=tg[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(ws,t.maxLength):ws,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},a=[s],o=t.capture?"":"?:",l=Me.isWindows(e),c=bs.globChars(l),f=bs.extglobChars(c),{DOT_LITERAL:d,PLUS_LITERAL:p,SLASH_LITERAL:h,ONE_CHAR:b,DOTS_SLASH:v,NO_DOT:y,NO_DOT_SLASH:w,NO_DOTS_SLASH:k,QMARK:S,QMARK_NO_DOT:E,STAR:T,START_ANCHOR:B}=c,N=$=>`(${o}(?:(?!${B}${$.dot?v:d}).)*?)`,R=t.dot?"":y,F=t.dot?S:E,Y=t.bash===!0?N(t):T;t.capture&&(Y=`(${Y})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let _={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:a};r=Me.removePrefix(r,_),n=r.length;let Q=[],U=[],le=[],A=s,C,he=()=>_.index===n-1,V=_.peek=($=1)=>r[_.index+$],Ee=_.advance=()=>r[++_.index]||"",Ie=()=>r.slice(_.index+1),De=($="",ae=0)=>{_.consumed+=$,_.index+=ae},ji=$=>{_.output+=$.output!=null?$.output:$.value,De($.value)},Iv=()=>{let $=1;for(;V()==="!"&&(V(2)!=="("||V(3)==="?");)Ee(),_.start++,$++;return $%2==0?!1:(_.negated=!0,_.start++,!0)},zi=$=>{_[$]++,le.push($)},Ft=$=>{_[$]--,le.pop()},W=$=>{if(A.type==="globstar"){let ae=_.braces>0&&($.type==="comma"||$.type==="brace"),I=$.extglob===!0||Q.length&&($.type==="pipe"||$.type==="paren");$.type!=="slash"&&$.type!=="paren"&&!ae&&!I&&(_.output=_.output.slice(0,-A.output.length),A.type="star",A.value="*",A.output=Y,_.output+=A.output)}if(Q.length&&$.type!=="paren"&&(Q[Q.length-1].inner+=$.value),($.value||$.output)&&ji($),A&&A.type==="text"&&$.type==="text"){A.value+=$.value,A.output=(A.output||"")+$.value;return}$.prev=A,a.push($),A=$},Ui=($,ae)=>{let I={...f[ae],conditions:1,inner:""};I.prev=A,I.parens=_.parens,I.output=_.output;let H=(t.capture?"(":"")+I.open;zi("parens"),W({type:$,value:ae,output:_.output?"":b}),W({type:"paren",extglob:!0,value:Ee(),output:H}),Q.push(I)},Dv=$=>{let ae=$.close+(t.capture?")":""),I;if($.type==="negate"){let H=Y;if($.inner&&$.inner.length>1&&$.inner.includes("/")&&(H=N(t)),(H!==Y||he()||/^\)+$/.test(Ie()))&&(ae=$.close=`)$))${H}`),$.inner.includes("*")&&(I=Ie())&&/^\.[^\\/.]+$/.test(I)){let ce=xl(I,{...e,fastpaths:!1}).output;ae=$.close=`)${ce})${H})`}$.prev.type==="bos"&&(_.negatedExtglob=!0)}W({type:"paren",extglob:!0,value:C,output:ae}),Ft("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let $=!1,ae=r.replace(n2,(I,H,ce,Ce,ye,Bs)=>Ce==="\\"?($=!0,I):Ce==="?"?H?H+Ce+(ye?S.repeat(ye.length):""):Bs===0?F+(ye?S.repeat(ye.length):""):S.repeat(ce.length):Ce==="."?d.repeat(ce.length):Ce==="*"?H?H+Ce+(ye?Y:""):Y:H?I:`\\${I}`);return $===!0&&(t.unescape===!0?ae=ae.replace(/\\/g,""):ae=ae.replace(/\\+/g,I=>I.length%2==0?"\\\\":I?"\\":"")),ae===r&&t.contains===!0?(_.output=r,_):(_.output=Me.wrapOutput(ae,_,e),_)}for(;!he();){if(C=Ee(),C==="\0")continue;if(C==="\\"){let I=V();if(I==="/"&&t.bash!==!0||I==="."||I===";")continue;if(!I){C+="\\",W({type:"text",value:C});continue}let H=/^\\+/.exec(Ie()),ce=0;if(H&&H[0].length>2&&(ce=H[0].length,_.index+=ce,ce%2!=0&&(C+="\\")),t.unescape===!0?C=Ee():C+=Ee(),_.brackets===0){W({type:"text",value:C});continue}}if(_.brackets>0&&(C!=="]"||A.value==="["||A.value==="[^")){if(t.posix!==!1&&C===":"){let I=A.value.slice(1);if(I.includes("[")&&(A.posix=!0,I.includes(":"))){let H=A.value.lastIndexOf("["),ce=A.value.slice(0,H),Ce=A.value.slice(H+2),ye=r2[Ce];if(ye){A.value=ce+ye,_.backtrack=!0,Ee(),!s.output&&a.indexOf(A)===1&&(s.output=b);continue}}}(C==="["&&V()!==":"||C==="-"&&V()==="]")&&(C=`\\${C}`),C==="]"&&(A.value==="["||A.value==="[^")&&(C=`\\${C}`),t.posix===!0&&C==="!"&&A.value==="["&&(C="^"),A.value+=C,ji({value:C});continue}if(_.quotes===1&&C!=='"'){C=Me.escapeRegex(C),A.value+=C,ji({value:C});continue}if(C==='"'){_.quotes=_.quotes===1?0:1,t.keepQuotes===!0&&W({type:"text",value:C});continue}if(C==="("){zi("parens"),W({type:"paren",value:C});continue}if(C===")"){if(_.parens===0&&t.strictBrackets===!0)throw new SyntaxError(gr("opening","("));let I=Q[Q.length-1];if(I&&_.parens===I.parens+1){Dv(Q.pop());continue}W({type:"paren",value:C,output:_.parens?")":"\\)"}),Ft("parens");continue}if(C==="["){if(t.nobracket===!0||!Ie().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(gr("closing","]"));C=`\\${C}`}else zi("brackets");W({type:"bracket",value:C});continue}if(C==="]"){if(t.nobracket===!0||A&&A.type==="bracket"&&A.value.length===1){W({type:"text",value:C,output:`\\${C}`});continue}if(_.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(gr("opening","["));W({type:"text",value:C,output:`\\${C}`});continue}Ft("brackets");let I=A.value.slice(1);if(A.posix!==!0&&I[0]==="^"&&!I.includes("/")&&(C=`/${C}`),A.value+=C,ji({value:C}),t.literalBrackets===!1||Me.hasRegexChars(I))continue;let H=Me.escapeRegex(A.value);if(_.output=_.output.slice(0,-A.value.length),t.literalBrackets===!0){_.output+=H,A.value=H;continue}A.value=`(${o}${H}|${A.value})`,_.output+=A.value;continue}if(C==="{"&&t.nobrace!==!0){zi("braces");let I={type:"brace",value:C,output:"(",outputIndex:_.output.length,tokensIndex:_.tokens.length};U.push(I),W(I);continue}if(C==="}"){let I=U[U.length-1];if(t.nobrace===!0||!I){W({type:"text",value:C,output:C});continue}let H=")";if(I.dots===!0){let ce=a.slice(),Ce=[];for(let ye=ce.length-1;ye>=0&&(a.pop(),ce[ye].type!=="brace");ye--)ce[ye].type!=="dots"&&Ce.unshift(ce[ye].value);H=s2(Ce,t),_.backtrack=!0}if(I.comma!==!0&&I.dots!==!0){let ce=_.output.slice(0,I.outputIndex),Ce=_.tokens.slice(I.tokensIndex);I.value=I.output="\\{",C=H="\\}",_.output=ce;for(let ye of Ce)_.output+=ye.output||ye.value}W({type:"brace",value:C,output:H}),Ft("braces"),U.pop();continue}if(C==="|"){Q.length>0&&Q[Q.length-1].conditions++,W({type:"text",value:C});continue}if(C===","){let I=C,H=U[U.length-1];H&&le[le.length-1]==="braces"&&(H.comma=!0,I="|"),W({type:"comma",value:C,output:I});continue}if(C==="/"){if(A.type==="dot"&&_.index===_.start+1){_.start=_.index+1,_.consumed="",_.output="",a.pop(),A=s;continue}W({type:"slash",value:C,output:h});continue}if(C==="."){if(_.braces>0&&A.type==="dot"){A.value==="."&&(A.output=d);let I=U[U.length-1];A.type="dots",A.output+=C,A.value+=C,I.dots=!0;continue}if(_.braces+_.parens===0&&A.type!=="bos"&&A.type!=="slash"){W({type:"text",value:C,output:d});continue}W({type:"dot",value:C,output:d});continue}if(C==="?"){if(!(A&&A.value==="(")&&t.noextglob!==!0&&V()==="("&&V(2)!=="?"){Ui("qmark",C);continue}if(A&&A.type==="paren"){let H=V(),ce=C;if(H==="<"&&!Me.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(A.value==="("&&!/[!=<:]/.test(H)||H==="<"&&!/<([!=]|\w+>)/.test(Ie()))&&(ce=`\\${C}`),W({type:"text",value:C,output:ce});continue}if(t.dot!==!0&&(A.type==="slash"||A.type==="bos")){W({type:"qmark",value:C,output:E});continue}W({type:"qmark",value:C,output:S});continue}if(C==="!"){if(t.noextglob!==!0&&V()==="("&&(V(2)!=="?"||!/[!=<:]/.test(V(3)))){Ui("negate",C);continue}if(t.nonegate!==!0&&_.index===0){Iv();continue}}if(C==="+"){if(t.noextglob!==!0&&V()==="("&&V(2)!=="?"){Ui("plus",C);continue}if(A&&A.value==="("||t.regex===!1){W({type:"plus",value:C,output:p});continue}if(A&&(A.type==="bracket"||A.type==="paren"||A.type==="brace")||_.parens>0){W({type:"plus",value:C});continue}W({type:"plus",value:p});continue}if(C==="@"){if(t.noextglob!==!0&&V()==="("&&V(2)!=="?"){W({type:"at",extglob:!0,value:C,output:""});continue}W({type:"text",value:C});continue}if(C!=="*"){(C==="$"||C==="^")&&(C=`\\${C}`);let I=i2.exec(Ie());I&&(C+=I[0],_.index+=I[0].length),W({type:"text",value:C});continue}if(A&&(A.type==="globstar"||A.star===!0)){A.type="star",A.star=!0,A.value+=C,A.output=Y,_.backtrack=!0,_.globstar=!0,De(C);continue}let $=Ie();if(t.noextglob!==!0&&/^\([^?]/.test($)){Ui("star",C);continue}if(A.type==="star"){if(t.noglobstar===!0){De(C);continue}let I=A.prev,H=I.prev,ce=I.type==="slash"||I.type==="bos",Ce=H&&(H.type==="star"||H.type==="globstar");if(t.bash===!0&&(!ce||$[0]&&$[0]!=="/")){W({type:"star",value:C,output:""});continue}let ye=_.braces>0&&(I.type==="comma"||I.type==="brace"),Bs=Q.length&&(I.type==="pipe"||I.type==="paren");if(!ce&&I.type!=="paren"&&!ye&&!Bs){W({type:"star",value:C,output:""});continue}for(;$.slice(0,3)==="/**";){let Vi=r[_.index+4];if(Vi&&Vi!=="/")break;$=$.slice(3),De("/**",3)}if(I.type==="bos"&&he()){A.type="globstar",A.value+=C,A.output=N(t),_.output=A.output,_.globstar=!0,De(C);continue}if(I.type==="slash"&&I.prev.type!=="bos"&&!Ce&&he()){_.output=_.output.slice(0,-(I.output+A.output).length),I.output=`(?:${I.output}`,A.type="globstar",A.output=N(t)+(t.strictSlashes?")":"|$)"),A.value+=C,_.globstar=!0,_.output+=I.output+A.output,De(C);continue}if(I.type==="slash"&&I.prev.type!=="bos"&&$[0]==="/"){let Vi=$[1]!==void 0?"|$":"";_.output=_.output.slice(0,-(I.output+A.output).length),I.output=`(?:${I.output}`,A.type="globstar",A.output=`${N(t)}${h}|${h}${Vi})`,A.value+=C,_.output+=I.output+A.output,_.globstar=!0,De(C+Ee()),W({type:"slash",value:"/",output:""});continue}if(I.type==="bos"&&$[0]==="/"){A.type="globstar",A.value+=C,A.output=`(?:^|${h}|${N(t)}${h})`,_.output=A.output,_.globstar=!0,De(C+Ee()),W({type:"slash",value:"/",output:""});continue}_.output=_.output.slice(0,-A.output.length),A.type="globstar",A.output=N(t),A.value+=C,_.output+=A.output,_.globstar=!0,De(C);continue}let ae={type:"star",value:C,output:Y};if(t.bash===!0){ae.output=".*?",(A.type==="bos"||A.type==="slash")&&(ae.output=R+ae.output),W(ae);continue}if(A&&(A.type==="bracket"||A.type==="paren")&&t.regex===!0){ae.output=C,W(ae);continue}(_.index===_.start||A.type==="slash"||A.type==="dot")&&(A.type==="dot"?(_.output+=w,A.output+=w):t.dot===!0?(_.output+=k,A.output+=k):(_.output+=R,A.output+=R),V()!=="*"&&(_.output+=b,A.output+=b)),W(ae)}for(;_.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(gr("closing","]"));_.output=Me.escapeLast(_.output,"["),Ft("brackets")}for(;_.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(gr("closing",")"));_.output=Me.escapeLast(_.output,"("),Ft("parens")}for(;_.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(gr("closing","}"));_.output=Me.escapeLast(_.output,"{"),Ft("braces")}if(t.strictSlashes!==!0&&(A.type==="star"||A.type==="bracket")&&W({type:"maybe_slash",value:"",output:`${h}?`}),_.backtrack===!0){_.output="";for(let $ of _.tokens)_.output+=$.output!=null?$.output:$.value,$.suffix&&(_.output+=$.suffix)}return _};xl.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(ws,t.maxLength):ws,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=tg[r]||r;let s=Me.isWindows(e),{DOT_LITERAL:a,SLASH_LITERAL:o,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:f,NO_DOTS:d,NO_DOTS_SLASH:p,STAR:h,START_ANCHOR:b}=bs.globChars(s),v=t.dot?d:f,y=t.dot?p:f,w=t.capture?"":"?:",k={negated:!1,prefix:""},S=t.bash===!0?".*?":h;t.capture&&(S=`(${S})`);let E=R=>R.noglobstar===!0?S:`(${w}(?:(?!${b}${R.dot?c:a}).)*?)`,T=R=>{switch(R){case"*":return`${v}${l}${S}`;case".*":return`${a}${l}${S}`;case"*.*":return`${v}${S}${a}${l}${S}`;case"*/*":return`${v}${S}${o}${l}${y}${S}`;case"**":return v+E(t);case"**/*":return`(?:${v}${E(t)}${o})?${y}${l}${S}`;case"**/*.*":return`(?:${v}${E(t)}${o})?${y}${S}${a}${l}${S}`;case"**/.*":return`(?:${v}${E(t)}${o})?${a}${l}${S}`;default:{let F=/^(.*?)\.(\w+)$/.exec(R);if(!F)return;let Y=T(F[1]);return Y?Y+a+F[2]:void 0}}},B=Me.removePrefix(r,k),N=T(B);return N&&t.strictSlashes!==!0&&(N+=`${o}?`),N};rg.exports=xl});var sg=x((c6,ng)=>{u();"use strict";var a2=(et(),Ur),o2=eg(),kl=ig(),Sl=qi(),l2=Di(),u2=r=>r&&typeof r=="object"&&!Array.isArray(r),de=(r,e,t=!1)=>{if(Array.isArray(r)){let f=r.map(p=>de(p,e,t));return p=>{for(let h of f){let b=h(p);if(b)return b}return!1}}let i=u2(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Sl.isWindows(e),a=i?de.compileRe(r,e):de.makeRe(r,e,!1,!0),o=a.state;delete a.state;let l=()=>!1;if(n.ignore){let f={...e,ignore:null,onMatch:null,onResult:null};l=de(n.ignore,f,t)}let c=(f,d=!1)=>{let{isMatch:p,match:h,output:b}=de.test(f,a,e,{glob:r,posix:s}),v={glob:r,state:o,regex:a,posix:s,input:f,output:b,match:h,isMatch:p};return typeof n.onResult=="function"&&n.onResult(v),p===!1?(v.isMatch=!1,d?v:!1):l(f)?(typeof n.onIgnore=="function"&&n.onIgnore(v),v.isMatch=!1,d?v:!1):(typeof n.onMatch=="function"&&n.onMatch(v),d?v:!0)};return t&&(c.state=o),c};de.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},a=s.format||(n?Sl.toPosixSlashes:null),o=r===i,l=o&&a?a(r):r;return o===!1&&(l=a?a(r):r,o=l===i),(o===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?o=de.matchBase(r,e,t,n):o=e.exec(l)),{isMatch:Boolean(o),match:o,output:l}};de.matchBase=(r,e,t,i=Sl.isWindows(t))=>(e instanceof RegExp?e:de.makeRe(e,t)).test(a2.basename(r));de.isMatch=(r,e,t)=>de(e,t)(r);de.parse=(r,e)=>Array.isArray(r)?r.map(t=>de.parse(t,e)):kl(r,{...e,fastpaths:!1});de.scan=(r,e)=>o2(r,e);de.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",a=n.contains?"":"$",o=`${s}(?:${r.output})${a}`;r&&r.negated===!0&&(o=`^(?!${o}).*$`);let l=de.toRegex(o,e);return i===!0&&(l.state=r),l};de.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=kl.fastpaths(r,e)),n.output||(n=kl(r,e)),de.compileRe(n,e,t,i)};de.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};de.constants=l2;ng.exports=de});var og=x((p6,ag)=>{u();"use strict";ag.exports=sg()});var dg=x((d6,pg)=>{u();"use strict";var lg=(Fn(),Bn),ug=jm(),ot=og(),Al=qi(),fg=r=>r===""||r==="./",cg=r=>{let e=r.indexOf("{");return e>-1&&r.indexOf("}",e)>-1},oe=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,a=0,o=f=>{s.add(f.output),t&&t.onResult&&t.onResult(f)};for(let f=0;f!i.has(f));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(f=>f.replace(/\\/g,"")):e}return c};oe.match=oe;oe.matcher=(r,e)=>ot(r,e);oe.isMatch=(r,e,t)=>ot(e,t)(r);oe.any=oe.isMatch;oe.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],s=o=>{t.onResult&&t.onResult(o),n.push(o.output)},a=new Set(oe(r,e,{...t,onResult:s}));for(let o of n)a.has(o)||i.add(o);return[...i]};oe.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${lg.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>oe.contains(r,i,t));if(typeof e=="string"){if(fg(r)||fg(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return oe.isMatch(r,e,{...t,contains:!0})};oe.matchKeys=(r,e,t)=>{if(!Al.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=oe(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};oe.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=ot(String(n),t);if(i.some(a=>s(a)))return!0}return!1};oe.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=ot(String(n),t);if(!i.every(a=>s(a)))return!1}return!0};oe.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${lg.inspect(r)}"`);return[].concat(e).every(i=>ot(i,t)(r))};oe.capture=(r,e,t)=>{let i=Al.isWindows(t),s=ot.makeRe(String(r),{...t,capture:!0}).exec(i?Al.toPosixSlashes(e):e);if(s)return s.slice(1).map(a=>a===void 0?"":a)};oe.makeRe=(...r)=>ot.makeRe(...r);oe.scan=(...r)=>ot.scan(...r);oe.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of ug(String(i),e))t.push(ot.parse(n,e));return t};oe.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!cg(r)?[r]:ug(r,e)};oe.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return oe.braces(r,{...e,expand:!0})};oe.hasBraces=cg;pg.exports=oe});function mg(r,e){let t=e.content.files;t=t.filter(o=>typeof o=="string"),t=t.map(ll);let i=ps.generateTasks(t),n=[],s=[];for(let o of i)n.push(...o.positive.map(l=>gg(l,!1))),s.push(...o.negative.map(l=>gg(l,!0)));let a=[...n,...s];return a=c2(r,a),a=a.flatMap(p2),a=a.map(f2),a}function gg(r,e){let t={original:r,base:r,ignore:e,pattern:r,glob:null};return Zh(r)&&Object.assign(t,nm(r)),t}function f2(r){let e=ll(r.base);return e=ps.escapePath(e),r.pattern=r.glob?`${e}/${r.glob}`:e,r.pattern=r.ignore?`!${r.pattern}`:r.pattern,r}function c2(r,e){let t=[];return r.userConfigPath&&r.tailwindConfig.content.relative&&(t=[me.dirname(r.userConfigPath)]),e.map(i=>(i.base=me.resolve(...t,i.base),i))}function p2(r){let e=[r];try{let t=be.realpathSync(r.base);t!==r.base&&e.push({...r,base:t})}catch{}return e}function yg(r,e,t){let i=r.tailwindConfig.content.files.filter(a=>typeof a.raw=="string").map(({raw:a,extension:o="html"})=>({content:a,extension:o})),[n,s]=h2(e,t);for(let a of n){let o=me.extname(a).slice(1);i.push({file:a,extension:o})}return[i,s]}function d2(r){if(!r.some(s=>s.includes("**")&&!wg.test(s)))return()=>{};let t=[],i=[];for(let s of r){let a=hg.default.matcher(s);wg.test(s)&&i.push(a),t.push(a)}let n=!1;return s=>{if(n||i.some(f=>f(s)))return;let a=t.findIndex(f=>f(s));if(a===-1)return;let o=r[a],l=me.relative(m.cwd(),o);l[0]!=="."&&(l=`./${l}`);let c=bg.find(f=>s.includes(f));c&&(n=!0,G.warn("broad-content-glob-pattern",[`Your \`content\` configuration includes a pattern which looks like it's accidentally matching all of \`${c}\` and can cause serious performance issues.`,`Pattern: \`${l}\``,"See our documentation for recommendations:","https://tailwindcss.com/docs/content-configuration#pattern-recommendations"]))}}function h2(r,e){let t=r.map(o=>o.pattern),i=new Map,n=d2(t),s=new Set;Ze.DEBUG&&console.time("Finding changed files");let a=ps.sync(t,{absolute:!0});for(let o of a){n(o);let l=e.get(o)||-1/0,c=be.statSync(o).mtimeMs;c>l&&(s.add(o),i.set(o,c))}return Ze.DEBUG&&console.timeEnd("Finding changed files"),[s,i]}var hg,bg,wg,vg=P(()=>{u();ft();et();Jh();em();tm();sm();It();Be();hg=pe(dg());bg=["node_modules"],wg=new RegExp(`(${bg.map(r=>String.raw`\b${r}\b`).join("|")})`)});function xg(){}var kg=P(()=>{u()});function b2(r,e){for(let t of e){let i=`${r}${t}`;if(be.existsSync(i)&&be.statSync(i).isFile())return i}for(let t of e){let i=`${r}/index${t}`;if(be.existsSync(i))return i}return null}function*Sg(r,e,t,i=me.extname(r)){let n=b2(me.resolve(e,r),m2.includes(i)?g2:y2);if(n===null||t.has(n))return;t.add(n),yield n,e=me.dirname(n),i=me.extname(n);let s=be.readFileSync(n,"utf-8");for(let a of[...s.matchAll(/import[\s\S]*?['"](.{3,}?)['"]/gi),...s.matchAll(/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi),...s.matchAll(/require\(['"`](.+)['"`]\)/gi)])!a[1].startsWith(".")||(yield*Sg(a[1],e,t,i))}function Cl(r){return r===null?new Set:new Set(Sg(r,me.dirname(r),new Set))}var m2,g2,y2,Ag=P(()=>{u();ft();et();m2=[".js",".cjs",".mjs"],g2=["",".js",".cjs",".mjs",".ts",".cts",".mts",".jsx",".tsx"],y2=["",".ts",".cts",".mts",".tsx",".js",".cjs",".mjs",".jsx"]});function w2(r,e){if(_l.has(r))return _l.get(r);let t=mg(r,e);return _l.set(r,t).get(r)}function v2(r){let e=aa(r);if(e!==null){let[i,n,s,a]=_g.get(e)||[],o=Cl(e),l=!1,c=new Map;for(let p of o){let h=be.statSync(p).mtimeMs;c.set(p,h),(!a||!a.has(p)||h>a.get(p))&&(l=!0)}if(!l)return[i,e,n,s];for(let p of o)delete hf.cache[p];let f=ol(zr(xg(e))),d=Wi(f);return _g.set(e,[f,d,o,c]),[f,e,d,o]}let t=zr(r?.config??r??{});return t=ol(t),[t,null,Wi(t),[]]}function El(r){return({tailwindDirectives:e,registerDependency:t})=>(i,n)=>{let[s,a,o,l]=v2(r),c=new Set(l);if(e.size>0){c.add(n.opts.from);for(let b of n.messages)b.type==="dependency"&&c.add(b.file)}let[f,,d]=Vh(i,n,s,a,o,c),p=cs(f),h=w2(f,s);if(e.size>0){for(let y of h)for(let w of nl(y))t(w);let[b,v]=yg(f,h,p);for(let y of b)f.changedContent.push(y);for(let[y,w]of v.entries())d.set(y,w)}for(let b of l)t({type:"dependency",file:b});for(let[b,v]of d.entries())p.set(b,v);return f}}var Cg,_g,_l,Eg=P(()=>{u();ft();Cg=pe(Fs());wf();sa();oc();Oi();Hh();Xh();vg();kg();Ag();_g=new Cg.default({maxSize:100}),_l=new WeakMap});function Ol(r){let e=new Set,t=new Set,i=new Set;if(r.walkAtRules(n=>{n.name==="apply"&&i.add(n),n.name==="import"&&(n.params==='"tailwindcss/base"'||n.params==="'tailwindcss/base'"?(n.name="tailwind",n.params="base"):n.params==='"tailwindcss/components"'||n.params==="'tailwindcss/components'"?(n.name="tailwind",n.params="components"):n.params==='"tailwindcss/utilities"'||n.params==="'tailwindcss/utilities'"?(n.name="tailwind",n.params="utilities"):(n.params==='"tailwindcss/screens"'||n.params==="'tailwindcss/screens'"||n.params==='"tailwindcss/variants"'||n.params==="'tailwindcss/variants'")&&(n.name="tailwind",n.params="variants")),n.name==="tailwind"&&(n.params==="screens"&&(n.params="variants"),e.add(n.params)),["layer","responsive","variants"].includes(n.name)&&(["responsive","variants"].includes(n.name)&&G.warn(`${n.name}-at-rule-deprecated`,[`The \`@${n.name}\` directive has been deprecated in Tailwind CSS v3.0.`,"Use `@layer utilities` or `@layer components` instead.","https://tailwindcss.com/docs/upgrade-guide#replace-variants-with-layer"]),t.add(n))}),!e.has("base")||!e.has("components")||!e.has("utilities")){for(let n of t)if(n.name==="layer"&&["base","components","utilities"].includes(n.params)){if(!e.has(n.params))throw n.error(`\`@layer ${n.params}\` is used but no matching \`@tailwind ${n.params}\` directive is present.`)}else if(n.name==="responsive"){if(!e.has("utilities"))throw n.error("`@responsive` is used but `@tailwind utilities` is missing.")}else if(n.name==="variants"&&!e.has("utilities"))throw n.error("`@variants` is used but `@tailwind utilities` is missing.")}return{tailwindDirectives:e,applyDirectives:i}}var Og=P(()=>{u();Be()});function Qt(r,e=void 0,t=void 0){return r.map(i=>{let n=i.clone();return t!==void 0&&(n.raws.tailwind={...n.raws.tailwind,...t}),e!==void 0&&Tg(n,s=>{if(s.raws.tailwind?.preserveSource===!0&&s.source)return!1;s.source=e}),n})}function Tg(r,e){e(r)!==!1&&r.each?.(t=>Tg(t,e))}var Rg=P(()=>{u()});function Tl(r){return r=Array.isArray(r)?r:[r],r=r.map(e=>e instanceof RegExp?e.source:e),r.join("")}function Ne(r){return new RegExp(Tl(r),"g")}function qt(r){return`(?:${r.map(Tl).join("|")})`}function Rl(r){return`(?:${Tl(r)})?`}function Ig(r){return r&&x2.test(r)?r.replace(Pg,"\\$&"):r||""}var Pg,x2,Dg=P(()=>{u();Pg=/[\\^$.*+?()[\]{}|]/g,x2=RegExp(Pg.source)});function qg(r){let e=Array.from(k2(r));return t=>{let i=[];for(let n of e)for(let s of t.match(n)??[])i.push(C2(s));for(let n of i.slice()){let s=ve(n,".");for(let a=0;a=s.length-1){i.push(o);continue}let l=Number(s[a+1]);isNaN(l)?i.push(o):a++}}return i}}function*k2(r){let e=r.tailwindConfig.separator,t=r.tailwindConfig.prefix!==""?Rl(Ne([/-?/,Ig(r.tailwindConfig.prefix)])):"",i=qt([/\[[^\s:'"`]+:[^\s\[\]]+\]/,/\[[^\s:'"`\]]+:[^\s]+?\[[^\s]+\][^\s]+?\]/,Ne([qt([/-?(?:\w+)/,/@(?:\w+)/]),Rl(qt([Ne([qt([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s:\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\><$]*)?/]),Ne([qt([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\$]*)?/]),/[-\/][^\s'"`\\$={><]*/]))])]),n=[qt([Ne([/@\[[^\s"'`]+\](\/[^\s"'`]+)?/,e]),Ne([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]\/[\w_-]+/,e]),Ne([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]/,e]),Ne([/[^\s"'`\[\\]+/,e])]),qt([Ne([/([^\s"'`\[\\]+-)?\[[^\s`]+\]\/[\w_-]+/,e]),Ne([/([^\s"'`\[\\]+-)?\[[^\s`]+\]/,e]),Ne([/[^\s`\[\\]+/,e])])];for(let s of n)yield Ne(["((?=((",s,")+))\\2)?",/!?/,t,i]);yield/[^<>"'`\s.(){}[\]#=%$][^<>"'`\s(){}[\]#=%$]*[^<>"'`\s.(){}[\]#=%:$]/g}function C2(r){if(!r.includes("-["))return r;let e=0,t=[],i=r.matchAll(S2);i=Array.from(i).flatMap(n=>{let[,...s]=n;return s.map((a,o)=>Object.assign([],n,{index:n.index+o,0:a}))});for(let n of i){let s=n[0],a=t[t.length-1];if(s===a?t.pop():(s==="'"||s==='"'||s==="`")&&t.push(s),!a){if(s==="["){e++;continue}else if(s==="]"){e--;continue}if(e<0)return r.substring(0,n.index-1);if(e===0&&!A2.test(s))return r.substring(0,n.index)}}return r}var S2,A2,$g=P(()=>{u();Dg();zt();S2=/([\[\]'"`])([^\[\]'"`])?/g,A2=/[^"'`\s<>\]]+/});function _2(r,e){let t=r.tailwindConfig.content.extract;return t[e]||t.DEFAULT||Mg[e]||Mg.DEFAULT(r)}function E2(r,e){let t=r.content.transform;return t[e]||t.DEFAULT||Ng[e]||Ng.DEFAULT}function O2(r,e,t,i){Li.has(e)||Li.set(e,new Lg.default({maxSize:25e3}));for(let n of r.split(` +`))if(n=n.trim(),!i.has(n))if(i.add(n),Li.get(e).has(n))for(let s of Li.get(e).get(n))t.add(s);else{let s=e(n).filter(o=>o!=="!*"),a=new Set(s);for(let o of a)t.add(o);Li.get(e).set(n,a)}}function T2(r,e){let t=e.offsets.sort(r),i={base:new Set,defaults:new Set,components:new Set,utilities:new Set,variants:new Set};for(let[n,s]of t)i[n.layer].add(s);return i}function Pl(r){return async e=>{let t={base:null,components:null,utilities:null,variants:null};if(e.walkAtRules(y=>{y.name==="tailwind"&&Object.keys(t).includes(y.params)&&(t[y.params]=y)}),Object.values(t).every(y=>y===null))return e;let i=new Set([...r.candidates??[],gt]),n=new Set;bt.DEBUG&&console.time("Reading changed files");let s=[];for(let y of r.changedContent){let w=E2(r.tailwindConfig,y.extension),k=_2(r,y.extension);s.push([y,{transformer:w,extractor:k}])}let a=500;for(let y=0;y{S=k?await be.promises.readFile(k,"utf8"):S,O2(E(S),T,i,n)}))}bt.DEBUG&&console.timeEnd("Reading changed files");let o=r.classCache.size;bt.DEBUG&&console.time("Generate rules"),bt.DEBUG&&console.time("Sorting candidates");let l=new Set([...i].sort((y,w)=>y===w?0:y{let w=y.raws.tailwind?.parentLayer;return w==="components"?t.components!==null:w==="utilities"?t.utilities!==null:!0});t.variants?(t.variants.before(Qt(b,t.variants.source,{layer:"variants"})),t.variants.remove()):b.length>0&&e.append(Qt(b,e.source,{layer:"variants"})),e.source.end=e.source.end??e.source.start;let v=b.some(y=>y.raws.tailwind?.parentLayer==="utilities");t.utilities&&p.size===0&&!v&&G.warn("content-problems",["No utility classes were detected in your source files. If this is unexpected, double-check the `content` option in your Tailwind CSS configuration.","https://tailwindcss.com/docs/content-configuration"]),bt.DEBUG&&(console.log("Potential classes: ",i.size),console.log("Active contexts: ",es.size)),r.changedContent=[],e.walkAtRules("layer",y=>{Object.keys(t).includes(y.params)&&y.remove()})}}var Lg,bt,Mg,Ng,Li,Bg=P(()=>{u();ft();Lg=pe(Fs());It();os();Be();Rg();$g();bt=Ze,Mg={DEFAULT:qg},Ng={DEFAULT:r=>r,svelte:r=>r.replace(/(?:^|\s)class:/g," ")};Li=new WeakMap});function xs(r){let e=new Map;ee.root({nodes:[r.clone()]}).walkRules(s=>{(0,vs.default)(a=>{a.walkClasses(o=>{let l=o.parent.toString(),c=e.get(l);c||e.set(l,c=new Set),c.add(o.value)})}).processSync(s.selector)});let i=Array.from(e.values(),s=>Array.from(s)),n=i.flat();return Object.assign(n,{groups:i})}function Il(r){return R2.astSync(r)}function Fg(r,e){let t=new Set;for(let i of r)t.add(i.split(e).pop());return Array.from(t)}function jg(r,e){let t=r.tailwindConfig.prefix;return typeof t=="function"?t(e):t+e}function*zg(r){for(yield r;r.parent;)yield r.parent,r=r.parent}function P2(r,e={}){let t=r.nodes;r.nodes=[];let i=r.clone(e);return r.nodes=t,i}function I2(r){for(let e of zg(r))if(r!==e){if(e.type==="root")break;r=P2(e,{nodes:[r]})}return r}function D2(r,e){let t=new Map;return r.walkRules(i=>{for(let a of zg(i))if(a.raws.tailwind?.layer!==void 0)return;let n=I2(i),s=e.offsets.create("user");for(let a of xs(i)){let o=t.get(a)||[];t.set(a,o),o.push([{layer:"user",sort:s,important:!1},n])}}),t}function q2(r,e){for(let t of r){if(e.notClassCache.has(t)||e.applyClassCache.has(t))continue;if(e.classCache.has(t)){e.applyClassCache.set(t,e.classCache.get(t).map(([n,s])=>[n,s.clone()]));continue}let i=Array.from(Yo(t,e));if(i.length===0){e.notClassCache.add(t);continue}e.applyClassCache.set(t,i)}return e.applyClassCache}function $2(r){let e=null;return{get:t=>(e=e||r(),e.get(t)),has:t=>(e=e||r(),e.has(t))}}function L2(r){return{get:e=>r.flatMap(t=>t.get(e)||[]),has:e=>r.some(t=>t.has(e))}}function Ug(r){let e=r.split(/[\s\t\n]+/g);return e[e.length-1]==="!important"?[e.slice(0,-1),!0]:[e,!1]}function Vg(r,e,t){let i=new Set,n=[];if(r.walkAtRules("apply",l=>{let[c]=Ug(l.params);for(let f of c)i.add(f);n.push(l)}),n.length===0)return;let s=L2([t,q2(i,e)]);function a(l,c,f){let d=Il(l),p=Il(c),b=Il(`.${Te(f)}`).nodes[0].nodes[0];return d.each(v=>{let y=new Set;p.each(w=>{let k=!1;w=w.clone(),w.walkClasses(S=>{S.value===b.value&&(k||(S.replaceWith(...v.nodes.map(E=>E.clone())),y.add(w),k=!0))})});for(let w of y){let k=[[]];for(let S of w.nodes)S.type==="combinator"?(k.push(S),k.push([])):k[k.length-1].push(S);w.nodes=[];for(let S of k)Array.isArray(S)&&S.sort((E,T)=>E.type==="tag"&&T.type==="class"?-1:E.type==="class"&&T.type==="tag"?1:E.type==="class"&&T.type==="pseudo"&&T.value.startsWith("::")?-1:E.type==="pseudo"&&E.value.startsWith("::")&&T.type==="class"?1:0),w.nodes=w.nodes.concat(S)}v.replaceWith(...y)}),d.toString()}let o=new Map;for(let l of n){let[c]=o.get(l.parent)||[[],l.source];o.set(l.parent,[c,l.source]);let[f,d]=Ug(l.params);if(l.parent.type==="atrule"){if(l.parent.name==="screen"){let p=l.parent.params;throw l.error(`@apply is not supported within nested at-rules like @screen. We suggest you write this as @apply ${f.map(h=>`${p}:${h}`).join(" ")} instead.`)}throw l.error(`@apply is not supported within nested at-rules like @${l.parent.name}. You can fix this by un-nesting @${l.parent.name}.`)}for(let p of f){if([jg(e,"group"),jg(e,"peer")].includes(p))throw l.error(`@apply should not be used with the '${p}' utility`);if(!s.has(p))throw l.error(`The \`${p}\` class does not exist. If \`${p}\` is a custom class, make sure it is defined within a \`@layer\` directive.`);let h=s.get(p);for(let[,b]of h)b.type!=="atrule"&&b.walkRules(()=>{throw l.error([`The \`${p}\` class cannot be used with \`@apply\` because \`@apply\` does not currently support nested CSS.`,"Rewrite the selector without nesting or configure the `tailwindcss/nesting` plugin:","https://tailwindcss.com/docs/using-with-preprocessors#nesting"].join(` +`))});c.push([p,d,h])}}for(let[l,[c,f]]of o){let d=[];for(let[h,b,v]of c){let y=[h,...Fg([h],e.tailwindConfig.separator)];for(let[w,k]of v){let S=xs(l),E=xs(k);if(E=E.groups.filter(R=>R.some(F=>y.includes(F))).flat(),E=E.concat(Fg(E,e.tailwindConfig.separator)),S.some(R=>E.includes(R)))throw k.error(`You cannot \`@apply\` the \`${h}\` utility here because it creates a circular dependency.`);let B=ee.root({nodes:[k.clone()]});B.walk(R=>{R.source=f}),(k.type!=="atrule"||k.type==="atrule"&&k.name!=="keyframes")&&B.walkRules(R=>{if(!xs(R).some(U=>U===h)){R.remove();return}let F=typeof e.tailwindConfig.important=="string"?e.tailwindConfig.important:null,_=l.raws.tailwind!==void 0&&F&&l.selector.indexOf(F)===0?l.selector.slice(F.length):l.selector;_===""&&(_=l.selector),R.selector=a(_,R.selector,h),F&&_!==l.selector&&(R.selector=is(R.selector,F)),R.walkDecls(U=>{U.important=w.important||b});let Q=(0,vs.default)().astSync(R.selector);Q.each(U=>pr(U)),R.selector=Q.toString()}),!!B.nodes[0]&&d.push([w.sort,B.nodes[0]])}}let p=e.offsets.sort(d).map(h=>h[1]);l.after(p)}for(let l of n)l.parent.nodes.length>1?l.remove():l.parent.remove();Vg(r,e,t)}function Dl(r){return e=>{let t=$2(()=>D2(e,r));Vg(e,r,t)}}var vs,R2,Hg=P(()=>{u();Ot();vs=pe(it());os();fr();Wo();ts();R2=(0,vs.default)()});var Wg=x((nq,ks)=>{u();(function(){"use strict";function r(i,n,s){if(!i)return null;r.caseSensitive||(i=i.toLowerCase());var a=r.threshold===null?null:r.threshold*i.length,o=r.thresholdAbsolute,l;a!==null&&o!==null?l=Math.min(a,o):a!==null?l=a:o!==null?l=o:l=null;var c,f,d,p,h,b=n.length;for(h=0;hs)return s+1;var l=[],c,f,d,p,h;for(c=0;c<=o;c++)l[c]=[c];for(f=0;f<=a;f++)l[0][f]=f;for(c=1;c<=o;c++){for(d=e,p=1,c>s&&(p=c-s),h=o+1,h>s+c&&(h=s+c),f=1;f<=a;f++)fh?l[c][f]=s+1:n.charAt(c-1)===i.charAt(f-1)?l[c][f]=l[c-1][f-1]:l[c][f]=Math.min(l[c-1][f-1]+1,Math.min(l[c][f-1]+1,l[c-1][f]+1)),l[c][f]s)return s+1}return l[o][a]}})()});var Qg=x((sq,Gg)=>{u();var ql="(".charCodeAt(0),$l=")".charCodeAt(0),Ss="'".charCodeAt(0),Ll='"'.charCodeAt(0),Ml="\\".charCodeAt(0),yr="/".charCodeAt(0),Nl=",".charCodeAt(0),Bl=":".charCodeAt(0),As="*".charCodeAt(0),M2="u".charCodeAt(0),N2="U".charCodeAt(0),B2="+".charCodeAt(0),F2=/^[a-f0-9?-]+$/i;Gg.exports=function(r){for(var e=[],t=r,i,n,s,a,o,l,c,f,d=0,p=t.charCodeAt(d),h=t.length,b=[{nodes:e}],v=0,y,w="",k="",S="";d{u();Yg.exports=function r(e,t,i){var n,s,a,o;for(n=0,s=e.length;n{u();function Xg(r,e){var t=r.type,i=r.value,n,s;return e&&(s=e(r))!==void 0?s:t==="word"||t==="space"?i:t==="string"?(n=r.quote||"",n+i+(r.unclosed?"":n)):t==="comment"?"/*"+i+(r.unclosed?"":"*/"):t==="div"?(r.before||"")+i+(r.after||""):Array.isArray(r.nodes)?(n=Zg(r.nodes,e),t!=="function"?n:i+"("+(r.before||"")+n+(r.after||"")+(r.unclosed?"":")")):i}function Zg(r,e){var t,i;if(Array.isArray(r)){for(t="",i=r.length-1;~i;i-=1)t=Xg(r[i],e)+t;return t}return Xg(r,e)}Jg.exports=Zg});var ry=x((lq,ty)=>{u();var Cs="-".charCodeAt(0),_s="+".charCodeAt(0),Fl=".".charCodeAt(0),j2="e".charCodeAt(0),z2="E".charCodeAt(0);function U2(r){var e=r.charCodeAt(0),t;if(e===_s||e===Cs){if(t=r.charCodeAt(1),t>=48&&t<=57)return!0;var i=r.charCodeAt(2);return t===Fl&&i>=48&&i<=57}return e===Fl?(t=r.charCodeAt(1),t>=48&&t<=57):e>=48&&e<=57}ty.exports=function(r){var e=0,t=r.length,i,n,s;if(t===0||!U2(r))return!1;for(i=r.charCodeAt(e),(i===_s||i===Cs)&&e++;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),i===Fl&&n>=48&&n<=57)for(e+=2;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),s=r.charCodeAt(e+2),(i===j2||i===z2)&&(n>=48&&n<=57||(n===_s||n===Cs)&&s>=48&&s<=57))for(e+=n===_s||n===Cs?3:2;e57));)e+=1;return{number:r.slice(0,e),unit:r.slice(e)}}});var ay=x((uq,sy)=>{u();var V2=Qg(),iy=Kg(),ny=ey();function $t(r){return this instanceof $t?(this.nodes=V2(r),this):new $t(r)}$t.prototype.toString=function(){return Array.isArray(this.nodes)?ny(this.nodes):""};$t.prototype.walk=function(r,e){return iy(this.nodes,r,e),this};$t.unit=ry();$t.walk=iy;$t.stringify=ny;sy.exports=$t});function zl(r){return typeof r=="object"&&r!==null}function H2(r,e){let t=kt(e);do if(t.pop(),(0,Mi.default)(r,t)!==void 0)break;while(t.length);return t.length?t:void 0}function br(r){return typeof r=="string"?r:r.reduce((e,t,i)=>t.includes(".")?`${e}[${t}]`:i===0?t:`${e}.${t}`,"")}function ly(r){return r.map(e=>`'${e}'`).join(", ")}function uy(r){return ly(Object.keys(r))}function Ul(r,e,t,i={}){let n=Array.isArray(e)?br(e):e.replace(/^['"]+|['"]+$/g,""),s=Array.isArray(e)?e:kt(n),a=(0,Mi.default)(r.theme,s,t);if(a===void 0){let l=`'${n}' does not exist in your theme config.`,c=s.slice(0,-1),f=(0,Mi.default)(r.theme,c);if(zl(f)){let d=Object.keys(f).filter(h=>Ul(r,[...c,h]).isValid),p=(0,oy.default)(s[s.length-1],d);p?l+=` Did you mean '${br([...c,p])}'?`:d.length>0&&(l+=` '${br(c)}' has the following valid keys: ${ly(d)}`)}else{let d=H2(r.theme,n);if(d){let p=(0,Mi.default)(r.theme,d);zl(p)?l+=` '${br(d)}' has the following keys: ${uy(p)}`:l+=` '${br(d)}' is not an object.`}else l+=` Your theme has the following top-level keys: ${uy(r.theme)}`}return{isValid:!1,error:l}}if(!(typeof a=="string"||typeof a=="number"||typeof a=="function"||a instanceof String||a instanceof Number||Array.isArray(a))){let l=`'${n}' was found but does not resolve to a string.`;if(zl(a)){let c=Object.keys(a).filter(f=>Ul(r,[...s,f]).isValid);c.length&&(l+=` Did you mean something like '${br([...s,c[0]])}'?`)}return{isValid:!1,error:l}}let[o]=s;return{isValid:!0,value:mt(o)(a,i)}}function W2(r,e,t){e=e.map(n=>fy(r,n,t));let i=[""];for(let n of e)n.type==="div"&&n.value===","?i.push(""):i[i.length-1]+=jl.default.stringify(n);return i}function fy(r,e,t){if(e.type==="function"&&t[e.value]!==void 0){let i=W2(r,e.nodes,t);e.type="word",e.value=t[e.value](r,...i)}return e}function G2(r,e,t){return Object.keys(t).some(n=>e.includes(`${n}(`))?(0,jl.default)(e).walk(n=>{fy(r,n,t)}).toString():e}function*Y2(r){r=r.replace(/^['"]+|['"]+$/g,"");let e=r.match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]+))$/),t;yield[r,void 0],e&&(r=e[1],t=e[2],yield[r,t])}function K2(r,e,t){let i=Array.from(Y2(e)).map(([n,s])=>Object.assign(Ul(r,n,t,{opacityValue:s}),{resolvedPath:n,alpha:s}));return i.find(n=>n.isValid)??i[0]}function cy(r){let e=r.tailwindConfig,t={theme:(i,n,...s)=>{let{isValid:a,value:o,error:l,alpha:c}=K2(e,n,s.length?s:void 0);if(!a){let p=i.parent,h=p?.raws.tailwind?.candidate;if(p&&h!==void 0){r.markInvalidUtilityNode(p),p.remove(),G.warn("invalid-theme-key-in-class",[`The utility \`${h}\` contains an invalid theme value and was not generated.`]);return}throw i.error(l)}let f=Xt(o),d=f!==void 0&&typeof f=="function";return(c!==void 0||d)&&(c===void 0&&(c=1),o=Je(f,c,f)),o},screen:(i,n)=>{n=n.replace(/^['"]+/g,"").replace(/['"]+$/g,"");let a=Rt(e.theme.screens).find(({name:o})=>o===n);if(!a)throw i.error(`The '${n}' screen does not exist in your theme.`);return Tt(a)}};return i=>{i.walk(n=>{let s=Q2[n.type];s!==void 0&&(n[s]=G2(n,n[s],t))})}}var Mi,oy,jl,Q2,py=P(()=>{u();Mi=pe(Ra()),oy=pe(Wg());Ci();jl=pe(ay());Zn();Yn();Yi();Lr();Fr();Be();Q2={atrule:"params",decl:"value"}});function dy({tailwindConfig:{theme:r}}){return function(e){e.walkAtRules("screen",t=>{let i=t.params,s=Rt(r.screens).find(({name:a})=>a===i);if(!s)throw t.error(`No \`${i}\` screen found.`);t.name="media",t.params=Tt(s)})}}var hy=P(()=>{u();Zn();Yn()});function X2(r){let e=r.filter(o=>o.type!=="pseudo"||o.nodes.length>0?!0:o.value.startsWith("::")||[":before",":after",":first-line",":first-letter"].includes(o.value)).reverse(),t=new Set(["tag","class","id","attribute"]),i=e.findIndex(o=>t.has(o.type));if(i===-1)return e.reverse().join("").trim();let n=e[i],s=my[n.type]?my[n.type](n):n;e=e.slice(0,i);let a=e.findIndex(o=>o.type==="combinator"&&o.value===">");return a!==-1&&(e.splice(0,a),e.unshift(Es.default.universal())),[s,...e.reverse()].join("").trim()}function J2(r){return Vl.has(r)||Vl.set(r,Z2.transformSync(r)),Vl.get(r)}function Hl({tailwindConfig:r}){return e=>{let t=new Map,i=new Set;if(e.walkAtRules("defaults",n=>{if(n.nodes&&n.nodes.length>0){i.add(n);return}let s=n.params;t.has(s)||t.set(s,new Set),t.get(s).add(n.parent),n.remove()}),we(r,"optimizeUniversalDefaults"))for(let n of i){let s=new Map,a=t.get(n.params)??[];for(let o of a)for(let l of J2(o.selector)){let c=l.includes(":-")||l.includes("::-")||l.includes(":has")?l:"__DEFAULT__",f=s.get(c)??new Set;s.set(c,f),f.add(l)}if(s.size===0){n.remove();continue}for(let[,o]of s){let l=ee.rule({source:n.source});l.selectors=[...o],l.append(n.nodes.map(c=>c.clone())),n.before(l)}n.remove()}else if(i.size){let n=ee.rule({selectors:["*","::before","::after"]});for(let a of i)n.append(a.nodes),n.parent||a.before(n),n.source||(n.source=a.source),a.remove();let s=n.clone({selectors:["::backdrop"]});n.after(s)}}}var Es,my,Z2,Vl,gy=P(()=>{u();Ot();Es=pe(it());ct();my={id(r){return Es.default.attribute({attribute:"id",operator:"=",value:r.value,quoteMark:'"'})}};Z2=(0,Es.default)(r=>r.map(e=>{let t=e.split(i=>i.type==="combinator"&&i.value===" ").pop();return X2(t)})),Vl=new Map});function Wl(){function r(e){let t=null;e.each(i=>{if(!eO.has(i.type)){t=null;return}if(t===null){t=i;return}let n=yy[i.type];i.type==="atrule"&&i.name==="font-face"?t=i:n.every(s=>(i[s]??"").replace(/\s+/g," ")===(t[s]??"").replace(/\s+/g," "))?(i.nodes&&t.append(i.nodes),i.remove()):t=i}),e.each(i=>{i.type==="atrule"&&r(i)})}return e=>{r(e)}}var yy,eO,by=P(()=>{u();yy={atrule:["name","params"],rule:["selector"]},eO=new Set(Object.keys(yy))});function Gl(){return r=>{r.walkRules(e=>{let t=new Map,i=new Set([]),n=new Map;e.walkDecls(s=>{if(s.parent===e){if(t.has(s.prop)){if(t.get(s.prop).value===s.value){i.add(t.get(s.prop)),t.set(s.prop,s);return}n.has(s.prop)||n.set(s.prop,new Set),n.get(s.prop).add(t.get(s.prop)),n.get(s.prop).add(s)}t.set(s.prop,s)}});for(let s of i)s.remove();for(let s of n.values()){let a=new Map;for(let o of s){let l=rO(o.value);l!==null&&(a.has(l)||a.set(l,new Set),a.get(l).add(o))}for(let o of a.values()){let l=Array.from(o).slice(0,-1);for(let c of l)c.remove()}}})}}function rO(r){let e=/^-?\d*.?\d+([\w%]+)?$/g.exec(r);return e?e[1]??tO:null}var tO,wy=P(()=>{u();tO=Symbol("unitless-number")});function iO(r){if(!r.walkAtRules)return;let e=new Set;if(r.walkAtRules("apply",t=>{e.add(t.parent)}),e.size!==0)for(let t of e){let i=[],n=[];for(let s of t.nodes)s.type==="atrule"&&s.name==="apply"?(n.length>0&&(i.push(n),n=[]),i.push([s])):n.push(s);if(n.length>0&&i.push(n),i.length!==1){for(let s of[...i].reverse()){let a=t.clone({nodes:[]});a.append(s),t.after(a)}t.remove()}}}function Os(){return r=>{iO(r)}}var vy=P(()=>{u()});function Ts(r){return async function(e,t){let{tailwindDirectives:i,applyDirectives:n}=Ol(e);Os()(e,t);let s=r({tailwindDirectives:i,applyDirectives:n,registerDependency(a){t.messages.push({plugin:"tailwindcss",parent:t.opts.from,...a})},createContext(a,o){return il(a,o,e)}})(e,t);if(s.tailwindConfig.separator==="-")throw new Error("The '-' character cannot be used as a custom separator in JIT mode due to parsing ambiguity. Please use another character like '_' instead.");Rf(s.tailwindConfig),await Pl(s)(e,t),Os()(e,t),Dl(s)(e,t),cy(s)(e,t),dy(s)(e,t),Hl(s)(e,t),Wl(s)(e,t),Gl(s)(e,t)}}var xy=P(()=>{u();Og();Bg();Hg();py();hy();gy();by();wy();vy();Oi();ct()});function ky(r,e){let t=null,i=null;return r.walkAtRules("config",n=>{if(i=n.source?.input.file??e.opts.from??null,i===null)throw n.error("The `@config` directive cannot be used without setting `from` in your PostCSS config.");if(t)throw n.error("Only one `@config` directive is allowed per file.");let s=n.params.match(/(['"])(.*?)\1/);if(!s)throw n.error("A path is required when using the `@config` directive.");let a=s[2];if(me.isAbsolute(a))throw n.error("The `@config` directive cannot be used with an absolute path.");if(t=me.resolve(me.dirname(i),a),!be.existsSync(t))throw n.error(`The config file at "${a}" does not exist. Make sure the path is correct and the file exists.`);n.remove()}),t||null}var Sy=P(()=>{u();ft();et()});var Ay=x((Wq,Ql)=>{u();Eg();xy();It();Sy();Ql.exports=function(e){return{postcssPlugin:"tailwindcss",plugins:[Ze.DEBUG&&function(t){return console.log(` +`),console.time("JIT TOTAL"),t},async function(t,i){e=ky(t,i)??e;let n=El(e);if(t.type==="document"){let s=t.nodes.filter(a=>a.type==="root");for(let a of s)a.type==="root"&&await Ts(n)(a,i);return}await Ts(n)(t,i)},Ze.DEBUG&&function(t){return console.timeEnd("JIT TOTAL"),console.log(` +`),t}].filter(Boolean)}};Ql.exports.postcss=!0});var _y=x((Gq,Cy)=>{u();Cy.exports=Ay()});var Yl=x((Qq,Ey)=>{u();Ey.exports=()=>["and_chr 114","and_uc 15.5","chrome 114","chrome 113","chrome 109","edge 114","firefox 114","ios_saf 16.5","ios_saf 16.4","ios_saf 16.3","ios_saf 16.1","opera 99","safari 16.5","samsung 21"]});var Rs={};Ge(Rs,{agents:()=>nO,feature:()=>sO});function sO(){return{status:"cr",title:"CSS Feature Queries",stats:{ie:{"6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","5.5":"n"},edge:{"12":"y","13":"y","14":"y","15":"y","16":"y","17":"y","18":"y","79":"y","80":"y","81":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y"},firefox:{"2":"n","3":"n","4":"n","5":"n","6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","12":"n","13":"n","14":"n","15":"n","16":"n","17":"n","18":"n","19":"n","20":"n","21":"n","22":"y","23":"y","24":"y","25":"y","26":"y","27":"y","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","59":"y","60":"y","61":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","82":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y","115":"y","116":"y","117":"y","3.5":"n","3.6":"n"},chrome:{"4":"n","5":"n","6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","12":"n","13":"n","14":"n","15":"n","16":"n","17":"n","18":"n","19":"n","20":"n","21":"n","22":"n","23":"n","24":"n","25":"n","26":"n","27":"n","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","59":"y","60":"y","61":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y","115":"y","116":"y","117":"y"},safari:{"4":"n","5":"n","6":"n","7":"n","8":"n","9":"y","10":"y","11":"y","12":"y","13":"y","14":"y","15":"y","17":"y","9.1":"y","10.1":"y","11.1":"y","12.1":"y","13.1":"y","14.1":"y","15.1":"y","15.2-15.3":"y","15.4":"y","15.5":"y","15.6":"y","16.0":"y","16.1":"y","16.2":"y","16.3":"y","16.4":"y","16.5":"y","16.6":"y",TP:"y","3.1":"n","3.2":"n","5.1":"n","6.1":"n","7.1":"n"},opera:{"9":"n","11":"n","12":"n","15":"y","16":"y","17":"y","18":"y","19":"y","20":"y","21":"y","22":"y","23":"y","24":"y","25":"y","26":"y","27":"y","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","60":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","82":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","12.1":"y","9.5-9.6":"n","10.0-10.1":"n","10.5":"n","10.6":"n","11.1":"n","11.5":"n","11.6":"n"},ios_saf:{"8":"n","17":"y","9.0-9.2":"y","9.3":"y","10.0-10.2":"y","10.3":"y","11.0-11.2":"y","11.3-11.4":"y","12.0-12.1":"y","12.2-12.5":"y","13.0-13.1":"y","13.2":"y","13.3":"y","13.4-13.7":"y","14.0-14.4":"y","14.5-14.8":"y","15.0-15.1":"y","15.2-15.3":"y","15.4":"y","15.5":"y","15.6":"y","16.0":"y","16.1":"y","16.2":"y","16.3":"y","16.4":"y","16.5":"y","16.6":"y","3.2":"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0-7.1":"n","8.1-8.4":"n"},op_mini:{all:"y"},android:{"3":"n","4":"n","114":"y","4.4":"y","4.4.3-4.4.4":"y","2.1":"n","2.2":"n","2.3":"n","4.1":"n","4.2-4.3":"n"},bb:{"7":"n","10":"n"},op_mob:{"10":"n","11":"n","12":"n","73":"y","11.1":"n","11.5":"n","12.1":"n"},and_chr:{"114":"y"},and_ff:{"115":"y"},ie_mob:{"10":"n","11":"n"},and_uc:{"15.5":"y"},samsung:{"4":"y","20":"y","21":"y","5.0-5.4":"y","6.2-6.4":"y","7.2-7.4":"y","8.2":"y","9.2":"y","10.1":"y","11.1-11.2":"y","12.0":"y","13.0":"y","14.0":"y","15.0":"y","16.0":"y","17.0":"y","18.0":"y","19.0":"y"},and_qq:{"13.1":"y"},baidu:{"13.18":"y"},kaios:{"2.5":"y","3.0-3.1":"y"}}}}var nO,Ps=P(()=>{u();nO={ie:{prefix:"ms"},edge:{prefix:"webkit",prefix_exceptions:{"12":"ms","13":"ms","14":"ms","15":"ms","16":"ms","17":"ms","18":"ms"}},firefox:{prefix:"moz"},chrome:{prefix:"webkit"},safari:{prefix:"webkit"},opera:{prefix:"webkit",prefix_exceptions:{"9":"o","11":"o","12":"o","9.5-9.6":"o","10.0-10.1":"o","10.5":"o","10.6":"o","11.1":"o","11.5":"o","11.6":"o","12.1":"o"}},ios_saf:{prefix:"webkit"},op_mini:{prefix:"o"},android:{prefix:"webkit"},bb:{prefix:"webkit"},op_mob:{prefix:"o",prefix_exceptions:{"73":"webkit"}},and_chr:{prefix:"webkit"},and_ff:{prefix:"moz"},ie_mob:{prefix:"ms"},and_uc:{prefix:"webkit",prefix_exceptions:{"15.5":"webkit"}},samsung:{prefix:"webkit"},and_qq:{prefix:"webkit"},baidu:{prefix:"webkit"},kaios:{prefix:"moz"}}});var Oy=x(()=>{u()});var _e=x((Xq,Lt)=>{u();var{list:Kl}=$e();Lt.exports.error=function(r){let e=new Error(r);throw e.autoprefixer=!0,e};Lt.exports.uniq=function(r){return[...new Set(r)]};Lt.exports.removeNote=function(r){return r.includes(" ")?r.split(" ")[0]:r};Lt.exports.escapeRegexp=function(r){return r.replace(/[$()*+-.?[\\\]^{|}]/g,"\\$&")};Lt.exports.regexp=function(r,e=!0){return e&&(r=this.escapeRegexp(r)),new RegExp(`(^|[\\s,(])(${r}($|[\\s(,]))`,"gi")};Lt.exports.editList=function(r,e){let t=Kl.comma(r),i=e(t,[]);if(t===i)return r;let n=r.match(/,\s*/);return n=n?n[0]:", ",i.join(n)};Lt.exports.splitSelector=function(r){return Kl.comma(r).map(e=>Kl.space(e).map(t=>t.split(/(?=\.|#)/g)))}});var Mt=x((Zq,Py)=>{u();var aO=Yl(),Ty=(Ps(),Rs).agents,oO=_e(),Ry=class{static prefixes(){if(this.prefixesCache)return this.prefixesCache;this.prefixesCache=[];for(let e in Ty)this.prefixesCache.push(`-${Ty[e].prefix}-`);return this.prefixesCache=oO.uniq(this.prefixesCache).sort((e,t)=>t.length-e.length),this.prefixesCache}static withPrefix(e){return this.prefixesRegexp||(this.prefixesRegexp=new RegExp(this.prefixes().join("|"))),this.prefixesRegexp.test(e)}constructor(e,t,i,n){this.data=e,this.options=i||{},this.browserslistOpts=n||{},this.selected=this.parse(t)}parse(e){let t={};for(let i in this.browserslistOpts)t[i]=this.browserslistOpts[i];return t.path=this.options.from,aO(e,t)}prefix(e){let[t,i]=e.split(" "),n=this.data[t],s=n.prefix_exceptions&&n.prefix_exceptions[i];return s||(s=n.prefix),`-${s}-`}isSelected(e){return this.selected.includes(e)}};Py.exports=Ry});var Ni=x((Jq,Iy)=>{u();Iy.exports={prefix(r){let e=r.match(/^(-\w+-)/);return e?e[0]:""},unprefixed(r){return r.replace(/^-\w+-/,"")}}});var wr=x((e$,qy)=>{u();var lO=Mt(),Dy=Ni(),uO=_e();function Xl(r,e){let t=new r.constructor;for(let i of Object.keys(r||{})){let n=r[i];i==="parent"&&typeof n=="object"?e&&(t[i]=e):i==="source"||i===null?t[i]=n:Array.isArray(n)?t[i]=n.map(s=>Xl(s,t)):i!=="_autoprefixerPrefix"&&i!=="_autoprefixerValues"&&i!=="proxyCache"&&(typeof n=="object"&&n!==null&&(n=Xl(n,t)),t[i]=n)}return t}var Is=class{static hack(e){return this.hacks||(this.hacks={}),e.names.map(t=>(this.hacks[t]=e,this.hacks[t]))}static load(e,t,i){let n=this.hacks&&this.hacks[e];return n?new n(e,t,i):new this(e,t,i)}static clone(e,t){let i=Xl(e);for(let n in t)i[n]=t[n];return i}constructor(e,t,i){this.prefixes=t,this.name=e,this.all=i}parentPrefix(e){let t;return typeof e._autoprefixerPrefix!="undefined"?t=e._autoprefixerPrefix:e.type==="decl"&&e.prop[0]==="-"?t=Dy.prefix(e.prop):e.type==="root"?t=!1:e.type==="rule"&&e.selector.includes(":-")&&/:(-\w+-)/.test(e.selector)?t=e.selector.match(/:(-\w+-)/)[1]:e.type==="atrule"&&e.name[0]==="-"?t=Dy.prefix(e.name):t=this.parentPrefix(e.parent),lO.prefixes().includes(t)||(t=!1),e._autoprefixerPrefix=t,e._autoprefixerPrefix}process(e,t){if(!this.check(e))return;let i=this.parentPrefix(e),n=this.prefixes.filter(a=>!i||i===uO.removeNote(a)),s=[];for(let a of n)this.add(e,a,s.concat([a]),t)&&s.push(a);return s}clone(e,t){return Is.clone(e,t)}};qy.exports=Is});var j=x((t$,My)=>{u();var fO=wr(),cO=Mt(),$y=_e(),Ly=class extends fO{check(){return!0}prefixed(e,t){return t+e}normalize(e){return e}otherPrefixes(e,t){for(let i of cO.prefixes())if(i!==t&&e.includes(i))return!0;return!1}set(e,t){return e.prop=this.prefixed(e.prop,t),e}needCascade(e){return e._autoprefixerCascade||(e._autoprefixerCascade=this.all.options.cascade!==!1&&e.raw("before").includes(` +`)),e._autoprefixerCascade}maxPrefixed(e,t){if(t._autoprefixerMax)return t._autoprefixerMax;let i=0;for(let n of e)n=$y.removeNote(n),n.length>i&&(i=n.length);return t._autoprefixerMax=i,t._autoprefixerMax}calcBefore(e,t,i=""){let s=this.maxPrefixed(e,t)-$y.removeNote(i).length,a=t.raw("before");return s>0&&(a+=Array(s).fill(" ").join("")),a}restoreBefore(e){let t=e.raw("before").split(` +`),i=t[t.length-1];this.all.group(e).up(n=>{let s=n.raw("before").split(` +`),a=s[s.length-1];a.lengtha.prop===n.prop&&a.value===n.value)))return this.needCascade(e)&&(n.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,n)}isAlready(e,t){let i=this.all.group(e).up(n=>n.prop===t);return i||(i=this.all.group(e).down(n=>n.prop===t)),i}add(e,t,i,n){let s=this.prefixed(e.prop,t);if(!(this.isAlready(e,s)||this.otherPrefixes(e.value,t)))return this.insert(e,t,i,n)}process(e,t){if(!this.needCascade(e)){super.process(e,t);return}let i=super.process(e,t);!i||!i.length||(this.restoreBefore(e),e.raws.before=this.calcBefore(i,e))}old(e,t){return[this.prefixed(e,t)]}};My.exports=Ly});var By=x((r$,Ny)=>{u();Ny.exports=function r(e){return{mul:t=>new r(e*t),div:t=>new r(e/t),simplify:()=>new r(e),toString:()=>e.toString()}}});var zy=x((i$,jy)=>{u();var pO=By(),dO=wr(),Zl=_e(),hO=/(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi,mO=/(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i,Fy=class extends dO{prefixName(e,t){return e==="-moz-"?t+"--moz-device-pixel-ratio":e+t+"-device-pixel-ratio"}prefixQuery(e,t,i,n,s){return n=new pO(n),s==="dpi"?n=n.div(96):s==="dpcm"&&(n=n.mul(2.54).div(96)),n=n.simplify(),e==="-o-"&&(n=n.n+"/"+n.d),this.prefixName(e,t)+i+n}clean(e){if(!this.bad){this.bad=[];for(let t of this.prefixes)this.bad.push(this.prefixName(t,"min")),this.bad.push(this.prefixName(t,"max"))}e.params=Zl.editList(e.params,t=>t.filter(i=>this.bad.every(n=>!i.includes(n))))}process(e){let t=this.parentPrefix(e),i=t?[t]:this.prefixes;e.params=Zl.editList(e.params,(n,s)=>{for(let a of n){if(!a.includes("min-resolution")&&!a.includes("max-resolution")){s.push(a);continue}for(let o of i){let l=a.replace(hO,c=>{let f=c.match(mO);return this.prefixQuery(o,f[1],f[2],f[3],f[4])});s.push(l)}s.push(a)}return Zl.uniq(s)})}};jy.exports=Fy});var Vy=x((n$,Uy)=>{u();var Jl="(".charCodeAt(0),eu=")".charCodeAt(0),Ds="'".charCodeAt(0),tu='"'.charCodeAt(0),ru="\\".charCodeAt(0),vr="/".charCodeAt(0),iu=",".charCodeAt(0),nu=":".charCodeAt(0),qs="*".charCodeAt(0),gO="u".charCodeAt(0),yO="U".charCodeAt(0),bO="+".charCodeAt(0),wO=/^[a-f0-9?-]+$/i;Uy.exports=function(r){for(var e=[],t=r,i,n,s,a,o,l,c,f,d=0,p=t.charCodeAt(d),h=t.length,b=[{nodes:e}],v=0,y,w="",k="",S="";d{u();Hy.exports=function r(e,t,i){var n,s,a,o;for(n=0,s=e.length;n{u();function Gy(r,e){var t=r.type,i=r.value,n,s;return e&&(s=e(r))!==void 0?s:t==="word"||t==="space"?i:t==="string"?(n=r.quote||"",n+i+(r.unclosed?"":n)):t==="comment"?"/*"+i+(r.unclosed?"":"*/"):t==="div"?(r.before||"")+i+(r.after||""):Array.isArray(r.nodes)?(n=Qy(r.nodes,e),t!=="function"?n:i+"("+(r.before||"")+n+(r.after||"")+(r.unclosed?"":")")):i}function Qy(r,e){var t,i;if(Array.isArray(r)){for(t="",i=r.length-1;~i;i-=1)t=Gy(r[i],e)+t;return t}return Gy(r,e)}Yy.exports=Qy});var Zy=x((o$,Xy)=>{u();var $s="-".charCodeAt(0),Ls="+".charCodeAt(0),su=".".charCodeAt(0),vO="e".charCodeAt(0),xO="E".charCodeAt(0);function kO(r){var e=r.charCodeAt(0),t;if(e===Ls||e===$s){if(t=r.charCodeAt(1),t>=48&&t<=57)return!0;var i=r.charCodeAt(2);return t===su&&i>=48&&i<=57}return e===su?(t=r.charCodeAt(1),t>=48&&t<=57):e>=48&&e<=57}Xy.exports=function(r){var e=0,t=r.length,i,n,s;if(t===0||!kO(r))return!1;for(i=r.charCodeAt(e),(i===Ls||i===$s)&&e++;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),i===su&&n>=48&&n<=57)for(e+=2;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),s=r.charCodeAt(e+2),(i===vO||i===xO)&&(n>=48&&n<=57||(n===Ls||n===$s)&&s>=48&&s<=57))for(e+=n===Ls||n===$s?3:2;e57));)e+=1;return{number:r.slice(0,e),unit:r.slice(e)}}});var Ms=x((l$,tb)=>{u();var SO=Vy(),Jy=Wy(),eb=Ky();function Nt(r){return this instanceof Nt?(this.nodes=SO(r),this):new Nt(r)}Nt.prototype.toString=function(){return Array.isArray(this.nodes)?eb(this.nodes):""};Nt.prototype.walk=function(r,e){return Jy(this.nodes,r,e),this};Nt.unit=Zy();Nt.walk=Jy;Nt.stringify=eb;tb.exports=Nt});var ab=x((u$,sb)=>{u();var{list:AO}=$e(),rb=Ms(),CO=Mt(),ib=Ni(),nb=class{constructor(e){this.props=["transition","transition-property"],this.prefixes=e}add(e,t){let i,n,s=this.prefixes.add[e.prop],a=this.ruleVendorPrefixes(e),o=a||s&&s.prefixes||[],l=this.parse(e.value),c=l.map(h=>this.findProp(h)),f=[];if(c.some(h=>h[0]==="-"))return;for(let h of l){if(n=this.findProp(h),n[0]==="-")continue;let b=this.prefixes.add[n];if(!(!b||!b.prefixes))for(i of b.prefixes){if(a&&!a.some(y=>i.includes(y)))continue;let v=this.prefixes.prefixed(n,i);v!=="-ms-transform"&&!c.includes(v)&&(this.disabled(n,i)||f.push(this.clone(n,v,h)))}}l=l.concat(f);let d=this.stringify(l),p=this.stringify(this.cleanFromUnprefixed(l,"-webkit-"));if(o.includes("-webkit-")&&this.cloneBefore(e,`-webkit-${e.prop}`,p),this.cloneBefore(e,e.prop,p),o.includes("-o-")){let h=this.stringify(this.cleanFromUnprefixed(l,"-o-"));this.cloneBefore(e,`-o-${e.prop}`,h)}for(i of o)if(i!=="-webkit-"&&i!=="-o-"){let h=this.stringify(this.cleanOtherPrefixes(l,i));this.cloneBefore(e,i+e.prop,h)}d!==e.value&&!this.already(e,e.prop,d)&&(this.checkForWarning(t,e),e.cloneBefore(),e.value=d)}findProp(e){let t=e[0].value;if(/^\d/.test(t)){for(let[i,n]of e.entries())if(i!==0&&n.type==="word")return n.value}return t}already(e,t,i){return e.parent.some(n=>n.prop===t&&n.value===i)}cloneBefore(e,t,i){this.already(e,t,i)||e.cloneBefore({prop:t,value:i})}checkForWarning(e,t){if(t.prop!=="transition-property")return;let i=!1,n=!1;t.parent.each(s=>{if(s.type!=="decl"||s.prop.indexOf("transition-")!==0)return;let a=AO.comma(s.value);if(s.prop==="transition-property"){a.forEach(o=>{let l=this.prefixes.add[o];l&&l.prefixes&&l.prefixes.length>0&&(i=!0)});return}return n=n||a.length>1,!1}),i&&n&&t.warn(e,"Replace transition-property to transition, because Autoprefixer could not support any cases of transition-property and other transition-*")}remove(e){let t=this.parse(e.value);t=t.filter(a=>{let o=this.prefixes.remove[this.findProp(a)];return!o||!o.remove});let i=this.stringify(t);if(e.value===i)return;if(t.length===0){e.remove();return}let n=e.parent.some(a=>a.prop===e.prop&&a.value===i),s=e.parent.some(a=>a!==e&&a.prop===e.prop&&a.value.length>i.length);if(n||s){e.remove();return}e.value=i}parse(e){let t=rb(e),i=[],n=[];for(let s of t.nodes)n.push(s),s.type==="div"&&s.value===","&&(i.push(n),n=[]);return i.push(n),i.filter(s=>s.length>0)}stringify(e){if(e.length===0)return"";let t=[];for(let i of e)i[i.length-1].type!=="div"&&i.push(this.div(e)),t=t.concat(i);return t[0].type==="div"&&(t=t.slice(1)),t[t.length-1].type==="div"&&(t=t.slice(0,-2+1||void 0)),rb.stringify({nodes:t})}clone(e,t,i){let n=[],s=!1;for(let a of i)!s&&a.type==="word"&&a.value===e?(n.push({type:"word",value:t}),s=!0):n.push(a);return n}div(e){for(let t of e)for(let i of t)if(i.type==="div"&&i.value===",")return i;return{type:"div",value:",",after:" "}}cleanOtherPrefixes(e,t){return e.filter(i=>{let n=ib.prefix(this.findProp(i));return n===""||n===t})}cleanFromUnprefixed(e,t){let i=e.map(s=>this.findProp(s)).filter(s=>s.slice(0,t.length)===t).map(s=>this.prefixes.unprefixed(s)),n=[];for(let s of e){let a=this.findProp(s),o=ib.prefix(a);!i.includes(a)&&(o===t||o==="")&&n.push(s)}return n}disabled(e,t){let i=["order","justify-content","align-self","align-content"];if(e.includes("flex")||i.includes(e)){if(this.prefixes.options.flexbox===!1)return!0;if(this.prefixes.options.flexbox==="no-2009")return t.includes("2009")}}ruleVendorPrefixes(e){let{parent:t}=e;if(t.type!=="rule")return!1;if(!t.selector.includes(":-"))return!1;let i=CO.prefixes().filter(n=>t.selector.includes(":"+n));return i.length>0?i:!1}};sb.exports=nb});var xr=x((f$,lb)=>{u();var _O=_e(),ob=class{constructor(e,t,i,n){this.unprefixed=e,this.prefixed=t,this.string=i||t,this.regexp=n||_O.regexp(t)}check(e){return e.includes(this.string)?!!e.match(this.regexp):!1}};lb.exports=ob});var He=x((c$,fb)=>{u();var EO=wr(),OO=xr(),TO=Ni(),RO=_e(),ub=class extends EO{static save(e,t){let i=t.prop,n=[];for(let s in t._autoprefixerValues){let a=t._autoprefixerValues[s];if(a===t.value)continue;let o,l=TO.prefix(i);if(l==="-pie-")continue;if(l===s){o=t.value=a,n.push(o);continue}let c=e.prefixed(i,s),f=t.parent;if(!f.every(b=>b.prop!==c)){n.push(o);continue}let d=a.replace(/\s+/," ");if(f.some(b=>b.prop===t.prop&&b.value.replace(/\s+/," ")===d)){n.push(o);continue}let h=this.clone(t,{value:a});o=t.parent.insertBefore(t,h),n.push(o)}return n}check(e){let t=e.value;return t.includes(this.name)?!!t.match(this.regexp()):!1}regexp(){return this.regexpCache||(this.regexpCache=RO.regexp(this.name))}replace(e,t){return e.replace(this.regexp(),`$1${t}$2`)}value(e){return e.raws.value&&e.raws.value.value===e.value?e.raws.value.raw:e.value}add(e,t){e._autoprefixerValues||(e._autoprefixerValues={});let i=e._autoprefixerValues[t]||this.value(e),n;do if(n=i,i=this.replace(i,t),i===!1)return;while(i!==n);e._autoprefixerValues[t]=i}old(e){return new OO(this.name,e+this.name)}};fb.exports=ub});var Bt=x((p$,cb)=>{u();cb.exports={}});var ou=x((d$,hb)=>{u();var pb=Ms(),PO=He(),IO=Bt().insertAreas,DO=/(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i,qO=/(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i,$O=/(!\s*)?autoprefixer:\s*ignore\s+next/i,LO=/(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i,MO=["width","height","min-width","max-width","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size"];function au(r){return r.parent.some(e=>e.prop==="grid-template"||e.prop==="grid-template-areas")}function NO(r){let e=r.parent.some(i=>i.prop==="grid-template-rows"),t=r.parent.some(i=>i.prop==="grid-template-columns");return e&&t}var db=class{constructor(e){this.prefixes=e}add(e,t){let i=this.prefixes.add["@resolution"],n=this.prefixes.add["@keyframes"],s=this.prefixes.add["@viewport"],a=this.prefixes.add["@supports"];e.walkAtRules(f=>{if(f.name==="keyframes"){if(!this.disabled(f,t))return n&&n.process(f)}else if(f.name==="viewport"){if(!this.disabled(f,t))return s&&s.process(f)}else if(f.name==="supports"){if(this.prefixes.options.supports!==!1&&!this.disabled(f,t))return a.process(f)}else if(f.name==="media"&&f.params.includes("-resolution")&&!this.disabled(f,t))return i&&i.process(f)}),e.walkRules(f=>{if(!this.disabled(f,t))return this.prefixes.add.selectors.map(d=>d.process(f,t))});function o(f){return f.parent.nodes.some(d=>{if(d.type!=="decl")return!1;let p=d.prop==="display"&&/(inline-)?grid/.test(d.value),h=d.prop.startsWith("grid-template"),b=/^grid-([A-z]+-)?gap/.test(d.prop);return p||h||b})}function l(f){return f.parent.some(d=>d.prop==="display"&&/(inline-)?flex/.test(d.value))}let c=this.gridStatus(e,t)&&this.prefixes.add["grid-area"]&&this.prefixes.add["grid-area"].prefixes;return e.walkDecls(f=>{if(this.disabledDecl(f,t))return;let d=f.parent,p=f.prop,h=f.value;if(p==="grid-row-span"){t.warn("grid-row-span is not part of final Grid Layout. Use grid-row.",{node:f});return}else if(p==="grid-column-span"){t.warn("grid-column-span is not part of final Grid Layout. Use grid-column.",{node:f});return}else if(p==="display"&&h==="box"){t.warn("You should write display: flex by final spec instead of display: box",{node:f});return}else if(p==="text-emphasis-position")(h==="under"||h==="over")&&t.warn("You should use 2 values for text-emphasis-position For example, `under left` instead of just `under`.",{node:f});else if(/^(align|justify|place)-(items|content)$/.test(p)&&l(f))(h==="start"||h==="end")&&t.warn(`${h} value has mixed support, consider using flex-${h} instead`,{node:f});else if(p==="text-decoration-skip"&&h==="ink")t.warn("Replace text-decoration-skip: ink to text-decoration-skip-ink: auto, because spec had been changed",{node:f});else{if(c&&this.gridStatus(f,t))if(f.value==="subgrid"&&t.warn("IE does not support subgrid",{node:f}),/^(align|justify|place)-items$/.test(p)&&o(f)){let v=p.replace("-items","-self");t.warn(`IE does not support ${p} on grid containers. Try using ${v} on child elements instead: ${f.parent.selector} > * { ${v}: ${f.value} }`,{node:f})}else if(/^(align|justify|place)-content$/.test(p)&&o(f))t.warn(`IE does not support ${f.prop} on grid containers`,{node:f});else if(p==="display"&&f.value==="contents"){t.warn("Please do not use display: contents; if you have grid setting enabled",{node:f});return}else if(f.prop==="grid-gap"){let v=this.gridStatus(f,t);v==="autoplace"&&!NO(f)&&!au(f)?t.warn("grid-gap only works if grid-template(-areas) is being used or both rows and columns have been declared and cells have not been manually placed inside the explicit grid",{node:f}):(v===!0||v==="no-autoplace")&&!au(f)&&t.warn("grid-gap only works if grid-template(-areas) is being used",{node:f})}else if(p==="grid-auto-columns"){t.warn("grid-auto-columns is not supported by IE",{node:f});return}else if(p==="grid-auto-rows"){t.warn("grid-auto-rows is not supported by IE",{node:f});return}else if(p==="grid-auto-flow"){let v=d.some(w=>w.prop==="grid-template-rows"),y=d.some(w=>w.prop==="grid-template-columns");au(f)?t.warn("grid-auto-flow is not supported by IE",{node:f}):h.includes("dense")?t.warn("grid-auto-flow: dense is not supported by IE",{node:f}):!v&&!y&&t.warn("grid-auto-flow works only if grid-template-rows and grid-template-columns are present in the same rule",{node:f});return}else if(h.includes("auto-fit")){t.warn("auto-fit value is not supported by IE",{node:f,word:"auto-fit"});return}else if(h.includes("auto-fill")){t.warn("auto-fill value is not supported by IE",{node:f,word:"auto-fill"});return}else p.startsWith("grid-template")&&h.includes("[")&&t.warn("Autoprefixer currently does not support line names. Try using grid-template-areas instead.",{node:f,word:"["});if(h.includes("radial-gradient"))if(qO.test(f.value))t.warn("Gradient has outdated direction syntax. New syntax is like `closest-side at 0 0` instead of `0 0, closest-side`.",{node:f});else{let v=pb(h);for(let y of v.nodes)if(y.type==="function"&&y.value==="radial-gradient")for(let w of y.nodes)w.type==="word"&&(w.value==="cover"?t.warn("Gradient has outdated direction syntax. Replace `cover` to `farthest-corner`.",{node:f}):w.value==="contain"&&t.warn("Gradient has outdated direction syntax. Replace `contain` to `closest-side`.",{node:f}))}h.includes("linear-gradient")&&DO.test(h)&&t.warn("Gradient has outdated direction syntax. New syntax is like `to left` instead of `right`.",{node:f})}MO.includes(f.prop)&&(f.value.includes("-fill-available")||(f.value.includes("fill-available")?t.warn("Replace fill-available to stretch, because spec had been changed",{node:f}):f.value.includes("fill")&&pb(h).nodes.some(y=>y.type==="word"&&y.value==="fill")&&t.warn("Replace fill to stretch, because spec had been changed",{node:f})));let b;if(f.prop==="transition"||f.prop==="transition-property")return this.prefixes.transition.add(f,t);if(f.prop==="align-self"){if(this.displayType(f)!=="grid"&&this.prefixes.options.flexbox!==!1&&(b=this.prefixes.add["align-self"],b&&b.prefixes&&b.process(f)),this.gridStatus(f,t)!==!1&&(b=this.prefixes.add["grid-row-align"],b&&b.prefixes))return b.process(f,t)}else if(f.prop==="justify-self"){if(this.gridStatus(f,t)!==!1&&(b=this.prefixes.add["grid-column-align"],b&&b.prefixes))return b.process(f,t)}else if(f.prop==="place-self"){if(b=this.prefixes.add["place-self"],b&&b.prefixes&&this.gridStatus(f,t)!==!1)return b.process(f,t)}else if(b=this.prefixes.add[f.prop],b&&b.prefixes)return b.process(f,t)}),this.gridStatus(e,t)&&IO(e,this.disabled),e.walkDecls(f=>{if(this.disabledValue(f,t))return;let d=this.prefixes.unprefixed(f.prop),p=this.prefixes.values("add",d);if(Array.isArray(p))for(let h of p)h.process&&h.process(f,t);PO.save(this.prefixes,f)})}remove(e,t){let i=this.prefixes.remove["@resolution"];e.walkAtRules((n,s)=>{this.prefixes.remove[`@${n.name}`]?this.disabled(n,t)||n.parent.removeChild(s):n.name==="media"&&n.params.includes("-resolution")&&i&&i.clean(n)});for(let n of this.prefixes.remove.selectors)e.walkRules((s,a)=>{n.check(s)&&(this.disabled(s,t)||s.parent.removeChild(a))});return e.walkDecls((n,s)=>{if(this.disabled(n,t))return;let a=n.parent,o=this.prefixes.unprefixed(n.prop);if((n.prop==="transition"||n.prop==="transition-property")&&this.prefixes.transition.remove(n),this.prefixes.remove[n.prop]&&this.prefixes.remove[n.prop].remove){let l=this.prefixes.group(n).down(c=>this.prefixes.normalize(c.prop)===o);if(o==="flex-flow"&&(l=!0),n.prop==="-webkit-box-orient"){let c={"flex-direction":!0,"flex-flow":!0};if(!n.parent.some(f=>c[f.prop]))return}if(l&&!this.withHackValue(n)){n.raw("before").includes(` +`)&&this.reduceSpaces(n),a.removeChild(s);return}}for(let l of this.prefixes.values("remove",o)){if(!l.check||!l.check(n.value))continue;if(o=l.unprefixed,this.prefixes.group(n).down(f=>f.value.includes(o))){a.removeChild(s);return}}})}withHackValue(e){return e.prop==="-webkit-background-clip"&&e.value==="text"}disabledValue(e,t){return this.gridStatus(e,t)===!1&&e.type==="decl"&&e.prop==="display"&&e.value.includes("grid")||this.prefixes.options.flexbox===!1&&e.type==="decl"&&e.prop==="display"&&e.value.includes("flex")||e.type==="decl"&&e.prop==="content"?!0:this.disabled(e,t)}disabledDecl(e,t){if(this.gridStatus(e,t)===!1&&e.type==="decl"&&(e.prop.includes("grid")||e.prop==="justify-items"))return!0;if(this.prefixes.options.flexbox===!1&&e.type==="decl"){let i=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||i.includes(e.prop))return!0}return this.disabled(e,t)}disabled(e,t){if(!e)return!1;if(e._autoprefixerDisabled!==void 0)return e._autoprefixerDisabled;if(e.parent){let n=e.prev();if(n&&n.type==="comment"&&$O.test(n.text))return e._autoprefixerDisabled=!0,e._autoprefixerSelfDisabled=!0,!0}let i=null;if(e.nodes){let n;e.each(s=>{s.type==="comment"&&/(!\s*)?autoprefixer:\s*(off|on)/i.test(s.text)&&(typeof n!="undefined"?t.warn("Second Autoprefixer control comment was ignored. Autoprefixer applies control comment to whole block, not to next rules.",{node:s}):n=/on/i.test(s.text))}),n!==void 0&&(i=!n)}if(!e.nodes||i===null)if(e.parent){let n=this.disabled(e.parent,t);e.parent._autoprefixerSelfDisabled===!0?i=!1:i=n}else i=!1;return e._autoprefixerDisabled=i,i}reduceSpaces(e){let t=!1;if(this.prefixes.group(e).up(()=>(t=!0,!0)),t)return;let i=e.raw("before").split(` +`),n=i[i.length-1].length,s=!1;this.prefixes.group(e).down(a=>{i=a.raw("before").split(` +`);let o=i.length-1;i[o].length>n&&(s===!1&&(s=i[o].length-n),i[o]=i[o].slice(0,-s),a.raws.before=i.join(` +`))})}displayType(e){for(let t of e.parent.nodes)if(t.prop==="display"){if(t.value.includes("flex"))return"flex";if(t.value.includes("grid"))return"grid"}return!1}gridStatus(e,t){if(!e)return!1;if(e._autoprefixerGridStatus!==void 0)return e._autoprefixerGridStatus;let i=null;if(e.nodes){let n;e.each(s=>{if(s.type==="comment"&&LO.test(s.text)){let a=/:\s*autoplace/i.test(s.text),o=/no-autoplace/i.test(s.text);typeof n!="undefined"?t.warn("Second Autoprefixer grid control comment was ignored. Autoprefixer applies control comments to the whole block, not to the next rules.",{node:s}):a?n="autoplace":o?n=!0:n=/on/i.test(s.text)}}),n!==void 0&&(i=n)}if(e.type==="atrule"&&e.name==="supports"){let n=e.params;n.includes("grid")&&n.includes("auto")&&(i=!1)}if(!e.nodes||i===null)if(e.parent){let n=this.gridStatus(e.parent,t);e.parent._autoprefixerSelfDisabled===!0?i=!1:i=n}else typeof this.prefixes.options.grid!="undefined"?i=this.prefixes.options.grid:typeof m.env.AUTOPREFIXER_GRID!="undefined"?m.env.AUTOPREFIXER_GRID==="autoplace"?i="autoplace":i=!0:i=!1;return e._autoprefixerGridStatus=i,i}};hb.exports=db});var gb=x((h$,mb)=>{u();mb.exports={A:{A:{"2":"K E F G A B JC"},B:{"1":"C L M H N D O P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B","2":"0 1 KC zB J K E F G A B C L M H N D O k l LC MC"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B","2":"0 1 2 3 4 5 6 7 J K E F G A B C L M H N D O k l"},E:{"1":"G A B C L M H D RC 6B vB wB 7B SC TC 8B 9B xB AC yB BC CC DC EC FC GC UC","2":"0 J K E F NC 5B OC PC QC"},F:{"1":"1 2 3 4 5 6 7 8 9 H N D O k l AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j wB","2":"G B C VC WC XC YC vB HC ZC"},G:{"1":"D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC 8B 9B xB AC yB BC CC DC EC FC GC","2":"F 5B aC IC bC cC dC eC"},H:{"1":"uC"},I:{"1":"I zC 0C","2":"zB J vC wC xC yC IC"},J:{"2":"E A"},K:{"1":"m","2":"A B C vB HC wB"},L:{"1":"I"},M:{"1":"uB"},N:{"2":"A B"},O:{"1":"xB"},P:{"1":"J k l 1C 2C 3C 4C 5C 6B 6C 7C 8C 9C AD yB BD CD DD"},Q:{"1":"7B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Feature Queries"}});var vb=x((m$,wb)=>{u();function yb(r){return r[r.length-1]}var bb={parse(r){let e=[""],t=[e];for(let i of r){if(i==="("){e=[""],yb(t).push(e),t.push(e);continue}if(i===")"){t.pop(),e=yb(t),e.push("");continue}e[e.length-1]+=i}return t[0]},stringify(r){let e="";for(let t of r){if(typeof t=="object"){e+=`(${bb.stringify(t)})`;continue}e+=t}return e}};wb.exports=bb});var Cb=x((g$,Ab)=>{u();var BO=gb(),{feature:FO}=(Ps(),Rs),{parse:jO}=$e(),zO=Mt(),lu=vb(),UO=He(),VO=_e(),xb=FO(BO),kb=[];for(let r in xb.stats){let e=xb.stats[r];for(let t in e){let i=e[t];/y/.test(i)&&kb.push(r+" "+t)}}var Sb=class{constructor(e,t){this.Prefixes=e,this.all=t}prefixer(){if(this.prefixerCache)return this.prefixerCache;let e=this.all.browsers.selected.filter(i=>kb.includes(i)),t=new zO(this.all.browsers.data,e,this.all.options);return this.prefixerCache=new this.Prefixes(this.all.data,t,this.all.options),this.prefixerCache}parse(e){let t=e.split(":"),i=t[0],n=t[1];return n||(n=""),[i.trim(),n.trim()]}virtual(e){let[t,i]=this.parse(e),n=jO("a{}").first;return n.append({prop:t,value:i,raws:{before:""}}),n}prefixed(e){let t=this.virtual(e);if(this.disabled(t.first))return t.nodes;let i={warn:()=>null},n=this.prefixer().add[t.first.prop];n&&n.process&&n.process(t.first,i);for(let s of t.nodes){for(let a of this.prefixer().values("add",t.first.prop))a.process(s);UO.save(this.all,s)}return t.nodes}isNot(e){return typeof e=="string"&&/not\s*/i.test(e)}isOr(e){return typeof e=="string"&&/\s*or\s*/i.test(e)}isProp(e){return typeof e=="object"&&e.length===1&&typeof e[0]=="string"}isHack(e,t){return!new RegExp(`(\\(|\\s)${VO.escapeRegexp(t)}:`).test(e)}toRemove(e,t){let[i,n]=this.parse(e),s=this.all.unprefixed(i),a=this.all.cleaner();if(a.remove[i]&&a.remove[i].remove&&!this.isHack(t,s))return!0;for(let o of a.values("remove",s))if(o.check(n))return!0;return!1}remove(e,t){let i=0;for(;itypeof t!="object"?t:t.length===1&&typeof t[0]=="object"?this.cleanBrackets(t[0]):this.cleanBrackets(t))}convert(e){let t=[""];for(let i of e)t.push([`${i.prop}: ${i.value}`]),t.push(" or ");return t[t.length-1]="",t}normalize(e){if(typeof e!="object")return e;if(e=e.filter(t=>t!==""),typeof e[0]=="string"){let t=e[0].trim();if(t.includes(":")||t==="selector"||t==="not selector")return[lu.stringify(e)]}return e.map(t=>this.normalize(t))}add(e,t){return e.map(i=>{if(this.isProp(i)){let n=this.prefixed(i[0]);return n.length>1?this.convert(n):i}return typeof i=="object"?this.add(i,t):i})}process(e){let t=lu.parse(e.params);t=this.normalize(t),t=this.remove(t,e.params),t=this.add(t,e.params),t=this.cleanBrackets(t),e.params=lu.stringify(t)}disabled(e){if(!this.all.options.grid&&(e.prop==="display"&&e.value.includes("grid")||e.prop.includes("grid")||e.prop==="justify-items"))return!0;if(this.all.options.flexbox===!1){if(e.prop==="display"&&e.value.includes("flex"))return!0;let t=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||t.includes(e.prop))return!0}return!1}};Ab.exports=Sb});var Ob=x((y$,Eb)=>{u();var _b=class{constructor(e,t){this.prefix=t,this.prefixed=e.prefixed(this.prefix),this.regexp=e.regexp(this.prefix),this.prefixeds=e.possible().map(i=>[e.prefixed(i),e.regexp(i)]),this.unprefixed=e.name,this.nameRegexp=e.regexp()}isHack(e){let t=e.parent.index(e)+1,i=e.parent.nodes;for(;t{u();var{list:HO}=$e(),WO=Ob(),GO=wr(),QO=Mt(),YO=_e(),Tb=class extends GO{constructor(e,t,i){super(e,t,i);this.regexpCache=new Map}check(e){return e.selector.includes(this.name)?!!e.selector.match(this.regexp()):!1}prefixed(e){return this.name.replace(/^(\W*)/,`$1${e}`)}regexp(e){if(!this.regexpCache.has(e)){let t=e?this.prefixed(e):this.name;this.regexpCache.set(e,new RegExp(`(^|[^:"'=])${YO.escapeRegexp(t)}`,"gi"))}return this.regexpCache.get(e)}possible(){return QO.prefixes()}prefixeds(e){if(e._autoprefixerPrefixeds){if(e._autoprefixerPrefixeds[this.name])return e._autoprefixerPrefixeds}else e._autoprefixerPrefixeds={};let t={};if(e.selector.includes(",")){let n=HO.comma(e.selector).filter(s=>s.includes(this.name));for(let s of this.possible())t[s]=n.map(a=>this.replace(a,s)).join(", ")}else for(let i of this.possible())t[i]=this.replace(e.selector,i);return e._autoprefixerPrefixeds[this.name]=t,e._autoprefixerPrefixeds}already(e,t,i){let n=e.parent.index(e)-1;for(;n>=0;){let s=e.parent.nodes[n];if(s.type!=="rule")return!1;let a=!1;for(let o in t[this.name]){let l=t[this.name][o];if(s.selector===l){if(i===o)return!0;a=!0;break}}if(!a)return!1;n-=1}return!1}replace(e,t){return e.replace(this.regexp(),`$1${this.prefixed(t)}`)}add(e,t){let i=this.prefixeds(e);if(this.already(e,i,t))return;let n=this.clone(e,{selector:i[this.name][t]});e.parent.insertBefore(e,n)}old(e){return new WO(this,e)}};Rb.exports=Tb});var Db=x((w$,Ib)=>{u();var KO=wr(),Pb=class extends KO{add(e,t){let i=t+e.name;if(e.parent.some(a=>a.name===i&&a.params===e.params))return;let s=this.clone(e,{name:i});return e.parent.insertBefore(e,s)}process(e){let t=this.parentPrefix(e);for(let i of this.prefixes)(!t||t===i)&&this.add(e,i)}};Ib.exports=Pb});var $b=x((v$,qb)=>{u();var XO=kr(),uu=class extends XO{prefixed(e){return e==="-webkit-"?":-webkit-full-screen":e==="-moz-"?":-moz-full-screen":`:${e}fullscreen`}};uu.names=[":fullscreen"];qb.exports=uu});var Mb=x((x$,Lb)=>{u();var ZO=kr(),fu=class extends ZO{possible(){return super.possible().concat(["-moz- old","-ms- old"])}prefixed(e){return e==="-webkit-"?"::-webkit-input-placeholder":e==="-ms-"?"::-ms-input-placeholder":e==="-ms- old"?":-ms-input-placeholder":e==="-moz- old"?":-moz-placeholder":`::${e}placeholder`}};fu.names=["::placeholder"];Lb.exports=fu});var Bb=x((k$,Nb)=>{u();var JO=kr(),cu=class extends JO{prefixed(e){return e==="-ms-"?":-ms-input-placeholder":`:${e}placeholder-shown`}};cu.names=[":placeholder-shown"];Nb.exports=cu});var jb=x((S$,Fb)=>{u();var eT=kr(),tT=_e(),pu=class extends eT{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=tT.uniq(this.prefixes.map(n=>"-webkit-")))}prefixed(e){return e==="-webkit-"?"::-webkit-file-upload-button":`::${e}file-selector-button`}};pu.names=["::file-selector-button"];Fb.exports=pu});var Pe=x((A$,zb)=>{u();zb.exports=function(r){let e;return r==="-webkit- 2009"||r==="-moz-"?e=2009:r==="-ms-"?e=2012:r==="-webkit-"&&(e="final"),r==="-webkit- 2009"&&(r="-webkit-"),[e,r]}});var Wb=x((C$,Hb)=>{u();var Ub=$e().list,Vb=Pe(),rT=j(),Sr=class extends rT{prefixed(e,t){let i;return[i,t]=Vb(t),i===2009?t+"box-flex":super.prefixed(e,t)}normalize(){return"flex"}set(e,t){let i=Vb(t)[0];if(i===2009)return e.value=Ub.space(e.value)[0],e.value=Sr.oldValues[e.value]||e.value,super.set(e,t);if(i===2012){let n=Ub.space(e.value);n.length===3&&n[2]==="0"&&(e.value=n.slice(0,2).concat("0px").join(" "))}return super.set(e,t)}};Sr.names=["flex","box-flex"];Sr.oldValues={auto:"1",none:"0"};Hb.exports=Sr});var Yb=x((_$,Qb)=>{u();var Gb=Pe(),iT=j(),du=class extends iT{prefixed(e,t){let i;return[i,t]=Gb(t),i===2009?t+"box-ordinal-group":i===2012?t+"flex-order":super.prefixed(e,t)}normalize(){return"order"}set(e,t){return Gb(t)[0]===2009&&/\d/.test(e.value)?(e.value=(parseInt(e.value)+1).toString(),super.set(e,t)):super.set(e,t)}};du.names=["order","flex-order","box-ordinal-group"];Qb.exports=du});var Xb=x((E$,Kb)=>{u();var nT=j(),hu=class extends nT{check(e){let t=e.value;return!t.toLowerCase().includes("alpha(")&&!t.includes("DXImageTransform.Microsoft")&&!t.includes("data:image/svg+xml")}};hu.names=["filter"];Kb.exports=hu});var Jb=x((O$,Zb)=>{u();var sT=j(),mu=class extends sT{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let s=this.clone(e),a=e.prop.replace(/end$/,"start"),o=t+e.prop.replace(/end$/,"span");if(!e.parent.some(l=>l.prop===o)){if(s.prop=o,e.value.includes("span"))s.value=e.value.replace(/span\s/i,"");else{let l;if(e.parent.walkDecls(a,c=>{l=c}),l){let c=Number(e.value)-Number(l.value)+"";s.value=c}else e.warn(n,`Can not prefix ${e.prop} (${a} is not found)`)}e.cloneBefore(s)}}};mu.names=["grid-row-end","grid-column-end"];Zb.exports=mu});var tw=x((T$,ew)=>{u();var aT=j(),gu=class extends aT{check(e){return!e.value.split(/\s+/).some(t=>{let i=t.toLowerCase();return i==="reverse"||i==="alternate-reverse"})}};gu.names=["animation","animation-direction"];ew.exports=gu});var iw=x((R$,rw)=>{u();var oT=Pe(),lT=j(),yu=class extends lT{insert(e,t,i){let n;if([n,t]=oT(t),n!==2009)return super.insert(e,t,i);let s=e.value.split(/\s+/).filter(d=>d!=="wrap"&&d!=="nowrap"&&"wrap-reverse");if(s.length===0||e.parent.some(d=>d.prop===t+"box-orient"||d.prop===t+"box-direction"))return;let o=s[0],l=o.includes("row")?"horizontal":"vertical",c=o.includes("reverse")?"reverse":"normal",f=this.clone(e);return f.prop=t+"box-orient",f.value=l,this.needCascade(e)&&(f.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,f),f=this.clone(e),f.prop=t+"box-direction",f.value=c,this.needCascade(e)&&(f.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,f)}};yu.names=["flex-flow","box-direction","box-orient"];rw.exports=yu});var sw=x((P$,nw)=>{u();var uT=Pe(),fT=j(),bu=class extends fT{normalize(){return"flex"}prefixed(e,t){let i;return[i,t]=uT(t),i===2009?t+"box-flex":i===2012?t+"flex-positive":super.prefixed(e,t)}};bu.names=["flex-grow","flex-positive"];nw.exports=bu});var ow=x((I$,aw)=>{u();var cT=Pe(),pT=j(),wu=class extends pT{set(e,t){if(cT(t)[0]!==2009)return super.set(e,t)}};wu.names=["flex-wrap"];aw.exports=wu});var uw=x((D$,lw)=>{u();var dT=j(),Ar=Bt(),vu=class extends dT{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let s=Ar.parse(e),[a,o]=Ar.translate(s,0,2),[l,c]=Ar.translate(s,1,3);[["grid-row",a],["grid-row-span",o],["grid-column",l],["grid-column-span",c]].forEach(([f,d])=>{Ar.insertDecl(e,f,d)}),Ar.warnTemplateSelectorNotFound(e,n),Ar.warnIfGridRowColumnExists(e,n)}};vu.names=["grid-area"];lw.exports=vu});var cw=x((q$,fw)=>{u();var hT=j(),Bi=Bt(),xu=class extends hT{insert(e,t,i){if(t!=="-ms-")return super.insert(e,t,i);if(e.parent.some(a=>a.prop==="-ms-grid-row-align"))return;let[[n,s]]=Bi.parse(e);s?(Bi.insertDecl(e,"grid-row-align",n),Bi.insertDecl(e,"grid-column-align",s)):(Bi.insertDecl(e,"grid-row-align",n),Bi.insertDecl(e,"grid-column-align",n))}};xu.names=["place-self"];fw.exports=xu});var dw=x(($$,pw)=>{u();var mT=j(),ku=class extends mT{check(e){let t=e.value;return!t.includes("/")||t.includes("span")}normalize(e){return e.replace("-start","")}prefixed(e,t){let i=super.prefixed(e,t);return t==="-ms-"&&(i=i.replace("-start","")),i}};ku.names=["grid-row-start","grid-column-start"];pw.exports=ku});var gw=x((L$,mw)=>{u();var hw=Pe(),gT=j(),Cr=class extends gT{check(e){return e.parent&&!e.parent.some(t=>t.prop&&t.prop.startsWith("grid-"))}prefixed(e,t){let i;return[i,t]=hw(t),i===2012?t+"flex-item-align":super.prefixed(e,t)}normalize(){return"align-self"}set(e,t){let i=hw(t)[0];if(i===2012)return e.value=Cr.oldValues[e.value]||e.value,super.set(e,t);if(i==="final")return super.set(e,t)}};Cr.names=["align-self","flex-item-align"];Cr.oldValues={"flex-end":"end","flex-start":"start"};mw.exports=Cr});var bw=x((M$,yw)=>{u();var yT=j(),bT=_e(),Su=class extends yT{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=bT.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}};Su.names=["appearance"];yw.exports=Su});var xw=x((N$,vw)=>{u();var ww=Pe(),wT=j(),Au=class extends wT{normalize(){return"flex-basis"}prefixed(e,t){let i;return[i,t]=ww(t),i===2012?t+"flex-preferred-size":super.prefixed(e,t)}set(e,t){let i;if([i,t]=ww(t),i===2012||i==="final")return super.set(e,t)}};Au.names=["flex-basis","flex-preferred-size"];vw.exports=Au});var Sw=x((B$,kw)=>{u();var vT=j(),Cu=class extends vT{normalize(){return this.name.replace("box-image","border")}prefixed(e,t){let i=super.prefixed(e,t);return t==="-webkit-"&&(i=i.replace("border","box-image")),i}};Cu.names=["mask-border","mask-border-source","mask-border-slice","mask-border-width","mask-border-outset","mask-border-repeat","mask-box-image","mask-box-image-source","mask-box-image-slice","mask-box-image-width","mask-box-image-outset","mask-box-image-repeat"];kw.exports=Cu});var Cw=x((F$,Aw)=>{u();var xT=j(),lt=class extends xT{insert(e,t,i){let n=e.prop==="mask-composite",s;n?s=e.value.split(","):s=e.value.match(lt.regexp)||[],s=s.map(c=>c.trim()).filter(c=>c);let a=s.length,o;if(a&&(o=this.clone(e),o.value=s.map(c=>lt.oldValues[c]||c).join(", "),s.includes("intersect")&&(o.value+=", xor"),o.prop=t+"mask-composite"),n)return a?(this.needCascade(e)&&(o.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,o)):void 0;let l=this.clone(e);return l.prop=t+l.prop,a&&(l.value=l.value.replace(lt.regexp,"")),this.needCascade(e)&&(l.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,l),a?(this.needCascade(e)&&(o.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,o)):e}};lt.names=["mask","mask-composite"];lt.oldValues={add:"source-over",subtract:"source-out",intersect:"source-in",exclude:"xor"};lt.regexp=new RegExp(`\\s+(${Object.keys(lt.oldValues).join("|")})\\b(?!\\))\\s*(?=[,])`,"ig");Aw.exports=lt});var Ow=x((j$,Ew)=>{u();var _w=Pe(),kT=j(),_r=class extends kT{prefixed(e,t){let i;return[i,t]=_w(t),i===2009?t+"box-align":i===2012?t+"flex-align":super.prefixed(e,t)}normalize(){return"align-items"}set(e,t){let i=_w(t)[0];return(i===2009||i===2012)&&(e.value=_r.oldValues[e.value]||e.value),super.set(e,t)}};_r.names=["align-items","flex-align","box-align"];_r.oldValues={"flex-end":"end","flex-start":"start"};Ew.exports=_r});var Rw=x((z$,Tw)=>{u();var ST=j(),_u=class extends ST{set(e,t){return t==="-ms-"&&e.value==="contain"&&(e.value="element"),super.set(e,t)}insert(e,t,i){if(!(e.value==="all"&&t==="-ms-"))return super.insert(e,t,i)}};_u.names=["user-select"];Tw.exports=_u});var Dw=x((U$,Iw)=>{u();var Pw=Pe(),AT=j(),Eu=class extends AT{normalize(){return"flex-shrink"}prefixed(e,t){let i;return[i,t]=Pw(t),i===2012?t+"flex-negative":super.prefixed(e,t)}set(e,t){let i;if([i,t]=Pw(t),i===2012||i==="final")return super.set(e,t)}};Eu.names=["flex-shrink","flex-negative"];Iw.exports=Eu});var $w=x((V$,qw)=>{u();var CT=j(),Ou=class extends CT{prefixed(e,t){return`${t}column-${e}`}normalize(e){return e.includes("inside")?"break-inside":e.includes("before")?"break-before":"break-after"}set(e,t){return(e.prop==="break-inside"&&e.value==="avoid-column"||e.value==="avoid-page")&&(e.value="avoid"),super.set(e,t)}insert(e,t,i){if(e.prop!=="break-inside")return super.insert(e,t,i);if(!(/region/i.test(e.value)||/page/i.test(e.value)))return super.insert(e,t,i)}};Ou.names=["break-inside","page-break-inside","column-break-inside","break-before","page-break-before","column-break-before","break-after","page-break-after","column-break-after"];qw.exports=Ou});var Mw=x((H$,Lw)=>{u();var _T=j(),Tu=class extends _T{prefixed(e,t){return t+"print-color-adjust"}normalize(){return"color-adjust"}};Tu.names=["color-adjust","print-color-adjust"];Lw.exports=Tu});var Bw=x((W$,Nw)=>{u();var ET=j(),Er=class extends ET{insert(e,t,i){if(t==="-ms-"){let n=this.set(this.clone(e),t);this.needCascade(e)&&(n.raws.before=this.calcBefore(i,e,t));let s="ltr";return e.parent.nodes.forEach(a=>{a.prop==="direction"&&(a.value==="rtl"||a.value==="ltr")&&(s=a.value)}),n.value=Er.msValues[s][e.value]||e.value,e.parent.insertBefore(e,n)}return super.insert(e,t,i)}};Er.names=["writing-mode"];Er.msValues={ltr:{"horizontal-tb":"lr-tb","vertical-rl":"tb-rl","vertical-lr":"tb-lr"},rtl:{"horizontal-tb":"rl-tb","vertical-rl":"bt-rl","vertical-lr":"bt-lr"}};Nw.exports=Er});var jw=x((G$,Fw)=>{u();var OT=j(),Ru=class extends OT{set(e,t){return e.value=e.value.replace(/\s+fill(\s)/,"$1"),super.set(e,t)}};Ru.names=["border-image"];Fw.exports=Ru});var Vw=x((Q$,Uw)=>{u();var zw=Pe(),TT=j(),Or=class extends TT{prefixed(e,t){let i;return[i,t]=zw(t),i===2012?t+"flex-line-pack":super.prefixed(e,t)}normalize(){return"align-content"}set(e,t){let i=zw(t)[0];if(i===2012)return e.value=Or.oldValues[e.value]||e.value,super.set(e,t);if(i==="final")return super.set(e,t)}};Or.names=["align-content","flex-line-pack"];Or.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"};Uw.exports=Or});var Ww=x((Y$,Hw)=>{u();var RT=j(),We=class extends RT{prefixed(e,t){return t==="-moz-"?t+(We.toMozilla[e]||e):super.prefixed(e,t)}normalize(e){return We.toNormal[e]||e}};We.names=["border-radius"];We.toMozilla={};We.toNormal={};for(let r of["top","bottom"])for(let e of["left","right"]){let t=`border-${r}-${e}-radius`,i=`border-radius-${r}${e}`;We.names.push(t),We.names.push(i),We.toMozilla[t]=i,We.toNormal[i]=t}Hw.exports=We});var Qw=x((K$,Gw)=>{u();var PT=j(),Pu=class extends PT{prefixed(e,t){return e.includes("-start")?t+e.replace("-block-start","-before"):t+e.replace("-block-end","-after")}normalize(e){return e.includes("-before")?e.replace("-before","-block-start"):e.replace("-after","-block-end")}};Pu.names=["border-block-start","border-block-end","margin-block-start","margin-block-end","padding-block-start","padding-block-end","border-before","border-after","margin-before","margin-after","padding-before","padding-after"];Gw.exports=Pu});var Kw=x((X$,Yw)=>{u();var IT=j(),{parseTemplate:DT,warnMissedAreas:qT,getGridGap:$T,warnGridGap:LT,inheritGridGap:MT}=Bt(),Iu=class extends IT{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);if(e.parent.some(h=>h.prop==="-ms-grid-rows"))return;let s=$T(e),a=MT(e,s),{rows:o,columns:l,areas:c}=DT({decl:e,gap:a||s}),f=Object.keys(c).length>0,d=Boolean(o),p=Boolean(l);return LT({gap:s,hasColumns:p,decl:e,result:n}),qT(c,e,n),(d&&p||f)&&e.cloneBefore({prop:"-ms-grid-rows",value:o,raws:{}}),p&&e.cloneBefore({prop:"-ms-grid-columns",value:l,raws:{}}),e}};Iu.names=["grid-template"];Yw.exports=Iu});var Zw=x((Z$,Xw)=>{u();var NT=j(),Du=class extends NT{prefixed(e,t){return t+e.replace("-inline","")}normalize(e){return e.replace(/(margin|padding|border)-(start|end)/,"$1-inline-$2")}};Du.names=["border-inline-start","border-inline-end","margin-inline-start","margin-inline-end","padding-inline-start","padding-inline-end","border-start","border-end","margin-start","margin-end","padding-start","padding-end"];Xw.exports=Du});var e0=x((J$,Jw)=>{u();var BT=j(),qu=class extends BT{check(e){return!e.value.includes("flex-")&&e.value!=="baseline"}prefixed(e,t){return t+"grid-row-align"}normalize(){return"align-self"}};qu.names=["grid-row-align"];Jw.exports=qu});var r0=x((eL,t0)=>{u();var FT=j(),Tr=class extends FT{keyframeParents(e){let{parent:t}=e;for(;t;){if(t.type==="atrule"&&t.name==="keyframes")return!0;({parent:t}=t)}return!1}contain3d(e){if(e.prop==="transform-origin")return!1;for(let t of Tr.functions3d)if(e.value.includes(`${t}(`))return!0;return!1}set(e,t){return e=super.set(e,t),t==="-ms-"&&(e.value=e.value.replace(/rotatez/gi,"rotate")),e}insert(e,t,i){if(t==="-ms-"){if(!this.contain3d(e)&&!this.keyframeParents(e))return super.insert(e,t,i)}else if(t==="-o-"){if(!this.contain3d(e))return super.insert(e,t,i)}else return super.insert(e,t,i)}};Tr.names=["transform","transform-origin"];Tr.functions3d=["matrix3d","translate3d","translateZ","scale3d","scaleZ","rotate3d","rotateX","rotateY","perspective"];t0.exports=Tr});var s0=x((tL,n0)=>{u();var i0=Pe(),jT=j(),$u=class extends jT{normalize(){return"flex-direction"}insert(e,t,i){let n;if([n,t]=i0(t),n!==2009)return super.insert(e,t,i);if(e.parent.some(f=>f.prop===t+"box-orient"||f.prop===t+"box-direction"))return;let a=e.value,o,l;a==="inherit"||a==="initial"||a==="unset"?(o=a,l=a):(o=a.includes("row")?"horizontal":"vertical",l=a.includes("reverse")?"reverse":"normal");let c=this.clone(e);return c.prop=t+"box-orient",c.value=o,this.needCascade(e)&&(c.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,c),c=this.clone(e),c.prop=t+"box-direction",c.value=l,this.needCascade(e)&&(c.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,c)}old(e,t){let i;return[i,t]=i0(t),i===2009?[t+"box-orient",t+"box-direction"]:super.old(e,t)}};$u.names=["flex-direction","box-direction","box-orient"];n0.exports=$u});var o0=x((rL,a0)=>{u();var zT=j(),Lu=class extends zT{check(e){return e.value==="pixelated"}prefixed(e,t){return t==="-ms-"?"-ms-interpolation-mode":super.prefixed(e,t)}set(e,t){return t!=="-ms-"?super.set(e,t):(e.prop="-ms-interpolation-mode",e.value="nearest-neighbor",e)}normalize(){return"image-rendering"}process(e,t){return super.process(e,t)}};Lu.names=["image-rendering","interpolation-mode"];a0.exports=Lu});var u0=x((iL,l0)=>{u();var UT=j(),VT=_e(),Mu=class extends UT{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=VT.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}};Mu.names=["backdrop-filter"];l0.exports=Mu});var c0=x((nL,f0)=>{u();var HT=j(),WT=_e(),Nu=class extends HT{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=WT.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}check(e){return e.value.toLowerCase()==="text"}};Nu.names=["background-clip"];f0.exports=Nu});var d0=x((sL,p0)=>{u();var GT=j(),QT=["none","underline","overline","line-through","blink","inherit","initial","unset"],Bu=class extends GT{check(e){return e.value.split(/\s+/).some(t=>!QT.includes(t))}};Bu.names=["text-decoration"];p0.exports=Bu});var g0=x((aL,m0)=>{u();var h0=Pe(),YT=j(),Rr=class extends YT{prefixed(e,t){let i;return[i,t]=h0(t),i===2009?t+"box-pack":i===2012?t+"flex-pack":super.prefixed(e,t)}normalize(){return"justify-content"}set(e,t){let i=h0(t)[0];if(i===2009||i===2012){let n=Rr.oldValues[e.value]||e.value;if(e.value=n,i!==2009||n!=="distribute")return super.set(e,t)}else if(i==="final")return super.set(e,t)}};Rr.names=["justify-content","flex-pack","box-pack"];Rr.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"};m0.exports=Rr});var b0=x((oL,y0)=>{u();var KT=j(),Fu=class extends KT{set(e,t){let i=e.value.toLowerCase();return t==="-webkit-"&&!i.includes(" ")&&i!=="contain"&&i!=="cover"&&(e.value=e.value+" "+e.value),super.set(e,t)}};Fu.names=["background-size"];y0.exports=Fu});var v0=x((lL,w0)=>{u();var XT=j(),ju=Bt(),zu=class extends XT{insert(e,t,i){if(t!=="-ms-")return super.insert(e,t,i);let n=ju.parse(e),[s,a]=ju.translate(n,0,1);n[0]&&n[0].includes("span")&&(a=n[0].join("").replace(/\D/g,"")),[[e.prop,s],[`${e.prop}-span`,a]].forEach(([l,c])=>{ju.insertDecl(e,l,c)})}};zu.names=["grid-row","grid-column"];w0.exports=zu});var S0=x((uL,k0)=>{u();var ZT=j(),{prefixTrackProp:x0,prefixTrackValue:JT,autoplaceGridItems:eR,getGridGap:tR,inheritGridGap:rR}=Bt(),iR=ou(),Uu=class extends ZT{prefixed(e,t){return t==="-ms-"?x0({prop:e,prefix:t}):super.prefixed(e,t)}normalize(e){return e.replace(/^grid-(rows|columns)/,"grid-template-$1")}insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let{parent:s,prop:a,value:o}=e,l=a.includes("rows"),c=a.includes("columns"),f=s.some(k=>k.prop==="grid-template"||k.prop==="grid-template-areas");if(f&&l)return!1;let d=new iR({options:{}}),p=d.gridStatus(s,n),h=tR(e);h=rR(e,h)||h;let b=l?h.row:h.column;(p==="no-autoplace"||p===!0)&&!f&&(b=null);let v=JT({value:o,gap:b});e.cloneBefore({prop:x0({prop:a,prefix:t}),value:v});let y=s.nodes.find(k=>k.prop==="grid-auto-flow"),w="row";if(y&&!d.disabled(y,n)&&(w=y.value.trim()),p==="autoplace"){let k=s.nodes.find(E=>E.prop==="grid-template-rows");if(!k&&f)return;if(!k&&!f){e.warn(n,"Autoplacement does not work without grid-template-rows property");return}!s.nodes.find(E=>E.prop==="grid-template-columns")&&!f&&e.warn(n,"Autoplacement does not work without grid-template-columns property"),c&&!f&&eR(e,n,h,w)}}};Uu.names=["grid-template-rows","grid-template-columns","grid-rows","grid-columns"];k0.exports=Uu});var C0=x((fL,A0)=>{u();var nR=j(),Vu=class extends nR{check(e){return!e.value.includes("flex-")&&e.value!=="baseline"}prefixed(e,t){return t+"grid-column-align"}normalize(){return"justify-self"}};Vu.names=["grid-column-align"];A0.exports=Vu});var E0=x((cL,_0)=>{u();var sR=j(),Hu=class extends sR{prefixed(e,t){return t+"scroll-chaining"}normalize(){return"overscroll-behavior"}set(e,t){return e.value==="auto"?e.value="chained":(e.value==="none"||e.value==="contain")&&(e.value="none"),super.set(e,t)}};Hu.names=["overscroll-behavior","scroll-chaining"];_0.exports=Hu});var R0=x((pL,T0)=>{u();var aR=j(),{parseGridAreas:oR,warnMissedAreas:lR,prefixTrackProp:uR,prefixTrackValue:O0,getGridGap:fR,warnGridGap:cR,inheritGridGap:pR}=Bt();function dR(r){return r.trim().slice(1,-1).split(/["']\s*["']?/g)}var Wu=class extends aR{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let s=!1,a=!1,o=e.parent,l=fR(e);l=pR(e,l)||l,o.walkDecls(/-ms-grid-rows/,d=>d.remove()),o.walkDecls(/grid-template-(rows|columns)/,d=>{if(d.prop==="grid-template-rows"){a=!0;let{prop:p,value:h}=d;d.cloneBefore({prop:uR({prop:p,prefix:t}),value:O0({value:h,gap:l.row})})}else s=!0});let c=dR(e.value);s&&!a&&l.row&&c.length>1&&e.cloneBefore({prop:"-ms-grid-rows",value:O0({value:`repeat(${c.length}, auto)`,gap:l.row}),raws:{}}),cR({gap:l,hasColumns:s,decl:e,result:n});let f=oR({rows:c,gap:l});return lR(f,e,n),e}};Wu.names=["grid-template-areas"];T0.exports=Wu});var I0=x((dL,P0)=>{u();var hR=j(),Gu=class extends hR{set(e,t){return t==="-webkit-"&&(e.value=e.value.replace(/\s*(right|left)\s*/i,"")),super.set(e,t)}};Gu.names=["text-emphasis-position"];P0.exports=Gu});var q0=x((hL,D0)=>{u();var mR=j(),Qu=class extends mR{set(e,t){return e.prop==="text-decoration-skip-ink"&&e.value==="auto"?(e.prop=t+"text-decoration-skip",e.value="ink",e):super.set(e,t)}};Qu.names=["text-decoration-skip-ink","text-decoration-skip"];D0.exports=Qu});var F0=x((mL,B0)=>{u();"use strict";B0.exports={wrap:$0,limit:L0,validate:M0,test:Yu,curry:gR,name:N0};function $0(r,e,t){var i=e-r;return((t-r)%i+i)%i+r}function L0(r,e,t){return Math.max(r,Math.min(e,t))}function M0(r,e,t,i,n){if(!Yu(r,e,t,i,n))throw new Error(t+" is outside of range ["+r+","+e+")");return t}function Yu(r,e,t,i,n){return!(te||n&&t===e||i&&t===r)}function N0(r,e,t,i){return(t?"(":"[")+r+","+e+(i?")":"]")}function gR(r,e,t,i){var n=N0.bind(null,r,e,t,i);return{wrap:$0.bind(null,r,e),limit:L0.bind(null,r,e),validate:function(s){return M0(r,e,s,t,i)},test:function(s){return Yu(r,e,s,t,i)},toString:n,name:n}}});var U0=x((gL,z0)=>{u();var Ku=Ms(),yR=F0(),bR=xr(),wR=He(),vR=_e(),j0=/top|left|right|bottom/gi,wt=class extends wR{replace(e,t){let i=Ku(e);for(let n of i.nodes)if(n.type==="function"&&n.value===this.name)if(n.nodes=this.newDirection(n.nodes),n.nodes=this.normalize(n.nodes),t==="-webkit- old"){if(!this.oldWebkit(n))return!1}else n.nodes=this.convertDirection(n.nodes),n.value=t+n.value;return i.toString()}replaceFirst(e,...t){return t.map(n=>n===" "?{type:"space",value:n}:{type:"word",value:n}).concat(e.slice(1))}normalizeUnit(e,t){return`${parseFloat(e)/t*360}deg`}normalize(e){if(!e[0])return e;if(/-?\d+(.\d+)?grad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,400);else if(/-?\d+(.\d+)?rad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,2*Math.PI);else if(/-?\d+(.\d+)?turn/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,1);else if(e[0].value.includes("deg")){let t=parseFloat(e[0].value);t=yR.wrap(0,360,t),e[0].value=`${t}deg`}return e[0].value==="0deg"?e=this.replaceFirst(e,"to"," ","top"):e[0].value==="90deg"?e=this.replaceFirst(e,"to"," ","right"):e[0].value==="180deg"?e=this.replaceFirst(e,"to"," ","bottom"):e[0].value==="270deg"&&(e=this.replaceFirst(e,"to"," ","left")),e}newDirection(e){if(e[0].value==="to"||(j0.lastIndex=0,!j0.test(e[0].value)))return e;e.unshift({type:"word",value:"to"},{type:"space",value:" "});for(let t=2;t0&&(e[0].value==="to"?this.fixDirection(e):e[0].value.includes("deg")?this.fixAngle(e):this.isRadial(e)&&this.fixRadial(e)),e}fixDirection(e){e.splice(0,2);for(let t of e){if(t.type==="div")break;t.type==="word"&&(t.value=this.revertDirection(t.value))}}fixAngle(e){let t=e[0].value;t=parseFloat(t),t=Math.abs(450-t)%360,t=this.roundFloat(t,3),e[0].value=`${t}deg`}fixRadial(e){let t=[],i=[],n,s,a,o,l;for(o=0;o{u();var xR=xr(),kR=He();function V0(r){return new RegExp(`(^|[\\s,(])(${r}($|[\\s),]))`,"gi")}var Xu=class extends kR{regexp(){return this.regexpCache||(this.regexpCache=V0(this.name)),this.regexpCache}isStretch(){return this.name==="stretch"||this.name==="fill"||this.name==="fill-available"}replace(e,t){return t==="-moz-"&&this.isStretch()?e.replace(this.regexp(),"$1-moz-available$3"):t==="-webkit-"&&this.isStretch()?e.replace(this.regexp(),"$1-webkit-fill-available$3"):super.replace(e,t)}old(e){let t=e+this.name;return this.isStretch()&&(e==="-moz-"?t="-moz-available":e==="-webkit-"&&(t="-webkit-fill-available")),new xR(this.name,t,t,V0(t))}add(e,t){if(!(e.prop.includes("grid")&&t!=="-webkit-"))return super.add(e,t)}};Xu.names=["max-content","min-content","fit-content","fill","fill-available","stretch"];H0.exports=Xu});var Y0=x((bL,Q0)=>{u();var G0=xr(),SR=He(),Zu=class extends SR{replace(e,t){return t==="-webkit-"?e.replace(this.regexp(),"$1-webkit-optimize-contrast"):t==="-moz-"?e.replace(this.regexp(),"$1-moz-crisp-edges"):super.replace(e,t)}old(e){return e==="-webkit-"?new G0(this.name,"-webkit-optimize-contrast"):e==="-moz-"?new G0(this.name,"-moz-crisp-edges"):super.old(e)}};Zu.names=["pixelated"];Q0.exports=Zu});var X0=x((wL,K0)=>{u();var AR=He(),Ju=class extends AR{replace(e,t){let i=super.replace(e,t);return t==="-webkit-"&&(i=i.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi,"url($1)$2")),i}};Ju.names=["image-set"];K0.exports=Ju});var J0=x((vL,Z0)=>{u();var CR=$e().list,_R=He(),ef=class extends _R{replace(e,t){return CR.space(e).map(i=>{if(i.slice(0,+this.name.length+1)!==this.name+"(")return i;let n=i.lastIndexOf(")"),s=i.slice(n+1),a=i.slice(this.name.length+1,n);if(t==="-webkit-"){let o=a.match(/\d*.?\d+%?/);o?(a=a.slice(o[0].length).trim(),a+=`, ${o[0]}`):a+=", 0.5"}return t+this.name+"("+a+")"+s}).join(" ")}};ef.names=["cross-fade"];Z0.exports=ef});var tv=x((xL,ev)=>{u();var ER=Pe(),OR=xr(),TR=He(),tf=class extends TR{constructor(e,t){super(e,t);e==="display-flex"&&(this.name="flex")}check(e){return e.prop==="display"&&e.value===this.name}prefixed(e){let t,i;return[t,e]=ER(e),t===2009?this.name==="flex"?i="box":i="inline-box":t===2012?this.name==="flex"?i="flexbox":i="inline-flexbox":t==="final"&&(i=this.name),e+i}replace(e,t){return this.prefixed(t)}old(e){let t=this.prefixed(e);if(!!t)return new OR(this.name,t)}};tf.names=["display-flex","inline-flex"];ev.exports=tf});var iv=x((kL,rv)=>{u();var RR=He(),rf=class extends RR{constructor(e,t){super(e,t);e==="display-grid"&&(this.name="grid")}check(e){return e.prop==="display"&&e.value===this.name}};rf.names=["display-grid","inline-grid"];rv.exports=rf});var sv=x((SL,nv)=>{u();var PR=He(),nf=class extends PR{constructor(e,t){super(e,t);e==="filter-function"&&(this.name="filter")}};nf.names=["filter","filter-function"];nv.exports=nf});var uv=x((AL,lv)=>{u();var av=Ni(),z=j(),ov=zy(),IR=ab(),DR=ou(),qR=Cb(),sf=Mt(),Pr=kr(),$R=Db(),ut=He(),Ir=_e(),LR=$b(),MR=Mb(),NR=Bb(),BR=jb(),FR=Wb(),jR=Yb(),zR=Xb(),UR=Jb(),VR=tw(),HR=iw(),WR=sw(),GR=ow(),QR=uw(),YR=cw(),KR=dw(),XR=gw(),ZR=bw(),JR=xw(),e5=Sw(),t5=Cw(),r5=Ow(),i5=Rw(),n5=Dw(),s5=$w(),a5=Mw(),o5=Bw(),l5=jw(),u5=Vw(),f5=Ww(),c5=Qw(),p5=Kw(),d5=Zw(),h5=e0(),m5=r0(),g5=s0(),y5=o0(),b5=u0(),w5=c0(),v5=d0(),x5=g0(),k5=b0(),S5=v0(),A5=S0(),C5=C0(),_5=E0(),E5=R0(),O5=I0(),T5=q0(),R5=U0(),P5=W0(),I5=Y0(),D5=X0(),q5=J0(),$5=tv(),L5=iv(),M5=sv();Pr.hack(LR);Pr.hack(MR);Pr.hack(NR);Pr.hack(BR);z.hack(FR);z.hack(jR);z.hack(zR);z.hack(UR);z.hack(VR);z.hack(HR);z.hack(WR);z.hack(GR);z.hack(QR);z.hack(YR);z.hack(KR);z.hack(XR);z.hack(ZR);z.hack(JR);z.hack(e5);z.hack(t5);z.hack(r5);z.hack(i5);z.hack(n5);z.hack(s5);z.hack(a5);z.hack(o5);z.hack(l5);z.hack(u5);z.hack(f5);z.hack(c5);z.hack(p5);z.hack(d5);z.hack(h5);z.hack(m5);z.hack(g5);z.hack(y5);z.hack(b5);z.hack(w5);z.hack(v5);z.hack(x5);z.hack(k5);z.hack(S5);z.hack(A5);z.hack(C5);z.hack(_5);z.hack(E5);z.hack(O5);z.hack(T5);ut.hack(R5);ut.hack(P5);ut.hack(I5);ut.hack(D5);ut.hack(q5);ut.hack($5);ut.hack(L5);ut.hack(M5);var af=new Map,Fi=class{constructor(e,t,i={}){this.data=e,this.browsers=t,this.options=i,[this.add,this.remove]=this.preprocess(this.select(this.data)),this.transition=new IR(this),this.processor=new DR(this)}cleaner(){if(this.cleanerCache)return this.cleanerCache;if(this.browsers.selected.length){let e=new sf(this.browsers.data,[]);this.cleanerCache=new Fi(this.data,e,this.options)}else return this;return this.cleanerCache}select(e){let t={add:{},remove:{}};for(let i in e){let n=e[i],s=n.browsers.map(l=>{let c=l.split(" ");return{browser:`${c[0]} ${c[1]}`,note:c[2]}}),a=s.filter(l=>l.note).map(l=>`${this.browsers.prefix(l.browser)} ${l.note}`);a=Ir.uniq(a),s=s.filter(l=>this.browsers.isSelected(l.browser)).map(l=>{let c=this.browsers.prefix(l.browser);return l.note?`${c} ${l.note}`:c}),s=this.sort(Ir.uniq(s)),this.options.flexbox==="no-2009"&&(s=s.filter(l=>!l.includes("2009")));let o=n.browsers.map(l=>this.browsers.prefix(l));n.mistakes&&(o=o.concat(n.mistakes)),o=o.concat(a),o=Ir.uniq(o),s.length?(t.add[i]=s,s.length!s.includes(l)))):t.remove[i]=o}return t}sort(e){return e.sort((t,i)=>{let n=Ir.removeNote(t).length,s=Ir.removeNote(i).length;return n===s?i.length-t.length:s-n})}preprocess(e){let t={selectors:[],"@supports":new qR(Fi,this)};for(let n in e.add){let s=e.add[n];if(n==="@keyframes"||n==="@viewport")t[n]=new $R(n,s,this);else if(n==="@resolution")t[n]=new ov(n,s,this);else if(this.data[n].selector)t.selectors.push(Pr.load(n,s,this));else{let a=this.data[n].props;if(a){let o=ut.load(n,s,this);for(let l of a)t[l]||(t[l]={values:[]}),t[l].values.push(o)}else{let o=t[n]&&t[n].values||[];t[n]=z.load(n,s,this),t[n].values=o}}}let i={selectors:[]};for(let n in e.remove){let s=e.remove[n];if(this.data[n].selector){let a=Pr.load(n,s);for(let o of s)i.selectors.push(a.old(o))}else if(n==="@keyframes"||n==="@viewport")for(let a of s){let o=`@${a}${n.slice(1)}`;i[o]={remove:!0}}else if(n==="@resolution")i[n]=new ov(n,s,this);else{let a=this.data[n].props;if(a){let o=ut.load(n,[],this);for(let l of s){let c=o.old(l);if(c)for(let f of a)i[f]||(i[f]={}),i[f].values||(i[f].values=[]),i[f].values.push(c)}}else for(let o of s){let l=this.decl(n).old(n,o);if(n==="align-self"){let c=t[n]&&t[n].prefixes;if(c){if(o==="-webkit- 2009"&&c.includes("-webkit-"))continue;if(o==="-webkit-"&&c.includes("-webkit- 2009"))continue}}for(let c of l)i[c]||(i[c]={}),i[c].remove=!0}}}return[t,i]}decl(e){return af.has(e)||af.set(e,z.load(e)),af.get(e)}unprefixed(e){let t=this.normalize(av.unprefixed(e));return t==="flex-direction"&&(t="flex-flow"),t}normalize(e){return this.decl(e).normalize(e)}prefixed(e,t){return e=av.unprefixed(e),this.decl(e).prefixed(e,t)}values(e,t){let i=this[e],n=i["*"]&&i["*"].values,s=i[t]&&i[t].values;return n&&s?Ir.uniq(n.concat(s)):n||s||[]}group(e){let t=e.parent,i=t.index(e),{length:n}=t.nodes,s=this.unprefixed(e.prop),a=(o,l)=>{for(i+=o;i>=0&&i{u();fv.exports={"backdrop-filter":{feature:"css-backdrop-filter",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},element:{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-element-function",browsers:["firefox 114"]},"user-select":{mistakes:["-khtml-"],feature:"user-select-none",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"background-clip":{feature:"background-clip-text",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},hyphens:{feature:"css-hyphens",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},fill:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"fill-available":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},stretch:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"fit-content":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"text-decoration-style":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-color":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-line":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip-ink":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-size-adjust":{feature:"text-size-adjust",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"mask-clip":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-composite":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-image":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-origin":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-source":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},mask:{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-position":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-size":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-outset":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-width":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-slice":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"clip-path":{feature:"css-clip-path",browsers:["samsung 21"]},"box-decoration-break":{feature:"css-boxdecorationbreak",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","opera 99","safari 16.5","samsung 21"]},appearance:{feature:"css-appearance",browsers:["samsung 21"]},"image-set":{props:["background","background-image","border-image","cursor","mask","mask-image","list-style","list-style-image","content"],feature:"css-image-set",browsers:["and_uc 15.5","chrome 109","samsung 21"]},"cross-fade":{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-cross-fade",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},isolate:{props:["unicode-bidi"],feature:"css-unicode-bidi",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"color-adjust":{feature:"css-color-adjust",browsers:["chrome 109","chrome 113","chrome 114","edge 114","opera 99"]}}});var dv=x((_L,pv)=>{u();pv.exports={}});var yv=x((EL,gv)=>{u();var N5=Yl(),{agents:B5}=(Ps(),Rs),of=Oy(),F5=Mt(),j5=uv(),z5=cv(),U5=dv(),hv={browsers:B5,prefixes:z5},mv=` + Replace Autoprefixer \`browsers\` option to Browserslist config. + Use \`browserslist\` key in \`package.json\` or \`.browserslistrc\` file. + + Using \`browsers\` option can cause errors. Browserslist config can + be used for Babel, Autoprefixer, postcss-normalize and other tools. + + If you really need to use option, rename it to \`overrideBrowserslist\`. + + Learn more at: + https://github.com/browserslist/browserslist#readme + https://twitter.com/browserslist + +`;function V5(r){return Object.prototype.toString.apply(r)==="[object Object]"}var lf=new Map;function H5(r,e){e.browsers.selected.length!==0&&(e.add.selectors.length>0||Object.keys(e.add).length>2||r.warn(`Autoprefixer target browsers do not need any prefixes.You do not need Autoprefixer anymore. +Check your Browserslist config to be sure that your targets are set up correctly. + + Learn more at: + https://github.com/postcss/autoprefixer#readme + https://github.com/browserslist/browserslist#readme + +`))}gv.exports=Dr;function Dr(...r){let e;if(r.length===1&&V5(r[0])?(e=r[0],r=void 0):r.length===0||r.length===1&&!r[0]?r=void 0:r.length<=2&&(Array.isArray(r[0])||!r[0])?(e=r[1],r=r[0]):typeof r[r.length-1]=="object"&&(e=r.pop()),e||(e={}),e.browser)throw new Error("Change `browser` option to `overrideBrowserslist` in Autoprefixer");if(e.browserslist)throw new Error("Change `browserslist` option to `overrideBrowserslist` in Autoprefixer");e.overrideBrowserslist?r=e.overrideBrowserslist:e.browsers&&(typeof console!="undefined"&&console.warn&&(of.red?console.warn(of.red(mv.replace(/`[^`]+`/g,n=>of.yellow(n.slice(1,-1))))):console.warn(mv)),r=e.browsers);let t={ignoreUnknownVersions:e.ignoreUnknownVersions,stats:e.stats,env:e.env};function i(n){let s=hv,a=new F5(s.browsers,r,n,t),o=a.selected.join(", ")+JSON.stringify(e);return lf.has(o)||lf.set(o,new j5(s.prefixes,a,e)),lf.get(o)}return{postcssPlugin:"autoprefixer",prepare(n){let s=i({from:n.opts.from,env:e.env});return{OnceExit(a){H5(n,s),e.remove!==!1&&s.processor.remove(a,n),e.add!==!1&&s.processor.add(a,n)}}},info(n){return n=n||{},n.from=n.from||m.cwd(),U5(i(n))},options:e,browsers:r}}Dr.postcss=!0;Dr.data=hv;Dr.defaults=N5.defaults;Dr.info=()=>Dr().info()});var bv={};Ge(bv,{default:()=>W5});var W5,wv=P(()=>{u();W5=[]});var xv={};Ge(xv,{default:()=>G5});var vv,G5,kv=P(()=>{u();Xi();vv=pe(rn()),G5=St(vv.default.theme)});var Av={};Ge(Av,{default:()=>Q5});var Sv,Q5,Cv=P(()=>{u();Xi();Sv=pe(rn()),Q5=St(Sv.default)});u();"use strict";var Y5=vt(_y()),K5=vt($e()),X5=vt(yv()),Z5=vt((wv(),bv)),J5=vt((kv(),xv)),eP=vt((Cv(),Av)),tP=vt((Vs(),_f)),rP=vt((al(),sl)),iP=vt((sa(),sc));function vt(r){return r&&r.__esModule?r:{default:r}}console.warn("cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation");var Ns="tailwind",uf="text/tailwindcss",_v="/template.html",Yt,Ev=!0,Ov=0,ff=new Set,cf,Tv="",Rv=(r=!1)=>({get(e,t){return(!r||t==="config")&&typeof e[t]=="object"&&e[t]!==null?new Proxy(e[t],Rv()):e[t]},set(e,t,i){return e[t]=i,(!r||t==="config")&&pf(!0),!0}});window[Ns]=new Proxy({config:{},defaultTheme:J5.default,defaultConfig:eP.default,colors:tP.default,plugin:rP.default,resolveConfig:iP.default},Rv(!0));function Pv(r){cf.observe(r,{attributes:!0,attributeFilter:["type"],characterData:!0,subtree:!0,childList:!0})}new MutationObserver(async r=>{let e=!1;if(!cf){cf=new MutationObserver(async()=>await pf(!0));for(let t of document.querySelectorAll(`style[type="${uf}"]`))Pv(t)}for(let t of r)for(let i of t.addedNodes)i.nodeType===1&&i.tagName==="STYLE"&&i.getAttribute("type")===uf&&(Pv(i),e=!0);await pf(e)}).observe(document.documentElement,{attributes:!0,attributeFilter:["class"],childList:!0,subtree:!0});async function pf(r=!1){r&&(Ov++,ff.clear());let e="";for(let i of document.querySelectorAll(`style[type="${uf}"]`))e+=i.textContent;let t=new Set;for(let i of document.querySelectorAll("[class]"))for(let n of i.classList)ff.has(n)||t.add(n);if(document.body&&(Ev||t.size>0||e!==Tv||!Yt||!Yt.isConnected)){for(let n of t)ff.add(n);Ev=!1,Tv=e,self[_v]=Array.from(t).join(" ");let{css:i}=await(0,K5.default)([(0,Y5.default)({...window[Ns].config,_hash:Ov,content:{files:[_v],extract:{html:n=>n.split(" ")}},plugins:[...Z5.default,...Array.isArray(window[Ns].config.plugins)?window[Ns].config.plugins:[]]}),(0,X5.default)({remove:!1})]).process(`@tailwind base;@tailwind components;@tailwind utilities;${e}`);(!Yt||!Yt.isConnected)&&(Yt=document.createElement("style"),document.head.append(Yt)),Yt.textContent=i}}})(); +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! https://mths.be/cssesc v3.0.0 by @mathias */ diff --git a/webui/web/assets/fonts/roboto-400.woff2 b/webui/web/assets/fonts/roboto-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b65a361a2e44d16996cb4da74d8bfd7ff19bbc6c GIT binary patch literal 11028 zcmV+vE9=yEPew8T0RR9104o##4gdfE08}Ud04lry0RR9100000000000000000000 z0000QWE+`e9EDy6U;u+45ey3PT-tIAgbDxwHUcCAh!6xI1%h-3AREC&MMmz*;H~f| zYS!M=6Z~H%aB}@v528b~2pNsWB}o*nJ;)U!H)cch>d41=(=YVY(0Y%TFUMqDNV%HT zcTV~dlFSm+`^SGh2NxgQ4IxKH2%++IPDfx)WPl>_%>m8re#M9yVHBWX5-F7uQqmzc zYE(#$!GMuzK+B*vR4P;~Flk9U{qOf{cK*IAwqjDDC8jfk3dQ5aJ4s&d3sj+0(3+L8 zsJ9Ic@bxqRj&xcxvSgUiN)JRew|CV8t#)Pm?h-cWfCbY?Nhc*m^8`hE-+xD?YzO}N z{^zvdk_cT_S);p6e;ASQsP_Dvno$IIJPP~&ud{4*hrL0Ea1?f#qTRD)xK2@}sH7)p zwEus3j0^TGkw#1M%$%$}i*mpV*ae6x9D9M#U63o}lA%kPlcGu6Wy=u5Kecq0&C62y zr`uBH35js)r1tmjSqQ8Ox4tNr0@=PAmhLV|o7MYc2siA6g8NFuZ(SHmdv&O3N)_8x`9M{L4Id(#c z3z{8YwcEC0vlXzvg8bqL0_S?)r7j1T7=d!hgCLtjg+6M6A3#Kh zpCCF%&NA_QtHgS*UWZ%28iY5ltr+*4b~#@?m?V$uM=|ElJ!Af4XnM`=Q7msz>cweWb83^3quL3f!KN5LMx*6%ltBZT*i@~(q=Qg!5vl1 zQ)EAEqh2>IUwvJtM?k*NIa1o#d0llxZ_&-FC-abLK60?1`tAY}&GI$6N2b_rXV>eD}jo zzx;+!%%?Dv@l!#dM$i&L2)+~|g(n3Oc8e#PHY65)fFgc+Ez|Ec1A!sV!xGl{ZQ5er zD-P{&7M7E-@`fr_qw;v#n7|~aFpU{`IhUC_>OL-$-+r$>Ov4eMbj}Q2WPx9w{ zSbD>Lh1aN?(hx9qHQ#|PjB2VM&<6zQ9AB=Q|4i)VO_7g!A31BVB@ z?$b@6-wp#{i1VrrFfJnDo`nJ{jVH-R0Pdt9%cOX0c-Y|e6&chlx*uW;X zu#KJBqZ#35M}{L_IF=cE2j1fYKH^g#7Eh)jpd3}Gp;++-Z}0|h@J1n!oiQP1FwbvU z65H}PV)rg$@4*Lr#HYnaJDOwcde5;HXq>r4t1sLW8^x%1x%~U;!ImUIXsoDfVl3O}4_6j&?-k5CBzK@)Wn z#u;*0DN;wEN8dh%qJxa1hg@LgFdK<*h#uv{#W7jY<4RRIq2{j=#_W*v)+g4!`^^!G z0tWW5hXdw7j8Me1&vEfOA;d{xNr;W4*hxu{tPpbIrzlQJVxz46RJ50>c&Leky13~H z=bTvRR|H}lfH#<93mBFN&8or@?*Kl-8Y2Q{v2qcYEYGrIZR}A_<-pFBiBzR3A;TPq zTNE*F2FmR3c-=M!Yu;0cXBM$pk|>8|FX3!N1#H@Z_x3i%JD;HUHL?0x-$N(7@NV$q z)rugg1Nc2oY@nQ0k0R3VA#VdkUWIbD!bRZ#HdqmW4{q4uNyM=s#Ci1yZJ@zypjjh? ztvJ|MuoOD*z;AF$MJU-q$+?XvRzi?ec;SZ^{tbSkctHT?QFMZW6?Vgt?2rkOpktl? z>>DijI`5x4)`K8|2>P0Y?bP#w1A+X1>%4;ObNzhWp+upobJMv&5rIHIH`tR1eYXxt zaO1+B*65|;`)O?Ql&RB%Zon|t?|W(%(1B&oqxFOk!M!c43@pGTqY# zSsZRMYIW54)q+64->z_2uzoWr-_)Eg519!TfE9FNWni`k2GqO6TEtG<Q~N6n~jxVQoQ zTuQpEY7;mZ>lVZQ-)8!t3G(j)|G?>=iULBAy8&(YPA4>jXjiCW4H8N9VeOp@-LNV5ZTk??Vc~J#)k1rP4j#3PkW#TCzqLU)M+xKzP(l6$ z>5%fP@pt$n1w@AwBC5hrhn_9idnZ(NXl`EDDkyh6sWYzAf_HkIAZ`2a^ z!pX)wDsSKX6sewh?uA85(xh9qV%3^;FOg-Gy$=bBOrL%6)i>W|`2m4~hsyu391snF zG6DDtEd36wc_cvF9+a;Ex=NJ#m?N;zkX)1sRChE~s@X%8h1O<+a#WilK#in~hS(i1 zF9cqQ1PWt0##;olqXCc_r4*fuL}gS+9Sr*rqBqGfEv+8Ri#G3$=7aP4eNN%C0%sF| zyKaS7xCORs-C&T$5Ja@uRk0bn?nD(`P=C;iPt73J40D7We~~}PrlNy4UL6B z4cJQRrgTD+g$}?jj?JK~v^1`hese3CV?F~P4y&93U&Xx2TuCo$!Z0;VuNbOi^O#G0 z+Kf5)`Bd5jL?*q9+?jVSOP>iDQSJT&i@C?UPgZIU?DvyMnu_JnF1;l6XDb#3gJb|RRe z4Qa5BSNPt$FhSK5sA^mLd^;3Q#lAEn(~=fHXc9)Yi)%<2$e~Vv!kO}3TU!euh@X?R zsZdRZ7ei)3b$CyJTF^!_8W8u#t#dVKa2%Fw^t=o2mQjtV7&*N>n-0xJ6w|19^-&^O zdy+<2kOO<&Iw7xkvtf(#otj*N0tH&`h8f~I=8)lJwGUYewpj6?pxa5DYfdXvr$9-& z@+Xtgxt7E{r-NVrAL&;A4U->6zt8m4PR6JHKR5Mp))Jk3aQy4n#~;KboYQS}fkh>> zJI!6S?X_QRDxwPb(*D!I(80=GzdoWRUFrp(RIlV@HS6ODO8G|@eQq4FG9!T-!d-GV z1Wp)P)Tl2cT-65mN2L%xsd`zQ@oC4$P{^}!u^W19Uc9g>^$&Z>9(CdQxB%cU9NTOT@fB>1y3R? zoG(ZlHTt8LCE@9e=2J@MoE{5hE_nrS-3|93e=?4GMTbyld-N%AXG&RgbDMrb~C02IQt%DIUi z=QN^ayHPZE8g}V_WiAF0EWf$hsJ*U1hqxr}5%OZH+thcQ_F|y!J!n}FH+E~I06A7R zlT~@RGtpfVRy5$zQc3OaRrMDB=z}T$ zyN50fN*=*tgSD7?_5fv4jEz^9dK%%9^O~G1oNNsR( z8@9IK)wKjD0p1PQmV{Up*i3OXb5of?85R>bjyvz!eGjX=vfzHQ3yh#Fp`NS_A(hS# zp<_v1oPEAwT+33L2bv~>Q`#}-7-Hqe;3&L$1Cyu>p}q(CC$?w^c|=Qcs378QNgGSJ z%1)b01+Mo?1*a%+(HtUF^L8EeRp7%J#n4WF&chyed*rc{VZnyUj8ZG`fTj?}`p&5( zL3nYwX0;E+TO-y={?%?h&PN)Sz3SKVt-^2D4EBlYO?WUFge^?*G*3~KfYO!id zn51Q#se83cuhJ{WnJedY*CEWCy=d$6|1d>g*N!$gplbcEG=a7V+=MBwW zRlasnh^eRiaN}Vruf`_iY24!1&3@TQ=(N3x>&N=y+)_vfDIdG#ID#X0je__vTC!mX z!TGRI7siuayEBQlcl7S|p+R{i5udm8P2&2Utc-HzrRcm$+2Z)oGJ*ONjLENi=TeoXzqm0swbr_{;YQ^y zH1#K@Q+chO^TR>lhFOybWt|q#c*6=5(O#8h6E)v;C?KN=$Gno1sdTaaye{d(Mvu!o zMg5+>_`?FVi1rmF5pwuoCRqD;7jfR=P!_=v_bt%Xct5Z11=`0+xa&tYY=XdX= z0oxevv>@i7;Uv$Byt-E@rFYT%{g?ES9$J8ifX|&-VaFj{;Fel`){T?c!c67nbc{f$ z6JWCbm+uAx0ikaa-sa9rPJm_MP0@>d&mQ%%9*sCt5N9+vR5Zf8z$iztr8too?+{D$2VU#wL*BvgHk&h} z865tU@;ct3Zr|&;mic>Cx4dc*{CJe&K|VRkDJh{$ zW?pmje*M*34;uJh6fZUkGGE^v$VtCOib{wLx|kL%<u2hS-$IvK-XWO}7YI zgoTczw2iusr=78dYY=cREkQwdCA{o|eX4<2NO=VF10o^x(AKx=kh_^!NUFg*>&Qyrzw$)fUc5v+7;jt7 z>U1Jdyi~?vf-BCMain{1yaSwk$yw4-a))`x{SV#DgmhtFediQ(R%36zx5o@{9NsD2 z0h*f>jnp9}(N4+%dVH-IPP_&*F9+%^sl3@;kweRT*IGLJ_Vv;kl+pml>(s}z+~fsh z>BJk#Dm63h5$Yv8V?GF{H1SRz0$FDIcgf&Hs~T%kW`0;!SyeV;2KD{f?bq|2Pk2wH zH@twoo-))Fq&S@f|Fc|5D5L$)#@O8Mvr*UBPQTMpqA4Ah#{c&fu++y4E6z+L=TK8G zRb~_*R8Vx^oh_ZUU|N(0o*4T$as2bt#H=mceP+1us@3Flw!b=MY8SV<_6hZT8jOk-@8vIh3hLu>fuv@4$xx}Z!Kj=6R_;Ii zvw9;k>1L>un`Ce^ap3ink>NK_Si@XnE6RVBl>R8lNlhut<@MShNG68|r%{&ED9f2t zkX=tw(yg;}OJv4*uTlzvc5lZ~p8n9@qtI+dw!j>#I=+Gay2bm`xhnLirBPq?%b3_g zW_fY$FtDVC{u!4Qjw_HAjvWWJD-zoE+M3#R+92JPRfM`F?;cwq?;bY{Ugb!nbf&Ro z3fa;n&@V93?_yklBLk^lpX|H&aJI9fzL^+cU|u$?x{iPL5bM9Oe|)m1cTlcT-YUz& zC^vtbaEI$^H0oBN--S!3%+zI161ECMsVmrSLfW}f)0wlA-BD~`*}v0>V#5y{dQNv8 zBR#$&?f1)PwX1=BKRaQmFYev@pPno2*EH8cICIQP?No!jkGkN+zr|}tl)VMj2k{=1 zxJi)-dXvZkeWGjM`|nNA3|RW&+jnEb7sIMNPelk(29n1AuIwl_aj20ivSL{dYm|#5 zmLw3PsYKdAFiD=uB zj;4C14g;1>u9^Jg2`0lshJJWodKX_qi7YaE$xy~ma6@3{@WQaXkjTg+7eLh46`>(w zy`+Kug(@B}PlA#9<$6aAhe^w%5r}%UmLSzjA7Od$>-B?YAD5a> z;`1IJBUZPm_!l3aAuum!eoRwmX{5KYHWer$cl{pbYq7Pob+9$jG#73m=zIKwefRlM zUju$WJj`I;=0g1eUnOO)9~t}JbA6tf$8UVMsj{!Ql9!osr7{=g1?Gh2N9j`0*67egJA?=9?W>7f2=JwvmI6 znCL5?ibZXCzGT~0+KcEf=UYwLhPi__iucFMGsAa-^YHO4fCGkFa8}mpN%R2bX8zsG zezWFztLC2c!n>fB;#nBQV&8#rifA173|hj7!I7GzlMNQBQzySlS8On^Q!{UL& z1cx|c0Py!H_bVPylP>x$r>?1OIY>BsCP-ePY3K-yFJaN~)>E(dh&1q|Uy)&@OM%<{IgRjb32PhWn8cd@^F$eCC)FZ?^liD+C$Jz}KUU&4{a< zM)p6fGB}9U#{XT;q%HAC|KqHQ{3xwm8+*w3waQ_zbkxdB3lT zk4%KbvoZktycr)ALY)~~7sU;r`zs$&nk9*BL2Ojv-gw7#OE4BFQh&3id{5 z;$~^HwOaC;T0(Ip27G$)3B_5p6SN5&$Rq^>BtB^GnTGLU#^AT(1BgRe)qgeOdn2Q62^cU5_S)AAJe*r{UpcKv>BJh=TL;ZTA;&O47gjxK=?JQiDO;d z?y>B-uzP#|eQi+^UAl7>1|Ghj&!7K1d!uLVx-^)6X02g9%`~_q*HmbD^pvTkze^ob z*MFC4Ox5V9`#ECl66OlctxYh`Kgv;ToPi$>!xXQ=XcoH;Y{JAeZQm~ARhRJ8fyJZq zGY9EH>x`9R!J$Xk;-x56Jlci>Szc7AIV?dHzS<;OIt6jXvn*b#uEV3JzPz2jwe+ZS zC?GK|*e|&}0gu+G2Hg)KHK`Bo)g-59B$KnUeJW??f-e`8Bxe*9S4WMF*F+bUrcz4E z125km_pZsMrDiCj;^Ih;#$wjTVnZIr*}=x6Lqf-*?yUj{ckh!eSqQp^P0+oj8?UQ9 zqOBgUeoZ}rMIPf%p@4G_bI&yM8x!>NJ8m+pbfxq&yqeIH8zIwY^%S#0?lO>+?vg6X zwQx849N+tDy^=#gP8Gq-URy1xa~WO@Y*WiS=(W3ygvJVLZXL-(@2nYF^RQWyeu$e= z(%}~SJx2S@2u5Cd=j6@Ov<_ULoA6nB>Dgrw0cY)arJ=-jXg`(WRn_}sUEWq#Q+?xM zUl9G)!^*nWE5!w#E>?~%0hw{3(TiERI5}B*|4VJFJw~{u$$M?{oj_YlwJ@QfzK-u| z%~4YGEYsd-GRbg~X+JyBZEJLYa>8h?*B1PSJFU-KCq*U4`2;sawGrhq;`L1BW$V~| zT9Y%=%X7)9?)%IgV^7;2XXb`jfStOm3#hC`G4bj38esp_dyF)RW_oq?d`(rtZLL*8 zeDzPDp)VFW7x>GYQWD}WX~sxHxta}@C;t&ch})Hf?zmK?kJxG{7@DYhWr575U>&Uv z@W+OIiz@wn3o88l3yOXHii`gVC>WkoQZ_VFIBR4|G%|z}g*L=eVohUBa%pmPBR~IV zoiZJ0sjwxU-beJ-lm4T6{@i(`YEnZXzC1C=*WcgLv?GrOJVh6+jPzBd#COjr8OfZi z_P87ypII60dsfduYj4pBntyXVCGA>5K#jPmiq1I$71_{A#18l-VU=C97zE^$W8m_| z%J3<*QX!^tBc9|$ZYeZ3SlG^%2FQ4;E&Sid3#|XPH~~wCf~S9)JXR&IlXBruciH{| z_u3E|&fm;NR`SeGcl?obcvn$v|3op#Bb)#%S3PS6M=L4^hZ~G)nIm#HN3LDQdbx#K zS-OzCO+DR0EibqRB5rWL5&TXhx<>R5vw83bhLHlj;zJx6NZsn~{_%zB?)KX2#1Ji$ zf??HMii)49ix?3CVO(x7siIU-(9jB#yFdy(B0x0ZV7x5E00&Es2h+Ey)1T zW!T=Id&TS-@2X9>G^;0TZ>?d-eIbK3D#1vmM$d_ah^g`A=5jRKp@3-(!a zRxUpNcF#q@bd?{Q(XDB{=A6?w*j8G--oCVA9S|7n>qiZ|&`+R!>=_K}u#mP;H*L4^ zd$#k=bG?8PiW+f7fI18!~+1bwu4LpWYQXTrF6l>neU(dRcWZ;QQ z<=n%OW#E)wf2%ROVJs=3Y;6FvAKGmVY`H4sN6&Ur4obr$ekgQ^exYOktY*=IoKG4Q z#(UoxE!V7x`@2HP^R*T+EQy;C%xFzOa$)4O7j)%eW2r_UzHvcp%K+VGqK+N6W^ znzPg~6hcx*+m^T^ObS(ji>;_1WM}H zj61>Vo@ySGA>>6C$$ta*{@N$h%-Y9ueRWT>GU^w!??3h|zATW*wLgJU3{qb2*vgBW zi<-+hzH*0vNJNrtT)3lCY(!gZ%s_06k+r0@j$ZjqYW7C~ZcDt#y z9Xweh9fu2uraB)Db5#;Pa#~SG9C)_){Pdj?Q3aHN@QZF!z*;2etM8PIqUH6cfT!Ce zWbgMia7aYuM>4#;J!T;LjIX`}1y#miTqSxuT-4BRLgv)~xBGyc5)0QI*Zx{ z2D&&01=+zNQ6xJ@ER|0zEeE*5dY9@hGZ)E0a^Z5I&%a$HpZl;p;ZPEKwEMxeaBpG0 z+NeX(KMo$lvUkOIWp*WWv0@J%{_Iaa%vVno3A#$3#SUIdNXkqCwM}7arW}=$>98+^ zmP^YG+2`v1?*Esi8@-IV~OPQBf2cpmS1zJ@>&ZR%7Z;d z7&*M=AQiO87Al|bbvNzUJ0T~v&!JYfLT&Dqigs#FX)97yg&WRFM|XFR zQq#~qfS=v?e+bM@1*8NtS2ssty`!=9al0$R>=2wHoxhysEYPfZ&?qUF5))sWM~-Po zz7#kV3fJo}$R9<#O@VUM*DUzHQ6<$-GMs2uODtmwFpRdGco3JZE|MiRaBu`RW_g7 zrIJ+l*lL%P=Tt3CLyMWJ%6Us2EkhGf+sNRUr~z}sZtq8BrBk;JmkwY0_d@lFTmSr> z>B$Q}j;j}I^@~3M8zcMyFe2pl6Xv+bN)H^KB_{sbfBxCEp_~6gf8A2B>%t#AVYlat zUDoXS*bATg>E*E+`@A7DJPwL=qOBeth|*bll>t9>kS>+Zx%L4V|7)f>x$5GtW_XoO zFk2crpucR%QCVof-D-e$D;V&1tahM`KnLY^Z?2nLEZuh6F57K;QoYyU?EeR5|3NbX zj{vHd*Ve{FgI($_sZh|m5o^fJHM5*&B9uS+`)M*u3-i$8_-xF2nBO^hsq1%WgB!83 z++0QD{>Bk^b!&7Z$h*0zIqqLbkipCEARDJFLea{$uL(ET>%~0Vp_*ZR9WV(>-u6z1 zLghv*rkiVg+~1d=W&x$DCyp!tk%PJyd>Z7Q-;C#-jmi0Kud$t_`HDU0(~X8T^b;Z& zLd{B>1Zg|oVBB9W)IHt5)D1*@<%wPwOXR`ZXsZ@DQzr$>;M}v8xTGz^nYzT5Q}akD z3-+Fvvi8`d?fr>W-kQANY|a6kd;Nb72VkdwqYOdzu(xYpvNl*F3;l;^F#gC-)jQK} zxWTafx`1AIEN{LK@?Vo*S76h1a$z~Fec(l<)vI>TuB=AaUe=&r+uNB7UPExp-}gaR z3bo}_5&7clGsW^9=`uL*QEh^SJOJE~UuVt(3Z=3Pb~^K&Q>yzwj52>aN7e{z?AG2# zImb1avD&(AxbsV~9z3x(BiK8IypwQY$Jv5%P46dKjucK*pM#*UH7eZ7L^=(>!OJIK z)T@i9eOxnW`;FS*X8FGg;_|p39h4*S z(U_J|A#M1L8?+~y6nHMqs{vrE{w6q4<#Xip>VCdyrkn+zvxD;7EOHXW8T~)p1j;V> z{@=rv7;Jf;J}w*7&-xpVoQshg0BX#3=@TfvvzQ%JWWj~=pL7k>xZY=k{T1CCp&V6t z+a?(L>BoV#Lm%hzJo^cgkE@U9bQO^i2W7HU@07+wYPMJZ(LZ1ru*2N)2v9ay#l7&l z>A6*Z$M2f}@ZwLr5&*mt7Qg*E@ONRBn!(BJ&gP}H z{%vp7vK;CP4W+#mHHm`mBER{`dwKKOH>8(oVwL1z%VfF=94hie%K>@S7~we<23p_@ z7s#UmX)r-ZvAxy@+?xWT*pw#AYw^=s(h=OY1 zgydtbb~H~FOo^!#&q3fM$Zk@cCY9@`ao$r@TLQQ7l^q}D#BL4^7wI2WjcA}Y|L5xR zINICUTz9WRXmP8tHb0cQN_arS>H6KtIzv#HUDeiHpLJmK^-!r%K5BF0Hw_$b534VW zJ6SwB>M+7|=n^NN{!lnhmE!oNa;)e3 z(dB-|HJ5fVXHwkogSZa~dwS%1Vh9mi*5Z?%B{nEOoIq_bf?gC}4L7Ioxosj_n(SSyf6)Xf`87NR2!a;z^ zMQBK41#mpj?T_H#vOfwJ|6Fu`E(Z3;5)-{Y&OtS+%f$+ljyu62F(f}9-*6!rDQQzJ zq#vxRpXeQE800Czv=R_Q7S|qg3MsA-7qI(fGGAYbY1cipg zAlb7jNJc;FXH4RE3hoXMQI<5NQB0!1Laf`<*IS}7(u8Ef&vPP(u;!OEHq_BGwRA!p ON3B$ub4ks;IsgFgYn-P5 literal 0 HcmV?d00001 diff --git a/webui/web/assets/fonts/roboto-500.woff2 b/webui/web/assets/fonts/roboto-500.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2360b721dc266e107240483333017cb941baf4e9 GIT binary patch literal 11072 zcmV-GE5FotPew8T0RR9104qQM4gdfE08}&p04nML0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/webui/web/assets/js/crypto-js.min.js b/webui/web/assets/js/crypto-js.min.js new file mode 100644 index 00000000..fb96be78 --- /dev/null +++ b/webui/web/assets/js/crypto-js.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports?module.exports=exports=e():"function"==typeof define&&define.amd?define([],e):t.CryptoJS=e()}(this,function(){var W,O,I,U,K,X,L,l,j,T,t,N,q,e,Z,V,G,J,Q,Y,$,t1,e1,r1,i1,o1,n1,s,s1,c1,a1,h1,l1,o,f1,r,d1,u1,n,c,a,h,f,d,i=function(h){var i;if("undefined"!=typeof window&&window.crypto&&(i=window.crypto),"undefined"!=typeof self&&self.crypto&&(i=self.crypto),!(i=!(i=!(i="undefined"!=typeof globalThis&&globalThis.crypto?globalThis.crypto:i)&&"undefined"!=typeof window&&window.msCrypto?window.msCrypto:i)&&"undefined"!=typeof global&&global.crypto?global.crypto:i)&&"function"==typeof require)try{i=require("crypto")}catch(t){}var r=Object.create||function(t){return e.prototype=t,t=new e,e.prototype=null,t};function e(){}var t={},o=t.lib={},n=o.Base={extend:function(t){var e=r(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),(e.init.prototype=e).$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},l=o.WordArray=n.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,o=t.sigBytes;if(this.clamp(),i%4)for(var n=0;n>>2]>>>24-n%4*8&255;e[i+n>>>2]|=s<<24-(i+n)%4*8}else for(var c=0;c>>2]=r[c>>>2];return this.sigBytes+=o,this},clamp:function(){var t=this.words,e=this.sigBytes;t[e>>>2]&=4294967295<<32-e%4*8,t.length=h.ceil(e/4)},clone:function(){var t=n.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],r=0;r>>2]>>>24-o%4*8&255;i.push((n>>>4).toString(16)),i.push((15&n).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new l.init(r,e/2)}},a=s.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],o=0;o>>2]>>>24-o%4*8&255;i.push(String.fromCharCode(n))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new l.init(r,e)}},f=s.Utf8={stringify:function(t){try{return decodeURIComponent(escape(a.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return a.parse(unescape(encodeURIComponent(t)))}},d=o.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(t){var e,r=this._data,i=r.words,o=r.sigBytes,n=this.blockSize,s=o/(4*n),c=(s=t?h.ceil(s):h.max((0|s)-this._minBufferSize,0))*n,t=h.min(4*c,o);if(c){for(var a=0;a>>2]|=t[i]<<24-i%4*8;I.call(this,r,e)}else I.apply(this,arguments)}).prototype=p),i),p1=u.lib.WordArray;function _1(t){return t<<8&4278255360|t>>>8&16711935}(u=u.enc).Utf16=u.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],o=0;o>>2]>>>16-o%4*8&65535;i.push(String.fromCharCode(n))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return p1.create(r,2*e)}},u.Utf16LE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],o=0;o>>2]>>>16-o%4*8&65535);i.push(String.fromCharCode(n))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>1]|=_1(t.charCodeAt(i)<<16-i%2*16);return p1.create(r,2*e)}},U=(p=i).lib.WordArray,p.enc.Base64={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=this._map,o=(t.clamp(),[]),n=0;n>>2]>>>24-n%4*8&255)<<16|(e[n+1>>>2]>>>24-(n+1)%4*8&255)<<8|e[n+2>>>2]>>>24-(n+2)%4*8&255,c=0;c<4&&n+.75*c>>6*(3-c)&63));var a=i.charAt(64);if(a)for(;o.length%4;)o.push(a);return o.join("")},parse:function(t){var e=t.length,r=this._map;if(!(i=this._reverseMap))for(var i=this._reverseMap=[],o=0;o>>6-u%4*2,s=s|n,f[d>>>2]|=s<<24-d%4*8,d++);return U.create(f,d)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},K=(u=i).lib.WordArray,u.enc.Base64url={stringify:function(t,e){for(var r=t.words,i=t.sigBytes,o=(e=void 0===e?!0:e)?this._safe_map:this._map,n=(t.clamp(),[]),s=0;s>>2]>>>24-s%4*8&255)<<16|(r[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|r[s+2>>>2]>>>24-(s+2)%4*8&255,a=0;a<4&&s+.75*a>>6*(3-a)&63));var h=o.charAt(64);if(h)for(;n.length%4;)n.push(h);return n.join("")},parse:function(t,e){var r=t.length,i=(e=void 0===e?!0:e)?this._safe_map:this._map;if(!(o=this._reverseMap))for(var o=this._reverseMap=[],n=0;n>>6-u%4*2,c=c|s,f[d>>>2]|=c<<24-d%4*8,d++);return K.create(f,d)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"};for(var y1=Math,p=i,g1=(u=p.lib).WordArray,v1=u.Hasher,u=p.algo,A=[],B1=0;B1<64;B1++)A[B1]=4294967296*y1.abs(y1.sin(B1+1))|0;function z(t,e,r,i,o,n,s){t=t+(e&r|~e&i)+o+s;return(t<>>32-n)+e}function H(t,e,r,i,o,n,s){t=t+(e&i|r&~i)+o+s;return(t<>>32-n)+e}function C(t,e,r,i,o,n,s){t=t+(e^r^i)+o+s;return(t<>>32-n)+e}function R(t,e,r,i,o,n,s){t=t+(r^(e|~i))+o+s;return(t<>>32-n)+e}u=u.MD5=v1.extend({_doReset:function(){this._hash=new g1.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,o=t[i];t[i]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8)}var n=this._hash.words,s=t[e+0],c=t[e+1],a=t[e+2],h=t[e+3],l=t[e+4],f=t[e+5],d=t[e+6],u=t[e+7],p=t[e+8],_=t[e+9],y=t[e+10],g=t[e+11],v=t[e+12],B=t[e+13],w=t[e+14],k=t[e+15],x=z(n[0],S=n[1],m=n[2],b=n[3],s,7,A[0]),b=z(b,x,S,m,c,12,A[1]),m=z(m,b,x,S,a,17,A[2]),S=z(S,m,b,x,h,22,A[3]);x=z(x,S,m,b,l,7,A[4]),b=z(b,x,S,m,f,12,A[5]),m=z(m,b,x,S,d,17,A[6]),S=z(S,m,b,x,u,22,A[7]),x=z(x,S,m,b,p,7,A[8]),b=z(b,x,S,m,_,12,A[9]),m=z(m,b,x,S,y,17,A[10]),S=z(S,m,b,x,g,22,A[11]),x=z(x,S,m,b,v,7,A[12]),b=z(b,x,S,m,B,12,A[13]),m=z(m,b,x,S,w,17,A[14]),x=H(x,S=z(S,m,b,x,k,22,A[15]),m,b,c,5,A[16]),b=H(b,x,S,m,d,9,A[17]),m=H(m,b,x,S,g,14,A[18]),S=H(S,m,b,x,s,20,A[19]),x=H(x,S,m,b,f,5,A[20]),b=H(b,x,S,m,y,9,A[21]),m=H(m,b,x,S,k,14,A[22]),S=H(S,m,b,x,l,20,A[23]),x=H(x,S,m,b,_,5,A[24]),b=H(b,x,S,m,w,9,A[25]),m=H(m,b,x,S,h,14,A[26]),S=H(S,m,b,x,p,20,A[27]),x=H(x,S,m,b,B,5,A[28]),b=H(b,x,S,m,a,9,A[29]),m=H(m,b,x,S,u,14,A[30]),x=C(x,S=H(S,m,b,x,v,20,A[31]),m,b,f,4,A[32]),b=C(b,x,S,m,p,11,A[33]),m=C(m,b,x,S,g,16,A[34]),S=C(S,m,b,x,w,23,A[35]),x=C(x,S,m,b,c,4,A[36]),b=C(b,x,S,m,l,11,A[37]),m=C(m,b,x,S,u,16,A[38]),S=C(S,m,b,x,y,23,A[39]),x=C(x,S,m,b,B,4,A[40]),b=C(b,x,S,m,s,11,A[41]),m=C(m,b,x,S,h,16,A[42]),S=C(S,m,b,x,d,23,A[43]),x=C(x,S,m,b,_,4,A[44]),b=C(b,x,S,m,v,11,A[45]),m=C(m,b,x,S,k,16,A[46]),x=R(x,S=C(S,m,b,x,a,23,A[47]),m,b,s,6,A[48]),b=R(b,x,S,m,u,10,A[49]),m=R(m,b,x,S,w,15,A[50]),S=R(S,m,b,x,f,21,A[51]),x=R(x,S,m,b,v,6,A[52]),b=R(b,x,S,m,h,10,A[53]),m=R(m,b,x,S,y,15,A[54]),S=R(S,m,b,x,c,21,A[55]),x=R(x,S,m,b,p,6,A[56]),b=R(b,x,S,m,k,10,A[57]),m=R(m,b,x,S,d,15,A[58]),S=R(S,m,b,x,B,21,A[59]),x=R(x,S,m,b,l,6,A[60]),b=R(b,x,S,m,g,10,A[61]),m=R(m,b,x,S,a,15,A[62]),S=R(S,m,b,x,_,21,A[63]),n[0]=n[0]+x|0,n[1]=n[1]+S|0,n[2]=n[2]+m|0,n[3]=n[3]+b|0},_doFinalize:function(){for(var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes,o=(e[i>>>5]|=128<<24-i%32,y1.floor(r/4294967296)),o=(e[15+(64+i>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process(),this._hash),n=o.words,s=0;s<4;s++){var c=n[s];n[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return o},clone:function(){var t=v1.clone.call(this);return t._hash=this._hash.clone(),t}}),p.MD5=v1._createHelper(u),p.HmacMD5=v1._createHmacHelper(u),u=(p=i).lib,X=u.WordArray,L=u.Hasher,u=p.algo,l=[],u=u.SHA1=L.extend({_doReset:function(){this._hash=new X.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],o=r[1],n=r[2],s=r[3],c=r[4],a=0;a<80;a++){a<16?l[a]=0|t[e+a]:(h=l[a-3]^l[a-8]^l[a-14]^l[a-16],l[a]=h<<1|h>>>31);var h=(i<<5|i>>>27)+c+l[a];h+=a<20?1518500249+(o&n|~o&s):a<40?1859775393+(o^n^s):a<60?(o&n|o&s|n&s)-1894007588:(o^n^s)-899497514,c=s,s=n,n=o<<30|o>>>2,o=i,i=h}r[0]=r[0]+i|0,r[1]=r[1]+o|0,r[2]=r[2]+n|0,r[3]=r[3]+s|0,r[4]=r[4]+c|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=Math.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=L.clone.call(this);return t._hash=this._hash.clone(),t}}),p.SHA1=L._createHelper(u),p.HmacSHA1=L._createHmacHelper(u);var w1=Math,p=i,k1=(u=p.lib).WordArray,x1=u.Hasher,u=p.algo,b1=[],m1=[];function S1(t){return 4294967296*(t-(0|t))|0}for(var A1=2,z1=0;z1<64;)!function(t){for(var e=w1.sqrt(t),r=2;r<=e;r++)if(!(t%r))return;return 1}(A1)||(z1<8&&(b1[z1]=S1(w1.pow(A1,.5))),m1[z1]=S1(w1.pow(A1,1/3)),z1++),A1++;var _=[],u=u.SHA256=x1.extend({_doReset:function(){this._hash=new k1.init(b1.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],o=r[1],n=r[2],s=r[3],c=r[4],a=r[5],h=r[6],l=r[7],f=0;f<64;f++){f<16?_[f]=0|t[e+f]:(d=_[f-15],u=_[f-2],_[f]=((d<<25|d>>>7)^(d<<14|d>>>18)^d>>>3)+_[f-7]+((u<<15|u>>>17)^(u<<13|u>>>19)^u>>>10)+_[f-16]);var d=i&o^i&n^o&n,u=l+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&a^~c&h)+m1[f]+_[f],l=h,h=a,a=c,c=s+u|0,s=n,n=o,o=i,i=u+(((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+d)|0}r[0]=r[0]+i|0,r[1]=r[1]+o|0,r[2]=r[2]+n|0,r[3]=r[3]+s|0,r[4]=r[4]+c|0,r[5]=r[5]+a|0,r[6]=r[6]+h|0,r[7]=r[7]+l|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=w1.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=x1.clone.call(this);return t._hash=this._hash.clone(),t}}),p=(p.SHA256=x1._createHelper(u),p.HmacSHA256=x1._createHmacHelper(u),j=(p=i).lib.WordArray,u=p.algo,T=u.SHA256,u=u.SHA224=T.extend({_doReset:function(){this._hash=new j.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=T._doFinalize.call(this);return t.sigBytes-=4,t}}),p.SHA224=T._createHelper(u),p.HmacSHA224=T._createHmacHelper(u),i),H1=p.lib.Hasher,y=(u=p.x64).Word,C1=u.WordArray,u=p.algo;function g(){return y.create.apply(y,arguments)}for(var R1=[g(1116352408,3609767458),g(1899447441,602891725),g(3049323471,3964484399),g(3921009573,2173295548),g(961987163,4081628472),g(1508970993,3053834265),g(2453635748,2937671579),g(2870763221,3664609560),g(3624381080,2734883394),g(310598401,1164996542),g(607225278,1323610764),g(1426881987,3590304994),g(1925078388,4068182383),g(2162078206,991336113),g(2614888103,633803317),g(3248222580,3479774868),g(3835390401,2666613458),g(4022224774,944711139),g(264347078,2341262773),g(604807628,2007800933),g(770255983,1495990901),g(1249150122,1856431235),g(1555081692,3175218132),g(1996064986,2198950837),g(2554220882,3999719339),g(2821834349,766784016),g(2952996808,2566594879),g(3210313671,3203337956),g(3336571891,1034457026),g(3584528711,2466948901),g(113926993,3758326383),g(338241895,168717936),g(666307205,1188179964),g(773529912,1546045734),g(1294757372,1522805485),g(1396182291,2643833823),g(1695183700,2343527390),g(1986661051,1014477480),g(2177026350,1206759142),g(2456956037,344077627),g(2730485921,1290863460),g(2820302411,3158454273),g(3259730800,3505952657),g(3345764771,106217008),g(3516065817,3606008344),g(3600352804,1432725776),g(4094571909,1467031594),g(275423344,851169720),g(430227734,3100823752),g(506948616,1363258195),g(659060556,3750685593),g(883997877,3785050280),g(958139571,3318307427),g(1322822218,3812723403),g(1537002063,2003034995),g(1747873779,3602036899),g(1955562222,1575990012),g(2024104815,1125592928),g(2227730452,2716904306),g(2361852424,442776044),g(2428436474,593698344),g(2756734187,3733110249),g(3204031479,2999351573),g(3329325298,3815920427),g(3391569614,3928383900),g(3515267271,566280711),g(3940187606,3454069534),g(4118630271,4000239992),g(116418474,1914138554),g(174292421,2731055270),g(289380356,3203993006),g(460393269,320620315),g(685471733,587496836),g(852142971,1086792851),g(1017036298,365543100),g(1126000580,2618297676),g(1288033470,3409855158),g(1501505948,4234509866),g(1607167915,987167468),g(1816402316,1246189591)],D1=[],E1=0;E1<80;E1++)D1[E1]=g();u=u.SHA512=H1.extend({_doReset:function(){this._hash=new C1.init([new y.init(1779033703,4089235720),new y.init(3144134277,2227873595),new y.init(1013904242,4271175723),new y.init(2773480762,1595750129),new y.init(1359893119,2917565137),new y.init(2600822924,725511199),new y.init(528734635,4215389547),new y.init(1541459225,327033209)])},_doProcessBlock:function(W,O){for(var t=this._hash.words,e=t[0],r=t[1],i=t[2],o=t[3],n=t[4],s=t[5],c=t[6],t=t[7],I=e.high,a=e.low,U=r.high,h=r.low,K=i.high,l=i.low,X=o.high,f=o.low,L=n.high,d=n.low,j=s.high,u=s.low,T=c.high,p=c.low,N=t.high,_=t.low,y=I,g=a,v=U,B=h,w=K,k=l,q=X,x=f,b=L,m=d,Z=j,S=u,V=T,G=p,J=N,Q=_,A=0;A<80;A++)var z,H,C=D1[A],R=(A<16?(H=C.high=0|W[O+2*A],z=C.low=0|W[O+2*A+1]):(F=(P=D1[A-15]).high,P=P.low,M=(E=D1[A-2]).high,E=E.low,D=(R=D1[A-7]).high,R=R.low,$=(Y=D1[A-16]).high,H=(H=((F>>>1|P<<31)^(F>>>8|P<<24)^F>>>7)+D+((z=(D=(P>>>1|F<<31)^(P>>>8|F<<24)^(P>>>7|F<<25))+R)>>>0>>0?1:0))+((M>>>19|E<<13)^(M<<3|E>>>29)^M>>>6)+((z+=P=(E>>>19|M<<13)^(E<<3|M>>>29)^(E>>>6|M<<26))>>>0

>>0?1:0),z+=F=Y.low,C.high=H=H+$+(z>>>0>>0?1:0),C.low=z),b&Z^~b&V),D=m&S^~m&G,E=y&v^y&w^v&w,M=(g>>>28|y<<4)^(g<<30|y>>>2)^(g<<25|y>>>7),P=R1[A],Y=P.high,$=P.low,F=Q+((m>>>14|b<<18)^(m>>>18|b<<14)^(m<<23|b>>>9)),C=J+((b>>>14|m<<18)^(b>>>18|m<<14)^(b<<23|m>>>9))+(F>>>0>>0?1:0),t1=M+(g&B^g&k^B&k),J=V,Q=G,V=Z,G=S,Z=b,S=m,b=q+(C=C+R+((F=F+D)>>>0>>0?1:0)+Y+((F=F+$)>>>0<$>>>0?1:0)+H+((F=F+z)>>>0>>0?1:0))+((m=x+F|0)>>>0>>0?1:0)|0,q=w,x=k,w=v,k=B,v=y,B=g,y=C+(((y>>>28|g<<4)^(y<<30|g>>>2)^(y<<25|g>>>7))+E+(t1>>>0>>0?1:0))+((g=F+t1|0)>>>0>>0?1:0)|0;a=e.low=a+g,e.high=I+y+(a>>>0>>0?1:0),h=r.low=h+B,r.high=U+v+(h>>>0>>0?1:0),l=i.low=l+k,i.high=K+w+(l>>>0>>0?1:0),f=o.low=f+x,o.high=X+q+(f>>>0>>0?1:0),d=n.low=d+m,n.high=L+b+(d>>>0>>0?1:0),u=s.low=u+S,s.high=j+Z+(u>>>0>>0?1:0),p=c.low=p+G,c.high=T+V+(p>>>0>>0?1:0),_=t.low=_+Q,t.high=N+J+(_>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(128+i>>>10<<5)]=Math.floor(r/4294967296),e[31+(128+i>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=H1.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32}),p.SHA512=H1._createHelper(u),p.HmacSHA512=H1._createHmacHelper(u),u=(p=i).x64,t=u.Word,N=u.WordArray,u=p.algo,q=u.SHA512,u=u.SHA384=q.extend({_doReset:function(){this._hash=new N.init([new t.init(3418070365,3238371032),new t.init(1654270250,914150663),new t.init(2438529370,812702999),new t.init(355462360,4144912697),new t.init(1731405415,4290775857),new t.init(2394180231,1750603025),new t.init(3675008525,1694076839),new t.init(1203062813,3204075428)])},_doFinalize:function(){var t=q._doFinalize.call(this);return t.sigBytes-=16,t}}),p.SHA384=q._createHelper(u),p.HmacSHA384=q._createHmacHelper(u);for(var M1=Math,p=i,P1=(u=p.lib).WordArray,F1=u.Hasher,W1=p.x64.Word,u=p.algo,O1=[],I1=[],U1=[],v=1,B=0,K1=0;K1<24;K1++){O1[v+5*B]=(K1+1)*(K1+2)/2%64;var X1=(2*v+3*B)%5;v=B%5,B=X1}for(v=0;v<5;v++)for(B=0;B<5;B++)I1[v+5*B]=B+(2*v+3*B)%5*5;for(var L1=1,j1=0;j1<24;j1++){for(var T1,N1=0,q1=0,Z1=0;Z1<7;Z1++)1&L1&&((T1=(1<>>32-e}function Y1(t){return"string"==typeof t?f1:o}function $1(t,e,r){var i,o=this._iv;o?(i=o,this._iv=void 0):i=this._prevBlock;for(var n=0;n>24&255)?(r=t>>8&255,i=255&t,255===(e=t>>16&255)?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t=(t+=e<<16)+(r<<8)+i):t+=1<<24,t}u=u.SHA3=F1.extend({cfg:F1.cfg.extend({outputLength:512}),_doReset:function(){for(var t=this._state=[],e=0;e<25;e++)t[e]=new W1.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(t,e){for(var r=this._state,i=this.blockSize/2,o=0;o>>24)|4278255360&(n<<24|n>>>8);(x=r[o]).high^=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),x.low^=n}for(var c=0;c<24;c++){for(var a=0;a<5;a++){for(var h=0,l=0,f=0;f<5;f++)h^=(x=r[a+5*f]).high,l^=x.low;var d=D[a];d.high=h,d.low=l}for(a=0;a<5;a++)for(var u=D[(a+4)%5],p=D[(a+1)%5],_=p.high,p=p.low,h=u.high^(_<<1|p>>>31),l=u.low^(p<<1|_>>>31),f=0;f<5;f++)(x=r[a+5*f]).high^=h,x.low^=l;for(var y=1;y<25;y++){var g=(x=r[y]).high,v=x.low,B=O1[y],g=(l=B<32?(h=g<>>32-B,v<>>32-B):(h=v<>>64-B,g<>>64-B),D[I1[y]]);g.high=h,g.low=l}var w=D[0],k=r[0];w.high=k.high,w.low=k.low;for(a=0;a<5;a++)for(f=0;f<5;f++){var x=r[y=a+5*f],b=D[y],m=D[(a+1)%5+5*f],S=D[(a+2)%5+5*f];x.high=b.high^~m.high&S.high,x.low=b.low^~m.low&S.low}x=r[0],w=U1[c];x.high^=w.high,x.low^=w.low}},_doFinalize:function(){for(var t=this._data,e=t.words,r=(this._nDataBytes,8*t.sigBytes),i=32*this.blockSize,o=(e[r>>>5]|=1<<24-r%32,e[(M1.ceil((1+r)/i)*i>>>5)-1]|=128,t.sigBytes=4*e.length,this._process(),this._state),r=this.cfg.outputLength/8,n=r/8,s=[],c=0;c>>24)|4278255360&(h<<24|h>>>8);s.push(16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)),s.push(h)}return new P1.init(s,r)},clone:function(){for(var t=F1.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}}),p.SHA3=F1._createHelper(u),p.HmacSHA3=F1._createHmacHelper(u),Math,u=(p=i).lib,e=u.WordArray,Z=u.Hasher,u=p.algo,V=e.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),G=e.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),J=e.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),Q=e.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),Y=e.create([0,1518500249,1859775393,2400959708,2840853838]),$=e.create([1352829926,1548603684,1836072691,2053994217,0]),u=u.RIPEMD160=Z.extend({_doReset:function(){this._hash=e.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,o=t[i];t[i]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8)}for(var n,s,c,a,h,l,f=this._hash.words,d=Y.words,u=$.words,p=V.words,_=G.words,y=J.words,g=Q.words,v=n=f[0],B=s=f[1],w=c=f[2],k=a=f[3],x=h=f[4],r=0;r<80;r+=1)l=(l=Q1(l=(l=n+t[e+p[r]]|0)+(r<16?(s^c^a)+d[0]:r<32?G1(s,c,a)+d[1]:r<48?((s|~c)^a)+d[2]:r<64?J1(s,c,a)+d[3]:(s^(c|~a))+d[4])|0,y[r]))+h|0,n=h,h=a,a=Q1(c,10),c=s,s=l,l=(l=Q1(l=(l=v+t[e+_[r]]|0)+(r<16?(B^(w|~k))+u[0]:r<32?J1(B,w,k)+u[1]:r<48?((B|~w)^k)+u[2]:r<64?G1(B,w,k)+u[3]:(B^w^k)+u[4])|0,g[r]))+x|0,v=x,x=k,k=Q1(w,10),w=B,B=l;l=f[1]+c+k|0,f[1]=f[2]+a+x|0,f[2]=f[3]+h+v|0,f[3]=f[4]+n+B|0,f[4]=f[0]+s+w|0,f[0]=l},_doFinalize:function(){for(var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes,i=(e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process(),this._hash),o=i.words,n=0;n<5;n++){var s=o[n];o[n]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return i},clone:function(){var t=Z.clone.call(this);return t._hash=this._hash.clone(),t}}),p.RIPEMD160=Z._createHelper(u),p.HmacRIPEMD160=Z._createHmacHelper(u),u=(p=i).lib.Base,t1=p.enc.Utf8,p.algo.HMAC=u.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=t1.parse(e));for(var r=t.blockSize,i=4*r,t=((e=e.sigBytes>i?t.finalize(e):e).clamp(),this._oKey=e.clone()),e=this._iKey=e.clone(),o=t.words,n=e.words,s=0;s>>2];t.sigBytes-=e}},P.BlockCipher=h1.extend({cfg:h1.cfg.extend({mode:r,padding:u}),reset:function(){h1.reset.call(this);var t,e=this.cfg,r=e.iv,e=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=e.createEncryptor:(t=e.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(e,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),l1=P.CipherParams=p.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}}),r=(w.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,t=t.salt,t=t?s.create([1398893684,1701076831]).concat(t).concat(e):e;return t.toString(c1)},parse:function(t){var e,t=c1.parse(t),r=t.words;return 1398893684==r[0]&&1701076831==r[1]&&(e=s.create(r.slice(2,4)),r.splice(0,4),t.sigBytes-=16),l1.create({ciphertext:t,salt:e})}},o=P.SerializableCipher=p.extend({cfg:p.extend({format:r}),encrypt:function(t,e,r,i){i=this.cfg.extend(i);var o=t.createEncryptor(r,i),e=o.finalize(e),o=o.cfg;return l1.create({ciphertext:e,key:r,iv:o.iv,algorithm:t,mode:o.mode,padding:o.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),u=(w.kdf={}).OpenSSL={execute:function(t,e,r,i,o){i=i||s.random(8),o=(o?a1.create({keySize:e+r,hasher:o}):a1.create({keySize:e+r})).compute(t,i);t=s.create(o.words.slice(e),4*r);return o.sigBytes=4*e,l1.create({key:o,iv:t,salt:i})}},f1=P.PasswordBasedCipher=o.extend({cfg:o.cfg.extend({kdf:u}),encrypt:function(t,e,r,i){r=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize,i.salt,i.hasher),i.iv=r.iv,t=o.encrypt.call(this,t,e,r.key,i);return t.mixIn(r),t},decrypt:function(t,e,r,i){i=this.cfg.extend(i),e=this._parse(e,i.format);r=i.kdf.execute(r,t.keySize,t.ivSize,e.salt,i.hasher);return i.iv=r.iv,o.decrypt.call(this,t,e,r.key,i)}})),i.mode.CFB=((p=i.lib.BlockCipherMode.extend()).Encryptor=p.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;t2.call(this,t,e,i,r),this._prevBlock=t.slice(e,e+i)}}),p.Decryptor=p.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,o=t.slice(e,e+i);t2.call(this,t,e,i,r),this._prevBlock=o}}),p),i.mode.CTR=(r=i.lib.BlockCipherMode.extend(),w=r.Encryptor=r.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,o=this._iv,n=this._counter,s=(o&&(n=this._counter=o.slice(0),this._iv=void 0),n.slice(0));r.encryptBlock(s,0),n[i-1]=n[i-1]+1|0;for(var c=0;c>>2]|=e<<24-r%4*8,t.sigBytes+=e},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},i.pad.Iso10126={pad:function(t,e){e*=4,e-=t.sigBytes%e;t.concat(i.lib.WordArray.random(e-1)).concat(i.lib.WordArray.create([e<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},i.pad.Iso97971={pad:function(t,e){t.concat(i.lib.WordArray.create([2147483648],1)),i.pad.ZeroPadding.pad(t,e)},unpad:function(t){i.pad.ZeroPadding.unpad(t),t.sigBytes--}},i.pad.ZeroPadding={pad:function(t,e){e*=4;t.clamp(),t.sigBytes+=e-(t.sigBytes%e||e)},unpad:function(t){for(var e=t.words,r=t.sigBytes-1,r=t.sigBytes-1;0<=r;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},i.pad.NoPadding={pad:function(){},unpad:function(){}},d1=(P=i).lib.CipherParams,u1=P.enc.Hex,P.format.Hex={stringify:function(t){return t.ciphertext.toString(u1)},parse:function(t){t=u1.parse(t);return d1.create({ciphertext:t})}};for(var w=i,p=w.lib.BlockCipher,u=w.algo,k=[],r2=[],i2=[],o2=[],n2=[],s2=[],c2=[],a2=[],h2=[],l2=[],x=[],b=0;b<256;b++)x[b]=b<128?b<<1:b<<1^283;for(var m=0,S=0,b=0;b<256;b++){var E=S^S<<1^S<<2^S<<3^S<<4,f2=(k[m]=E=E>>>8^255&E^99,x[r2[E]=m]),d2=x[f2],u2=x[d2],M=257*x[E]^16843008*E;i2[m]=M<<24|M>>>8,o2[m]=M<<16|M>>>16,n2[m]=M<<8|M>>>24,s2[m]=M,c2[E]=(M=16843009*u2^65537*d2^257*f2^16843008*m)<<24|M>>>8,a2[E]=M<<16|M>>>16,h2[E]=M<<8|M>>>24,l2[E]=M,m?(m=f2^x[x[x[u2^f2]]],S^=x[x[S]]):m=S=1}var p2=[0,1,2,4,8,16,32,64,128,27,54],u=u.AES=p.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,i=4*(1+(this._nRounds=6+r)),o=this._keySchedule=[],n=0;n>>24]<<24|k[a>>>16&255]<<16|k[a>>>8&255]<<8|k[255&a]):(a=k[(a=a<<8|a>>>24)>>>24]<<24|k[a>>>16&255]<<16|k[a>>>8&255]<<8|k[255&a],a^=p2[n/r|0]<<24),o[n]=o[n-r]^a);for(var s=this._invKeySchedule=[],c=0;c>>24]]^a2[k[a>>>16&255]]^h2[k[a>>>8&255]]^l2[k[255&a]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,i2,o2,n2,s2,k)},decryptBlock:function(t,e){var r=t[e+1],r=(t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,c2,a2,h2,l2,r2),t[e+1]);t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,o,n,s,c){for(var a=this._nRounds,h=t[e]^r[0],l=t[e+1]^r[1],f=t[e+2]^r[2],d=t[e+3]^r[3],u=4,p=1;p>>24]^o[l>>>16&255]^n[f>>>8&255]^s[255&d]^r[u++],y=i[l>>>24]^o[f>>>16&255]^n[d>>>8&255]^s[255&h]^r[u++],g=i[f>>>24]^o[d>>>16&255]^n[h>>>8&255]^s[255&l]^r[u++],v=i[d>>>24]^o[h>>>16&255]^n[l>>>8&255]^s[255&f]^r[u++],h=_,l=y,f=g,d=v;_=(c[h>>>24]<<24|c[l>>>16&255]<<16|c[f>>>8&255]<<8|c[255&d])^r[u++],y=(c[l>>>24]<<24|c[f>>>16&255]<<16|c[d>>>8&255]<<8|c[255&h])^r[u++],g=(c[f>>>24]<<24|c[d>>>16&255]<<16|c[h>>>8&255]<<8|c[255&l])^r[u++],v=(c[d>>>24]<<24|c[h>>>16&255]<<16|c[l>>>8&255]<<8|c[255&f])^r[u++];t[e]=_,t[e+1]=y,t[e+2]=g,t[e+3]=v},keySize:8}),P=(w.AES=p._createHelper(u),i),_2=(w=P.lib).WordArray,w=w.BlockCipher,p=P.algo,y2=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],g2=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],v2=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],B2=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],w2=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],k2=p.DES=w.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=y2[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var o=this._subKeys=[],n=0;n<16;n++){for(var s=o[n]=[],c=v2[n],r=0;r<24;r++)s[r/6|0]|=e[(g2[r]-1+c)%28]<<31-r%6,s[4+(r/6|0)]|=e[28+(g2[r+24]-1+c)%28]<<31-r%6;s[0]=s[0]<<1|s[0]>>>31;for(r=1;r<7;r++)s[r]=s[r]>>>4*(r-1)+3;s[7]=s[7]<<5|s[7]>>>27}for(var a=this._invSubKeys=[],r=0;r<16;r++)a[r]=o[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],x2.call(this,4,252645135),x2.call(this,16,65535),b2.call(this,2,858993459),b2.call(this,8,16711935),x2.call(this,1,1431655765);for(var i=0;i<16;i++){for(var o=r[i],n=this._lBlock,s=this._rBlock,c=0,a=0;a<8;a++)c|=B2[a][((s^o[a])&w2[a])>>>0];this._lBlock=s,this._rBlock=n^c}var h=this._lBlock;this._lBlock=this._rBlock,this._rBlock=h,x2.call(this,1,1431655765),b2.call(this,8,16711935),b2.call(this,2,858993459),x2.call(this,16,65535),x2.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function x2(t,e){e=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=e,this._lBlock^=e<>>t^this._lBlock)&e;this._lBlock^=e,this._rBlock^=e<192.");var e=t.slice(0,2),r=t.length<4?t.slice(0,2):t.slice(2,4),t=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=k2.createEncryptor(_2.create(e)),this._des2=k2.createEncryptor(_2.create(r)),this._des3=k2.createEncryptor(_2.create(t))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2}),P.TripleDES=w._createHelper(p);var u=i,P=u.lib.StreamCipher,w=u.algo,m2=w.RC4=P.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],o=0;o<256;o++)i[o]=o;for(var o=0,n=0;o<256;o++){var s=o%r,s=e[s>>>2]>>>24-s%4*8&255,n=(n+i[o]+s)%256,s=i[o];i[o]=i[n],i[n]=s}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=S2.call(this)},keySize:8,ivSize:0});function S2(){for(var t=this._S,e=this._i,r=this._j,i=0,o=0;o<4;o++){var r=(r+t[e=(e+1)%256])%256,n=t[e];t[e]=t[r],t[r]=n,i|=t[(t[e]+t[r])%256]<<24-8*o}return this._i=e,this._j=r,i}function A2(){for(var t=this._X,e=this._C,r=0;r<8;r++)c[r]=e[r];e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0;for(r=0;r<8;r++){var i=t[r]+e[r],o=65535&i,n=i>>>16;a[r]=((o*o>>>17)+o*n>>>15)+n*n^((4294901760&i)*i|0)+((65535&i)*i|0)}t[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,t[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,t[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,t[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,t[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,t[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,t[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,t[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}function z2(){for(var t=this._X,e=this._C,r=0;r<8;r++)f[r]=e[r];e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0;for(r=0;r<8;r++){var i=t[r]+e[r],o=65535&i,n=i>>>16;d[r]=((o*o>>>17)+o*n>>>15)+n*n^((4294901760&i)*i|0)+((65535&i)*i|0)}t[0]=d[0]+(d[7]<<16|d[7]>>>16)+(d[6]<<16|d[6]>>>16)|0,t[1]=d[1]+(d[0]<<8|d[0]>>>24)+d[7]|0,t[2]=d[2]+(d[1]<<16|d[1]>>>16)+(d[0]<<16|d[0]>>>16)|0,t[3]=d[3]+(d[2]<<8|d[2]>>>24)+d[1]|0,t[4]=d[4]+(d[3]<<16|d[3]>>>16)+(d[2]<<16|d[2]>>>16)|0,t[5]=d[5]+(d[4]<<8|d[4]>>>24)+d[3]|0,t[6]=d[6]+(d[5]<<16|d[5]>>>16)+(d[4]<<16|d[4]>>>16)|0,t[7]=d[7]+(d[6]<<8|d[6]>>>24)+d[5]|0}u.RC4=P._createHelper(m2),w=w.RC4Drop=m2.extend({cfg:m2.cfg.extend({drop:192}),_doReset:function(){m2._doReset.call(this);for(var t=this.cfg.drop;0>>24)|4278255360&(t[r]<<24|t[r]>>>8);for(var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],o=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],r=this._b=0;r<4;r++)A2.call(this);for(r=0;r<8;r++)o[r]^=i[r+4&7];if(e){var e=e.words,n=e[0],e=e[1],n=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),s=n>>>16|4294901760&e,c=e<<16|65535&n;o[0]^=n,o[1]^=s,o[2]^=e,o[3]^=c,o[4]^=n,o[5]^=s,o[6]^=e,o[7]^=c;for(r=0;r<4;r++)A2.call(this)}},_doProcessBlock:function(t,e){var r=this._X;A2.call(this),n[0]=r[0]^r[5]>>>16^r[3]<<16,n[1]=r[2]^r[7]>>>16^r[5]<<16,n[2]=r[4]^r[1]>>>16^r[7]<<16,n[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)n[i]=16711935&(n[i]<<8|n[i]>>>24)|4278255360&(n[i]<<24|n[i]>>>8),t[e+i]^=n[i]},blockSize:4,ivSize:2}),p.Rabbit=u._createHelper(P),p=(w=i).lib.StreamCipher,u=w.algo,h=[],f=[],d=[],u=u.RabbitLegacy=p.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,r=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],o=this._b=0;o<4;o++)z2.call(this);for(o=0;o<8;o++)i[o]^=r[o+4&7];if(e){var t=e.words,e=t[0],t=t[1],e=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),t=16711935&(t<<8|t>>>24)|4278255360&(t<<24|t>>>8),n=e>>>16|4294901760&t,s=t<<16|65535&e;i[0]^=e,i[1]^=n,i[2]^=t,i[3]^=s,i[4]^=e,i[5]^=n,i[6]^=t,i[7]^=s;for(o=0;o<4;o++)z2.call(this)}},_doProcessBlock:function(t,e){var r=this._X;z2.call(this),h[0]=r[0]^r[5]>>>16^r[3]<<16,h[1]=r[2]^r[7]>>>16^r[5]<<16,h[2]=r[4]^r[1]>>>16^r[7]<<16,h[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)h[i]=16711935&(h[i]<<8|h[i]>>>24)|4278255360&(h[i]<<24|h[i]>>>8),t[e+i]^=h[i]},blockSize:4,ivSize:2}),w.RabbitLegacy=p._createHelper(u);{w=(P=i).lib.BlockCipher,p=P.algo;const F=16,D2=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],E2=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var H2={pbox:[],sbox:[]};function C2(t,e){var r=t.sbox[0][e>>24&255]+t.sbox[1][e>>16&255];return r=(r^=t.sbox[2][e>>8&255])+t.sbox[3][255&e]}function R2(e,t,r){let i=t,o=r,n;for(let t=0;t=a&&(e=0);let r=0,i=0,o=0;for(let t=0;t + + + + + + VersityGW Admin - Buckets + + + + + + + + + + +

+ + + + + + + + + + diff --git a/webui/web/dashboard.html b/webui/web/dashboard.html new file mode 100644 index 00000000..c848117f --- /dev/null +++ b/webui/web/dashboard.html @@ -0,0 +1,358 @@ + + + + + + + VersityGW Admin - Dashboard + + + + + + + + + + +
+ + + + +
+
+

VersityGW Dashboard

+
+ +
+
+ +
+
+ +
+ +
+
+
+

Total Users

+

-

+
+
+ + + +
+
+
+ + +
+
+
+

Total Buckets

+

-

+
+
+ + + +
+
+
+ + +
+
+
+

System Status

+
+ +

Connected

+
+
+
+ + + +
+
+
+
+ + +
+ + + + +
+

Connection Info

+
+
+ Endpoint + - +
+
+ Region + - +
+
+ Access Key + - +
+
+ Status + + + Authenticated + +
+
+
+
+ + +
+
+

Recent Users

+ View all +
+
+ + + + + + + + + + + + + +
Access KeyRoleProject IDUser IDGroup ID
+
+
+
+
+
+
+ + + + diff --git a/webui/web/explorer.html b/webui/web/explorer.html new file mode 100644 index 00000000..9a605a73 --- /dev/null +++ b/webui/web/explorer.html @@ -0,0 +1,4120 @@ + + + + + + + VersityGW - Explorer + + + + + + + + + + +
+ + + + +
+
+
+

VersityGW Explorer

+
+ +
+ + +
+ + +
+ +
+
+ + + + +
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + +
NameVersioningObject LockCreatedActions
+
+
+
+ + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webui/web/index.html b/webui/web/index.html new file mode 100644 index 00000000..6358ffef --- /dev/null +++ b/webui/web/index.html @@ -0,0 +1,836 @@ + + + + + + + VersityGW Admin - Login + + + + + + + + + + +
+ +
+ +
+ Versity + S3 Gateway +
+ + + + +
+ +
+ + +
+ + +
+ +
+ + +
+
+ + +
+ + +
+ + + + + +
+ +
+ +
+ + +
+ +
+
+
+ + +
+ +
+ + +
+ +
+
+
+ + +
+ +
+ + + + + +
+
us-east-1
+
us-west-2
+
eu-west-1
+
ap-southeast-1
+
+
+
+ + +
+ +
+ Path Style + + Virtual Host +
+ +
+
+ + + +
+
+ + +

+ © 2025 Versity Software Inc. +

+
+ + + + diff --git a/webui/web/js/api.js b/webui/web/js/api.js new file mode 100644 index 00000000..d10d75e6 --- /dev/null +++ b/webui/web/js/api.js @@ -0,0 +1,2072 @@ +// Copyright 2026 Versity Software +// This file is licensed under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +/** + * VersityGW Admin API Client + * Implements AWS Signature V4 signing for admin and S3 API requests + * Supports dual-mode: Admin (full UI) and S3-only (Explorer only) + */ + +/** + * CryptoJS wrapper for SHA-256 and HMAC-SHA256 operations + * Used as fallback when crypto.subtle is unavailable (non-HTTPS contexts) + * Requires: CryptoJS library (loaded via script tag in HTML) + */ +const CryptoJSWrapper = { + // SHA-256 returning hex string + sha256(message) { + if (typeof CryptoJS === 'undefined') { + throw new Error('CryptoJS library not loaded'); + } + return CryptoJS.SHA256(message).toString(CryptoJS.enc.Hex); + }, + + // SHA-256 returning Uint8Array + sha256Bytes(message) { + if (typeof CryptoJS === 'undefined') { + throw new Error('CryptoJS library not loaded'); + } + const wordArray = CryptoJS.SHA256(message); + const words = wordArray.words; + const sigBytes = wordArray.sigBytes; + const bytes = new Uint8Array(sigBytes); + + for (let i = 0; i < sigBytes; i++) { + bytes[i] = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + } + return bytes; + }, + + // HMAC-SHA256 returning Uint8Array + hmacSha256(key, message) { + if (typeof CryptoJS === 'undefined') { + throw new Error('CryptoJS library not loaded'); + } + + // Convert key to CryptoJS format + let cryptoKey; + if (typeof key === 'string') { + cryptoKey = CryptoJS.enc.Utf8.parse(key); + } else if (key instanceof Uint8Array) { + // Convert Uint8Array to WordArray + const words = []; + for (let i = 0; i < key.length; i += 4) { + const word = (key[i] << 24) | (key[i + 1] << 16) | (key[i + 2] << 8) | key[i + 3]; + words.push(word); + } + cryptoKey = CryptoJS.lib.WordArray.create(words, key.length); + } else { + cryptoKey = key; + } + + // Convert message to CryptoJS format + let cryptoMessage; + if (typeof message === 'string') { + cryptoMessage = CryptoJS.enc.Utf8.parse(message); + } else if (message instanceof Uint8Array) { + const words = []; + for (let i = 0; i < message.length; i += 4) { + const word = (message[i] << 24) | (message[i + 1] << 16) | (message[i + 2] << 8) | message[i + 3]; + words.push(word); + } + cryptoMessage = CryptoJS.lib.WordArray.create(words, message.length); + } else { + cryptoMessage = message; + } + + // Compute HMAC + const hmac = CryptoJS.HmacSHA256(cryptoMessage, cryptoKey); + const words = hmac.words; + const sigBytes = hmac.sigBytes; + const bytes = new Uint8Array(sigBytes); + + for (let i = 0; i < sigBytes; i++) { + bytes[i] = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + } + return bytes; + } +}; + +// Check if crypto.subtle is available (secure context) +const hasSubtleCrypto = typeof crypto !== 'undefined' && typeof crypto.subtle !== 'undefined'; + +/** + * Encode an S3 object key for use in a URL path. + * Encodes each path segment but preserves slashes as path separators. + * @param {string} key - The S3 object key + * @returns {string} - URL-encoded path + */ +function encodeS3Key(key) { + if (!key) return ''; + return key.split('/').map(segment => encodeURIComponent(segment)).join('/'); +} + +class VersityAPI { + constructor() { + this.credentials = null; + this.adminEndpoint = null; // Admin API endpoint (may be null for S3-only users) + this.s3Endpoint = null; // S3 API endpoint (always required) + this.region = 'us-east-1'; + this.addressingStyle = 'path'; // 'path' or 'virtual-host' + this._isAdmin = false; // Role flag + } + + /** + * Create a SigV4 presigned URL (query-string auth) for S3 requests. + * This avoids sending non-simple headers (Authorization, X-Amz-Date, etc.) + * and therefore avoids browser CORS preflight in many deployments. + * + * Currently used to ensure ListBuckets (GET /) works when the gateway + * does not implement OPTIONS /. + */ + async presignUrl(method, path, queryParams = {}, expiresSeconds = 60, useAdminEndpoint = false) { + if (!this.credentials) { + throw new Error('Not authenticated'); + } + + const endpoint = this.getEndpoint(useAdminEndpoint); + const url = new URL(endpoint + path); + const host = url.host; + const service = 's3'; + const amzDate = this.getAmzDate(); + const dateStamp = this.getDateStamp(); + + // Base query params + Object.entries(queryParams || {}).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + url.searchParams.set(key, String(value)); + } + }); + + const algorithm = 'AWS4-HMAC-SHA256'; + const credentialScope = `${dateStamp}/${this.region}/${service}/aws4_request`; + + url.searchParams.set('X-Amz-Algorithm', algorithm); + url.searchParams.set('X-Amz-Credential', `${this.credentials.accessKey}/${credentialScope}`); + url.searchParams.set('X-Amz-Date', amzDate); + url.searchParams.set('X-Amz-Expires', String(expiresSeconds)); + url.searchParams.set('X-Amz-SignedHeaders', 'host'); + + // Sort query params for canonical request + const sortedParams = [...url.searchParams.entries()].sort((a, b) => a[0].localeCompare(b[0])); + const canonicalQueryString = sortedParams + .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`) + .join('&'); + + const canonicalHeaders = `host:${host}\n`; + const signedHeaders = 'host'; + const payloadHash = 'UNSIGNED-PAYLOAD'; + + const canonicalRequest = [ + method, + url.pathname, + canonicalQueryString, + canonicalHeaders, + signedHeaders, + payloadHash, + ].join('\n'); + + const canonicalRequestHash = await this.sha256(canonicalRequest); + const stringToSign = [ + algorithm, + amzDate, + credentialScope, + canonicalRequestHash, + ].join('\n'); + + const signingKey = await this.getSigningKey(this.credentials.secretKey, dateStamp, this.region, service); + const signatureBuffer = await this.hmacSha256(signingKey, stringToSign); + const signature = this.bufferToHex(signatureBuffer); + + url.searchParams.set('X-Amz-Signature', signature); + return url.toString(); + } + + /** + * Set credentials for API requests (initial login - assumes same endpoint) + */ + setCredentials(endpoint, accessKey, secretKey, region = 'us-east-1') { + endpoint = endpoint.replace(/\/$/, ''); // Remove trailing slash + this.adminEndpoint = endpoint; + this.s3Endpoint = endpoint; + this.credentials = { accessKey, secretKey }; + this.region = region; + this._isAdmin = false; // Will be set by detectRole() + + // Store in sessionStorage for persistence across page loads + sessionStorage.setItem('vgw_admin_endpoint', this.adminEndpoint); + sessionStorage.setItem('vgw_s3_endpoint', this.s3Endpoint); + sessionStorage.setItem('vgw_access_key', accessKey); + sessionStorage.setItem('vgw_secret_key', secretKey); + sessionStorage.setItem('vgw_region', region); + sessionStorage.setItem('vgw_is_admin', 'false'); + } + + /** + * Set the S3 endpoint separately (when different from admin) + */ + setS3Endpoint(s3Endpoint) { + this.s3Endpoint = s3Endpoint.replace(/\/$/, ''); + sessionStorage.setItem('vgw_s3_endpoint', this.s3Endpoint); + } + + /** + * Set bucket addressing style ('path' or 'virtual-host') + */ + setAddressingStyle(style) { + this.addressingStyle = style || 'path'; + sessionStorage.setItem('vgw_addressing_style', this.addressingStyle); + } + + /** + * Set admin role flag + */ + setAdminRole(isAdmin) { + this._isAdmin = isAdmin; + sessionStorage.setItem('vgw_is_admin', isAdmin ? 'true' : 'false'); + } + + /** + * Load credentials from sessionStorage + */ + loadCredentials() { + const adminEndpoint = sessionStorage.getItem('vgw_admin_endpoint'); + const s3Endpoint = sessionStorage.getItem('vgw_s3_endpoint'); + const accessKey = sessionStorage.getItem('vgw_access_key'); + const secretKey = sessionStorage.getItem('vgw_secret_key'); + const region = sessionStorage.getItem('vgw_region') || 'us-east-1'; + const addressingStyle = sessionStorage.getItem('vgw_addressing_style') || 'path'; + const isAdmin = sessionStorage.getItem('vgw_is_admin') === 'true'; + + // Support legacy single endpoint storage + const legacyEndpoint = sessionStorage.getItem('vgw_endpoint'); + + if ((s3Endpoint || legacyEndpoint) && accessKey && secretKey) { + this.adminEndpoint = adminEndpoint || legacyEndpoint; + this.s3Endpoint = s3Endpoint || legacyEndpoint; + this.credentials = { accessKey, secretKey }; + this.region = region; + this.addressingStyle = addressingStyle; + this._isAdmin = isAdmin; + return true; + } + return false; + } + + /** + * Clear credentials and logout + */ + logout() { + this.credentials = null; + this.adminEndpoint = null; + this.s3Endpoint = null; + this.addressingStyle = 'path'; + this._isAdmin = false; + this._userType = 'user'; + this._accessibleGateways = []; + sessionStorage.removeItem('vgw_admin_endpoint'); + sessionStorage.removeItem('vgw_s3_endpoint'); + sessionStorage.removeItem('vgw_endpoint'); // Legacy + sessionStorage.removeItem('vgw_access_key'); + sessionStorage.removeItem('vgw_secret_key'); + sessionStorage.removeItem('vgw_region'); + sessionStorage.removeItem('vgw_addressing_style'); + sessionStorage.removeItem('vgw_is_admin'); + sessionStorage.removeItem('vgw_user_type'); + sessionStorage.removeItem('vgw_accessible_gateways'); + } + + // ============================================ + // User Context Methods (ROOT user detection) + // ============================================ + + /** + * Detect ROOT user and get accessible gateways + * Calls /api/detect-root endpoint to check if credentials match ROOT config + * @param {string} accessKey - Access key to check + * @param {string} secretKey - Secret key to check + * @returns {Object} - { userType: 'root'|'user', matchingGateways: [...] } + */ + // detectRootUser removed - single gateway mode + + /** + * Store user type and accessible gateways in session + * @param {string} userType - 'root' | 'admin' | 'user' + * @param {Array} accessibleGateways - List of gateways this user can access + */ + setUserContext(userType, accessibleGateways) { + this._userType = userType; + sessionStorage.setItem('vgw_user_type', userType); + } + + /** + * Load user context from session storage + * Called after loadCredentials() to restore user type and gateways + */ + loadUserContext() { + this._userType = sessionStorage.getItem('vgw_user_type') || 'user'; + } + + /** + * Check if current user is ROOT user (has ROOT credentials matching gateway configs) + * @returns {boolean} + */ + // isRootUser removed + + /** + * Get list of gateways accessible to current user + * Only populated for ROOT users + * @returns {Array} - Array of { name, port, endpoint, region, status } + */ + // getAccessibleGateways removed + + /** + * Check if authenticated + */ + isAuthenticated() { + return this.credentials !== null && this.s3Endpoint !== null; + } + + /** + * Check if user has admin privileges + */ + isAdmin() { + return this._isAdmin; + } + + /** + * Get current credentials info (without secret) + */ + getCredentialsInfo() { + if (!this.credentials) return null; + return { + adminEndpoint: this.adminEndpoint, + s3Endpoint: this.s3Endpoint, + endpoint: this.s3Endpoint, // Legacy compatibility + accessKey: this.credentials.accessKey, + region: this.region, + isAdmin: this._isAdmin + }; + } + + /** + * Get the appropriate endpoint for a request type + */ + getEndpoint(useAdmin = false) { + if (useAdmin && this.adminEndpoint) { + return this.adminEndpoint; + } + return this.s3Endpoint; + } + + /** + * Build URL for S3 requests with appropriate addressing style + * @param {string} path - Request path (e.g., '/bucket/key') + * @param {boolean} useAdmin - Whether to use admin endpoint + * @returns {string} - Full URL with endpoint and path + */ + buildRequestUrl(path, useAdmin = false) { + const endpoint = this.getEndpoint(useAdmin); + + // Admin API and non-S3 requests always use path style + if (useAdmin) { + return endpoint + path; + } + + // For S3 API requests, check addressing style + if (this.addressingStyle === 'virtual-host') { + // Extract bucket name from path (format: /bucket/key or /bucket) + const pathMatch = path.match(/^\/([^\/]+)(\/.*)?$/); + if (pathMatch) { + const bucketName = pathMatch[1]; + const keyPath = pathMatch[2] || '/'; + + // Parse the endpoint URL + const endpointUrl = new URL(endpoint); + + // Create virtual host URL: bucket.host/key + const virtualHost = `${bucketName}.${endpointUrl.host}`; + return `${endpointUrl.protocol}//${virtualHost}${keyPath}`; + } + } + + // Default to path style + return endpoint + path; + } + + // ============================================ + // AWS Signature V4 Implementation + // ============================================ + + /** + * Convert ArrayBuffer to hex string + */ + bufferToHex(buffer) { + return Array.from(new Uint8Array(buffer)) + .map(b => b.toString(16).padStart(2, '0')) + .join(''); + } + + /** + * SHA-256 hash (uses crypto.subtle in HTTPS, CryptoJS in HTTP) + */ + async sha256(message) { + if (hasSubtleCrypto) { + const encoder = new TextEncoder(); + const data = encoder.encode(message); + const hashBuffer = await crypto.subtle.digest('SHA-256', data); + return this.bufferToHex(hashBuffer); + } else { + return CryptoJSWrapper.sha256(message); + } + } + + /** + * SHA-256 hash returning base64 (for x-amz-checksum-sha256 header) + */ + async sha256Base64(message) { + if (hasSubtleCrypto) { + const encoder = new TextEncoder(); + const data = encoder.encode(message); + const hashBuffer = await crypto.subtle.digest('SHA-256', data); + const bytes = new Uint8Array(hashBuffer); + let binary = ''; + for (let i = 0; i < bytes.byteLength; i++) { + binary += String.fromCharCode(bytes[i]); + } + return btoa(binary); + } else { + // Use CryptoJS - get bytes and convert to base64 + const bytes = CryptoJSWrapper.sha256Bytes(message); + let binary = ''; + for (let i = 0; i < bytes.byteLength; i++) { + binary += String.fromCharCode(bytes[i]); + } + return btoa(binary); + } + } + + /** + * HMAC-SHA256 (uses crypto.subtle in HTTPS, CryptoJS in HTTP) + */ + async hmacSha256(key, message) { + if (hasSubtleCrypto) { + const encoder = new TextEncoder(); + const keyData = typeof key === 'string' ? encoder.encode(key) : key; + const messageData = encoder.encode(message); + + const cryptoKey = await crypto.subtle.importKey( + 'raw', + keyData, + { name: 'HMAC', hash: 'SHA-256' }, + false, + ['sign'] + ); + + const signature = await crypto.subtle.sign('HMAC', cryptoKey, messageData); + return new Uint8Array(signature); + } else { + return CryptoJSWrapper.hmacSha256(key, message); + } + } + + /** + * Get signing key for AWS Signature V4 + */ + async getSigningKey(secretKey, dateStamp, region, service) { + const encoder = new TextEncoder(); + const kDate = await this.hmacSha256(encoder.encode('AWS4' + secretKey), dateStamp); + const kRegion = await this.hmacSha256(kDate, region); + const kService = await this.hmacSha256(kRegion, service); + const kSigning = await this.hmacSha256(kService, 'aws4_request'); + return kSigning; + } + + /** + * Format date for AWS signing + */ + getAmzDate() { + const now = new Date(); + return now.toISOString().replace(/[:-]|\.\d{3}/g, ''); + } + + /** + * Get date stamp (YYYYMMDD) + */ + getDateStamp() { + return this.getAmzDate().slice(0, 8); + } + + /** + * Sign a request using AWS Signature V4 + * @param {string} method - HTTP method + * @param {string} path - Request path + * @param {Object} queryParams - Query parameters + * @param {string} body - Request body + * @param {boolean} useAdminEndpoint - Use admin endpoint instead of S3 + */ + async signRequest(method, path, queryParams = {}, body = '', useAdminEndpoint = false, contentType = 'application/xml') { + if (!this.credentials) { + throw new Error('Not authenticated'); + } + + const fullUrl = this.buildRequestUrl(path, useAdminEndpoint); + const url = new URL(fullUrl); + const host = url.host; + const service = 's3'; + const amzDate = this.getAmzDate(); + const dateStamp = this.getDateStamp(); + + // Add query parameters + Object.entries(queryParams).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + url.searchParams.set(key, value); + } + }); + + // Sort query parameters + const sortedParams = [...url.searchParams.entries()].sort((a, b) => a[0].localeCompare(b[0])); + const canonicalQueryString = sortedParams.map(([k, v]) => + `${encodeURIComponent(k)}=${encodeURIComponent(v)}` + ).join('&'); + + // Hash the payload + const payloadHash = await this.sha256(body); + + // Create canonical headers - only include content-type for methods with body + const headers = { + 'host': host, + 'x-amz-content-sha256': payloadHash, + 'x-amz-date': amzDate, + }; + + // Add Content-Type only for methods that have a body. + // IMPORTANT: if the actual request sends a different Content-Type than the one + // we sign, the gateway will return SignatureDoesNotMatch. + const hasBody = method === 'PUT' || method === 'POST' || method === 'PATCH'; + if (hasBody && contentType) { + headers['content-type'] = contentType; + } + + const signedHeadersList = Object.keys(headers).sort(); + const signedHeaders = signedHeadersList.join(';'); + const canonicalHeaders = signedHeadersList.map(h => `${h}:${headers[h]}\n`).join(''); + + // Create canonical request + const canonicalRequest = [ + method, + url.pathname, + canonicalQueryString, + canonicalHeaders, + signedHeaders, + payloadHash + ].join('\n'); + + // Create string to sign + const algorithm = 'AWS4-HMAC-SHA256'; + const credentialScope = `${dateStamp}/${this.region}/${service}/aws4_request`; + const canonicalRequestHash = await this.sha256(canonicalRequest); + const stringToSign = [ + algorithm, + amzDate, + credentialScope, + canonicalRequestHash + ].join('\n'); + + // Calculate signature + const signingKey = await this.getSigningKey(this.credentials.secretKey, dateStamp, this.region, service); + const signatureBuffer = await this.hmacSha256(signingKey, stringToSign); + const signature = this.bufferToHex(signatureBuffer); + + // Create authorization header + const authorization = `${algorithm} Credential=${this.credentials.accessKey}/${credentialScope}, SignedHeaders=${signedHeaders}, Signature=${signature}`; + + // Build response headers - only include Content-Type if it was signed + const responseHeaders = { + 'Authorization': authorization, + 'X-Amz-Date': amzDate, + 'X-Amz-Content-Sha256': payloadHash, + }; + + if (hasBody && contentType) { + responseHeaders['Content-Type'] = contentType; + } + + return { + url: url.toString(), + headers: responseHeaders + }; + } + + /** + * Sign a request with x-amz-checksum-sha256 header (for S3 Multi-Object Delete) + * @param {string} method - HTTP method + * @param {string} path - Request path + * @param {Object} queryParams - Query parameters + * @param {string} body - Request body + * @param {string} checksumBase64 - Base64-encoded SHA256 checksum of body + */ + async signRequestWithChecksum(method, path, queryParams = {}, body = '', checksumBase64) { + if (!this.credentials) { + throw new Error('Not authenticated'); + } + + const fullUrl = this.buildRequestUrl(path, false); + const url = new URL(fullUrl); + const host = url.host; + const service = 's3'; + const amzDate = this.getAmzDate(); + const dateStamp = this.getDateStamp(); + + // Add query parameters + Object.entries(queryParams).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + url.searchParams.set(key, value); + } + }); + + // Sort query parameters + const sortedParams = [...url.searchParams.entries()].sort((a, b) => a[0].localeCompare(b[0])); + const canonicalQueryString = sortedParams.map(([k, v]) => + `${encodeURIComponent(k)}=${encodeURIComponent(v)}` + ).join('&'); + + // Hash the payload + const payloadHash = await this.sha256(body); + + // Create canonical headers - include checksum and content-type (this is always POST with body) + const headers = { + 'content-type': 'application/xml', + 'host': host, + 'x-amz-checksum-sha256': checksumBase64, + 'x-amz-content-sha256': payloadHash, + 'x-amz-date': amzDate, + }; + + const signedHeadersList = Object.keys(headers).sort(); + const signedHeaders = signedHeadersList.join(';'); + const canonicalHeaders = signedHeadersList.map(h => `${h}:${headers[h]}\n`).join(''); + + // Create canonical request + const canonicalRequest = [ + method, + url.pathname, + canonicalQueryString, + canonicalHeaders, + signedHeaders, + payloadHash + ].join('\n'); + + // Create string to sign + const algorithm = 'AWS4-HMAC-SHA256'; + const credentialScope = `${dateStamp}/${this.region}/${service}/aws4_request`; + const canonicalRequestHash = await this.sha256(canonicalRequest); + const stringToSign = [ + algorithm, + amzDate, + credentialScope, + canonicalRequestHash + ].join('\n'); + + // Calculate signature + const signingKey = await this.getSigningKey(this.credentials.secretKey, dateStamp, this.region, service); + const signatureBuffer = await this.hmacSha256(signingKey, stringToSign); + const signature = this.bufferToHex(signatureBuffer); + + // Create authorization header + const authorization = `${algorithm} Credential=${this.credentials.accessKey}/${credentialScope}, SignedHeaders=${signedHeaders}, Signature=${signature}`; + + return { + url: url.toString(), + headers: { + 'Authorization': authorization, + 'X-Amz-Date': amzDate, + 'X-Amz-Content-Sha256': payloadHash, + 'X-Amz-Checksum-Sha256': checksumBase64, + 'Content-Type': 'application/xml', + } + }; + } + + /** + * Make a signed API request + * @param {string} method - HTTP method + * @param {string} path - Request path + * @param {Object} queryParams - Query parameters + * @param {string} body - Request body + * @param {boolean} useAdminEndpoint - Use admin endpoint instead of S3 + * @param {string} contentType - Content type for the request + * @param {Object} additionalHeaders - Additional headers to include + */ + async request(method, path, queryParams = {}, body = '', useAdminEndpoint = false, contentType = 'application/xml', additionalHeaders = {}) { + if (!this.credentials) { + throw new Error('Not authenticated'); + } + + // Always sign and send directly to the configured endpoint. + // CORS must be configured on the S3 endpoint. + const signed = await this.signRequest(method, path, queryParams, body, useAdminEndpoint, contentType); + const fetchUrl = signed.url; + const headers = { ...signed.headers, ...additionalHeaders }; + + let response; + try { + response = await fetch(fetchUrl, { + method, + headers, + body: body || undefined, + }); + } catch (e) { + // Browsers surface CORS blocks as a generic TypeError. + if (e instanceof TypeError) { + throw new Error(`CORS blocked by gateway. Allow origin ${window.location.origin} and headers Authorization, X-Amz-Date, X-Amz-Content-Sha256, Content-Type.`); + } + throw e; + } + + const responseText = await response.text(); + + if (!response.ok) { + // Try to parse error from XML + let errorMessage = `HTTP ${response.status}: ${response.statusText}`; + try { + const parser = new DOMParser(); + const xmlDoc = parser.parseFromString(responseText, 'text/xml'); + const code = xmlDoc.querySelector('Code')?.textContent; + const message = xmlDoc.querySelector('Message')?.textContent; + if (code) errorMessage = `${code}: ${message || 'Unknown error'}`; + } catch (e) { + // Ignore parsing errors + } + throw new Error(errorMessage); + } + + return responseText; + } + + /** + * Build fetch parameters for a request + * When proxy is available: uses server-side signing (credentials sent to vgwmgr, not S3 gateway) + * When no proxy: uses browser-side signing + * @param {string} method - HTTP method + * @param {string} path - Request path + * @param {Object} queryParams - Query parameters + * @param {string} body - Request body + * @param {boolean} useAdminEndpoint - Use admin endpoint instead of S3 + * @param {string} contentType - Optional content type override + * @returns {Object} - { url, headers } for fetch + */ + async buildFetchParams(method, path, queryParams = {}, body = '', useAdminEndpoint = false, contentType = 'application/xml') { + if (!this.credentials) { + throw new Error('Not authenticated'); + } + + // Build URL with query params + const endpoint = useAdminEndpoint ? this.adminEndpoint : this.s3Endpoint; + const url = new URL(endpoint + path); + Object.entries(queryParams).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + url.searchParams.set(key, value); + } + }); + + const signed = await this.signRequest(method, path, queryParams, body, useAdminEndpoint, contentType); + return { + url: signed.url, + headers: signed.headers, + }; + } + + /** + * Detect user role by trying admin API first, then S3 API + * Returns: 'admin' | 's3' | 'none' + */ + async detectRole() { + // Validate S3 credentials first. + // This avoids blocking non-admin users on an expected admin-API failure. + try { + await this.listBucketsS3(); + this.setAdminRole(false); + } catch (s3Error) { + // If the gateway is reachable but the browser blocks the response due to CORS, + // surface that as an error so the UI can show a useful message. + if (s3Error && typeof s3Error.message === 'string' && s3Error.message.includes('CORS blocked')) { + throw s3Error; + } + return 'none'; + } + + // S3 works, now test admin API access. + try { + const users = await this.listUsers(); + this.setAdminRole(true); + return 'admin'; + } catch (adminError) { + return 's3'; + } + } + + // ============================================ + // Admin API Methods + // ============================================ + + /** + * Parse XML list response to array + */ + parseXmlList(xmlString, itemTag) { + if (!xmlString.trim()) return []; + + const parser = new DOMParser(); + const xmlDoc = parser.parseFromString(xmlString, 'text/xml'); + + // Check for parsing errors + const parseError = xmlDoc.querySelector('parsererror'); + if (parseError) { + console.error('XML Parse Error:', parseError.textContent); + return []; + } + + const items = xmlDoc.querySelectorAll(itemTag); + return Array.from(items).map(item => { + const obj = {}; + Array.from(item.children).forEach(child => { + obj[child.tagName.toLowerCase()] = child.textContent; + }); + return obj; + }); + } + + /** + * List all users (Admin API) + */ + async listUsers() { + const response = await this.request('PATCH', '/list-users', {}, '', true); + // VersityGW returns XML with tags + return this.parseXmlList(response, 'Accounts'); + } + + /** + * Create a new user (Admin API) + */ + async createUser(access, secret, role, userID = 0, groupID = 0, projectID = 0) { + const body = ` + + ${this.escapeXml(access)} + ${this.escapeXml(secret)} + ${this.escapeXml(role)} + ${userID} + ${groupID} + ${projectID} +`; + + await this.request('PATCH', '/create-user', {}, body, true); + } + + /** + * Update an existing user (Admin API) + */ + async updateUser(access, updates) { + let body = '\n'; + + if (updates.secret !== undefined) { + body += `\n ${this.escapeXml(updates.secret)}`; + } + if (updates.role !== undefined) { + body += `\n ${this.escapeXml(updates.role)}`; + } + if (updates.userID !== undefined) { + body += `\n ${updates.userID}`; + } + if (updates.groupID !== undefined) { + body += `\n ${updates.groupID}`; + } + if (updates.projectID !== undefined) { + body += `\n ${updates.projectID}`; + } + + body += '\n'; + + await this.request('PATCH', '/update-user', { access }, body, true); + } + + /** + * Delete a user (Admin API) + */ + async deleteUser(access) { + await this.request('PATCH', '/delete-user', { access }, '', true); + } + + /** + * List all buckets (Admin API - returns all buckets with owner info) + */ + async listBuckets() { + const response = await this.request('PATCH', '/list-buckets', {}, '', true); + // VersityGW returns XML - check for Buckets or Bucket tags + let buckets = this.parseXmlList(response, 'Buckets'); + if (buckets.length === 0) { + buckets = this.parseXmlList(response, 'Bucket'); + } + return buckets; + } + + /** + * Change bucket owner (Admin API) + */ + async changeBucketOwner(bucket, owner) { + await this.request('PATCH', '/change-bucket-owner', { bucket, owner }, '', true); + } + + // ============================================ + // S3 Standard API Methods + // ============================================ + + /** + * List buckets via standard S3 API (for non-admin users) + * Returns buckets the user has access to + */ + async listBucketsS3() { + // Use presigned URL to avoid triggering a browser preflight for GET /. + const presignedUrl = await this.presignUrl('GET', '/', {}, 60, false); + let httpResponse; + try { + httpResponse = await fetch(presignedUrl, { method: 'GET' }); + } catch (e) { + if (e instanceof TypeError) { + throw new Error(`CORS blocked by gateway. Allow origin ${window.location.origin} for S3 responses (GET / and bucket/object operations).`); + } + throw e; + } + const response = await httpResponse.text(); + + if (!httpResponse.ok) { + // Try to parse error from XML + let errorMessage = `HTTP ${httpResponse.status}: ${httpResponse.statusText}`; + try { + const parser = new DOMParser(); + const xmlDoc = parser.parseFromString(response, 'text/xml'); + const code = xmlDoc.querySelector('Code')?.textContent; + const message = xmlDoc.querySelector('Message')?.textContent; + if (code) errorMessage = `${code}: ${message || 'Unknown error'}`; + } catch (e) { + // Ignore parsing errors + } + throw new Error(errorMessage); + } + + const parser = new DOMParser(); + const doc = parser.parseFromString(response, 'text/xml'); + + const buckets = []; + doc.querySelectorAll('Bucket').forEach(bucket => { + buckets.push({ + name: bucket.querySelector('Name')?.textContent || '', + creationdate: bucket.querySelector('CreationDate')?.textContent || '' + }); + }); + + return buckets; + } + + /** + * Create a new bucket with owner and settings (Admin API) + * @param {string} bucketName - The name of the bucket to create + * @param {string} owner - The access key ID of the bucket owner + * @param {boolean} enableVersioning - Whether to enable versioning + * @param {boolean} enableObjectLock - Whether to enable object lock + */ + async createBucketWithOwner(bucketName, owner, enableVersioning = false, enableObjectLock = false) { + if (!owner) { + throw new Error('Owner access key ID is required'); + } + + // Build the request with custom headers for the admin API + const headers = { + 'x-vgw-owner': owner, + }; + + // Add object lock header if enabled + if (enableObjectLock) { + headers['x-amz-bucket-object-lock-enabled'] = 'true'; + } + + // Create the bucket using the admin API endpoint + const response = await this.request( + 'PATCH', + `/${bucketName}/create`, + {}, + '', + true, // useAdminEndpoint + 'application/xml', + headers + ); + + // If versioning is enabled (but not object lock, as object lock enables versioning automatically) + // we need to call PutBucketVersioning after bucket creation + if (enableVersioning && !enableObjectLock) { + try { + await this.putBucketVersioning(bucketName, 'Enabled'); + } catch (error) { + console.warn('Failed to enable versioning after bucket creation:', error); + // Don't throw - bucket was created successfully + } + } + } + + /** + * Create a new bucket with bucket name(s3api) + * @param {string} bucketName - The name of the bucket to create + */ + async createBucket(bucketName) { + if (!bucketName) { + throw new Error('Bucket name is required'); + } + + await this.request( + 'PUT', + `/${bucketName}`, + {}, + ); + } + + /** + * Delete a bucket (S3 DeleteBucket) + */ + async deleteBucket(bucketName) { + const fetchParams = await this.buildFetchParams('DELETE', `/${bucketName}`, {}, ''); + const response = await fetch(fetchParams.url, { + method: 'DELETE', + headers: fetchParams.headers, + }); + + if (!response.ok) { + const text = await response.text(); + const messageMatch = text.match(/([^<]+)<\/Message>/); + throw new Error(messageMatch ? messageMatch[1] : `Failed to delete bucket (${response.status})`); + } + } + + /** + * List objects in a bucket (S3 ListObjectsV2) + */ + async listObjectsV2(bucket, prefix = '', delimiter = '/', maxKeys = 1000, continuationToken = null) { + const params = { + 'list-type': '2', + 'prefix': prefix, + 'delimiter': delimiter, + 'max-keys': maxKeys.toString() + }; + + if (continuationToken) { + params['continuation-token'] = continuationToken; + } + + const response = await this.request('GET', `/${bucket}`, params); + return this.parseListObjectsV2Response(response); + } + + /** + * Parse ListObjectsV2 XML response + */ + parseListObjectsV2Response(xmlString) { + const parser = new DOMParser(); + const doc = parser.parseFromString(xmlString, 'text/xml'); + + const result = { + name: doc.querySelector('Name')?.textContent || '', + prefix: doc.querySelector('Prefix')?.textContent || '', + delimiter: doc.querySelector('Delimiter')?.textContent || '', + isTruncated: doc.querySelector('IsTruncated')?.textContent === 'true', + continuationToken: doc.querySelector('NextContinuationToken')?.textContent || null, + contents: [], + commonPrefixes: [] + }; + + // Parse Contents (files) + doc.querySelectorAll('Contents').forEach(item => { + result.contents.push({ + key: item.querySelector('Key')?.textContent || '', + lastModified: item.querySelector('LastModified')?.textContent || '', + size: parseInt(item.querySelector('Size')?.textContent || '0', 10), + storageClass: item.querySelector('StorageClass')?.textContent || 'STANDARD', + etag: item.querySelector('ETag')?.textContent || '' + }); + }); + + // Parse CommonPrefixes (folders) + doc.querySelectorAll('CommonPrefixes').forEach(item => { + result.commonPrefixes.push({ + prefix: item.querySelector('Prefix')?.textContent || '' + }); + }); + + return result; + } + + /** + * Get object metadata (HeadObject) + */ + async headObject(bucket, key) { + const fetchParams = await this.buildFetchParams('HEAD', `/${bucket}/${encodeS3Key(key)}`); + + const response = await fetch(fetchParams.url, { + method: 'HEAD', + headers: fetchParams.headers, + }); + + if (!response.ok) { + throw new Error(`HTTP ${response.status}: ${response.statusText}`); + } + + return { + contentLength: parseInt(response.headers.get('Content-Length') || '0', 10), + contentType: response.headers.get('Content-Type') || 'application/octet-stream', + lastModified: response.headers.get('Last-Modified') || '', + etag: response.headers.get('ETag') || '', + storageClass: response.headers.get('x-amz-storage-class') || 'STANDARD', + metadata: this.extractMetadataHeaders(response.headers) + }; + } + + /** + * Extract x-amz-meta-* headers as metadata object + */ + extractMetadataHeaders(headers) { + const metadata = {}; + headers.forEach((value, key) => { + if (key.toLowerCase().startsWith('x-amz-meta-')) { + const metaKey = key.substring(11); // Remove 'x-amz-meta-' prefix + metadata[metaKey] = value; + } + }); + return metadata; + } + + /** + * Download an object (GetObject) + * Returns a Blob for browser download + */ + async getObject(bucket, key) { + const fetchParams = await this.buildFetchParams('GET', `/${bucket}/${encodeS3Key(key)}`); + + const response = await fetch(fetchParams.url, { + method: 'GET', + headers: fetchParams.headers, + }); + + if (!response.ok) { + throw new Error(`HTTP ${response.status}: ${response.statusText}`); + } + + return { + blob: await response.blob(), + contentType: response.headers.get('Content-Type') || 'application/octet-stream', + contentLength: parseInt(response.headers.get('Content-Length') || '0', 10) + }; + } + + /** + * Upload an object (PutObject) - for small files < 5MB + */ + async putObject(bucket, key, file, contentType = null) { + const finalContentType = contentType || file.type || 'application/octet-stream'; + const path = `/${bucket}/${encodeS3Key(key)}`; + + // Browser-side signing with payload hash + const arrayBuffer = await file.arrayBuffer(); + const payloadHash = await this.sha256ArrayBuffer(arrayBuffer); + const signed = await this.signRequestWithPayloadHash('PUT', path, {}, payloadHash, finalContentType); + + const response = await fetch(signed.url, { + method: 'PUT', + headers: signed.headers, + body: file, + }); + + if (!response.ok) { + const errorText = await response.text(); + throw new Error(`Upload failed: HTTP ${response.status} - ${errorText}`); + } + + return { etag: response.headers.get('ETag') || '' }; + } + + /** + * SHA-256 hash of ArrayBuffer + */ + async sha256ArrayBuffer(buffer) { + if (hasSubtleCrypto) { + const hashBuffer = await crypto.subtle.digest('SHA-256', buffer); + return this.bufferToHex(hashBuffer); + } else { + // Convert ArrayBuffer to CryptoJS WordArray for proper binary hashing + const bytes = new Uint8Array(buffer); + const words = []; + for (let i = 0; i < bytes.length; i += 4) { + const word = (bytes[i] << 24) | ((bytes[i + 1] || 0) << 16) | ((bytes[i + 2] || 0) << 8) | (bytes[i + 3] || 0); + words.push(word); + } + const wordArray = CryptoJS.lib.WordArray.create(words, bytes.length); + return CryptoJS.SHA256(wordArray).toString(CryptoJS.enc.Hex); + } + } + + /** + * Sign request with pre-computed payload hash (for binary uploads) + */ + async signRequestWithPayloadHash(method, path, queryParams = {}, payloadHash, contentType) { + if (!this.credentials) { + throw new Error('Not authenticated'); + } + + const fullUrl = this.buildRequestUrl(path, false); + const url = new URL(fullUrl); + const host = url.host; + const service = 's3'; + const amzDate = this.getAmzDate(); + const dateStamp = this.getDateStamp(); + + // Add query parameters + Object.entries(queryParams).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + url.searchParams.set(key, value); + } + }); + + // Sort query parameters + const sortedParams = [...url.searchParams.entries()].sort((a, b) => a[0].localeCompare(b[0])); + const canonicalQueryString = sortedParams.map(([k, v]) => + `${encodeURIComponent(k)}=${encodeURIComponent(v)}` + ).join('&'); + + // Create canonical headers + const headers = { + 'content-type': contentType, + 'host': host, + 'x-amz-content-sha256': payloadHash, + 'x-amz-date': amzDate, + }; + + const signedHeadersList = Object.keys(headers).sort(); + const signedHeaders = signedHeadersList.join(';'); + const canonicalHeaders = signedHeadersList.map(h => `${h}:${headers[h]}\n`).join(''); + + // Create canonical request + const canonicalRequest = [ + method, + url.pathname, + canonicalQueryString, + canonicalHeaders, + signedHeaders, + payloadHash + ].join('\n'); + + // Create string to sign + const algorithm = 'AWS4-HMAC-SHA256'; + const credentialScope = `${dateStamp}/${this.region}/${service}/aws4_request`; + const canonicalRequestHash = await this.sha256(canonicalRequest); + const stringToSign = [ + algorithm, + amzDate, + credentialScope, + canonicalRequestHash + ].join('\n'); + + // Calculate signature + const signingKey = await this.getSigningKey(this.credentials.secretKey, dateStamp, this.region, service); + const signatureBuffer = await this.hmacSha256(signingKey, stringToSign); + const signature = this.bufferToHex(signatureBuffer); + + // Create authorization header + const authorization = `${algorithm} Credential=${this.credentials.accessKey}/${credentialScope}, SignedHeaders=${signedHeaders}, Signature=${signature}`; + + return { + url: url.toString(), + headers: { + 'Authorization': authorization, + 'X-Amz-Date': amzDate, + 'X-Amz-Content-Sha256': payloadHash, + 'Content-Type': contentType, + } + }; + } + + /** + * Delete an object + */ + async deleteObject(bucket, key) { + await this.request('DELETE', `/${bucket}/${encodeS3Key(key)}`); + } + + /** + * Delete multiple objects (batch delete) + * S3 Multi-Object Delete requires x-amz-checksum-* or Content-MD5 header + */ + async deleteObjects(bucket, keys) { + let body = '\n'; + body += '\n true'; + + keys.forEach(key => { + body += `\n \n ${this.escapeXml(key)}\n `; + }); + + body += '\n'; + + const checksum = await this.sha256Base64(body); + const signed = await this.signRequestWithChecksum('POST', `/${bucket}`, { delete: '' }, body, checksum); + + const response = await fetch(signed.url, { + method: 'POST', + headers: signed.headers, + body: body, + }); + + if (!response.ok) { + const errorText = await response.text(); + throw new Error(`Delete failed: ${errorText}`); + } + + return await response.text(); + } + + /** + * Create a folder (empty object with trailing slash) + */ + async createFolder(bucket, prefix) { + // Ensure prefix ends with / + const folderKey = prefix.endsWith('/') ? prefix : prefix + '/'; + + const fetchParams = await this.buildFetchParams('PUT', `/${bucket}/${encodeURIComponent(folderKey)}`, {}, ''); + + const response = await fetch(fetchParams.url, { + method: 'PUT', + headers: fetchParams.headers, + body: '', + }); + + if (!response.ok) { + const errorText = await response.text(); + throw new Error(`Create folder failed: ${errorText}`); + } + } + + // ============================================ + // Multipart Upload Methods + // ============================================ + + /** + * Initiate a multipart upload + * Returns uploadId needed for subsequent parts + */ + async createMultipartUpload(bucket, key, contentType = 'application/octet-stream') { + const fetchParams = await this.buildFetchParams('POST', `/${bucket}/${encodeS3Key(key)}`, { uploads: '' }, '', false, contentType); + + const response = await fetch(fetchParams.url, { + method: 'POST', + headers: fetchParams.headers, + }); + + if (!response.ok) { + const errorText = await response.text(); + throw new Error(`Failed to initiate multipart upload: ${errorText}`); + } + + const xmlText = await response.text(); + const parser = new DOMParser(); + const doc = parser.parseFromString(xmlText, 'text/xml'); + const uploadId = doc.querySelector('UploadId')?.textContent; + + if (!uploadId) { + throw new Error('No UploadId returned from server'); + } + + return uploadId; + } + + /** + * Upload a single part of a multipart upload + * Returns ETag needed for CompleteMultipartUpload + */ + async uploadPart(bucket, key, uploadId, partNumber, data) { + const arrayBuffer = data instanceof ArrayBuffer ? data : await data.arrayBuffer(); + const path = `/${bucket}/${encodeS3Key(key)}`; + const queryParams = { + uploadId: uploadId, + partNumber: partNumber.toString() + }; + + const payloadHash = await this.sha256ArrayBuffer(arrayBuffer); + const signed = await this.signRequestWithPayloadHash( + 'PUT', + path, + queryParams, + payloadHash, + 'application/octet-stream' + ); + + const response = await fetch(signed.url, { + method: 'PUT', + headers: signed.headers, + body: arrayBuffer, + }); + + if (!response.ok) { + const errorText = await response.text(); + throw new Error(`Failed to upload part ${partNumber}: ${errorText}`); + } + + // Try multiple ways to get ETag (CORS may not expose all headers) + let etag = response.headers.get('ETag') + || response.headers.get('etag') + || response.headers.get('x-amz-etag'); + + // If still no ETag, try to read from response body (some proxies put it there) + if (!etag) { + const text = await response.clone().text(); + const match = text.match(/([^<]+)<\/ETag>/i); + if (match) { + etag = match[1]; + } + } + + if (!etag) { + // Log all available headers for debugging + console.warn('Available headers:', [...response.headers.entries()]); + throw new Error(`No ETag returned for part ${partNumber}. The server may need to expose ETag in CORS headers (Access-Control-Expose-Headers: ETag).`); + } + + return etag; + } + + /** + * Complete a multipart upload + * parts should be an array of { partNumber, etag } + */ + async completeMultipartUpload(bucket, key, uploadId, parts) { + let body = '\n'; + + // Sort parts by partNumber + parts.sort((a, b) => a.partNumber - b.partNumber); + + parts.forEach(part => { + body += `\n `; + body += `\n ${part.partNumber}`; + body += `\n ${this.escapeXml(part.etag)}`; + body += `\n `; + }); + + body += '\n'; + + const fetchParams = await this.buildFetchParams('POST', `/${bucket}/${encodeS3Key(key)}`, { uploadId }, body); + + const response = await fetch(fetchParams.url, { + method: 'POST', + headers: fetchParams.headers, + body: body, + }); + + if (!response.ok) { + const errorText = await response.text(); + throw new Error(`Failed to complete multipart upload: ${errorText}`); + } + + return await response.text(); + } + + /** + * Abort a multipart upload + */ + async abortMultipartUpload(bucket, key, uploadId) { + const fetchParams = await this.buildFetchParams('DELETE', `/${bucket}/${encodeS3Key(key)}`, { uploadId }, ''); + + const response = await fetch(fetchParams.url, { + method: 'DELETE', + headers: fetchParams.headers, + }); + + if (!response.ok) { + const errorText = await response.text(); + throw new Error(`Failed to abort multipart upload: ${errorText}`); + } + } + + /** + * List multipart uploads in a bucket + * @param {string} bucket - Bucket name + * @returns {Promise} - Array of multipart upload objects + */ + async listMultipartUploads(bucket) { + const response = await this.request('GET', `/${bucket}`, { uploads: '' }); + const parser = new DOMParser(); + const doc = parser.parseFromString(response, 'text/xml'); + + const uploads = []; + doc.querySelectorAll('Upload').forEach(upload => { + uploads.push({ + key: upload.querySelector('Key')?.textContent || '', + uploadId: upload.querySelector('UploadId')?.textContent || '', + initiated: upload.querySelector('Initiated')?.textContent || '', + initiator: upload.querySelector('Initiator DisplayName')?.textContent || '', + owner: upload.querySelector('Owner DisplayName')?.textContent || '' + }); + }); + + return uploads; + } + + // ============================================ + // Bucket Versioning Methods + // ============================================ + + /** + * Get versioning status for a bucket + * Returns: { status: 'Enabled' | 'Suspended' | '' } + */ + async getBucketVersioning(bucket) { + const response = await this.request('GET', `/${bucket}`, { versioning: '' }); + const parser = new DOMParser(); + const doc = parser.parseFromString(response, 'text/xml'); + return { + status: doc.querySelector('Status')?.textContent || '' + }; + } + + /** + * Set versioning status for a bucket + * @param {string} bucket - Bucket name + * @param {string} status - 'Enabled' or 'Suspended' + */ + async putBucketVersioning(bucket, status) { + const body = ` + + ${this.escapeXml(status)} +`; + await this.request('PUT', `/${bucket}`, { versioning: '' }, body); + } + + /** + * Get object lock configuration for a bucket + * Returns: { enabled: boolean, mode: string, days: number, years: number } + */ + async getBucketObjectLockConfiguration(bucket) { + try { + const response = await this.request('GET', `/${bucket}`, { 'object-lock': '' }); + const parser = new DOMParser(); + const doc = parser.parseFromString(response, 'text/xml'); + + const enabled = doc.querySelector('ObjectLockEnabled')?.textContent === 'Enabled'; + const rule = doc.querySelector('Rule'); + let mode = ''; + let days = null; + let years = null; + + if (rule) { + mode = rule.querySelector('Mode')?.textContent || ''; + days = rule.querySelector('Days')?.textContent; + years = rule.querySelector('Years')?.textContent; + } + + return { + enabled, + mode, + days: days ? parseInt(days) : null, + years: years ? parseInt(years) : null + }; + } catch (error) { + // If object lock is not configured or not supported, return disabled status + if (error.message.includes('ObjectLockConfigurationNotFoundError') || + error.message.includes('405') || + error.message.includes('501')) { + return { enabled: false, mode: '', days: null, years: null }; + } + throw error; + } + } + + /** + * Enable or update object lock configuration for a bucket + * @param {string} bucket - Bucket name + * @param {Object} config - { mode: 'GOVERNANCE'|'COMPLIANCE', days: number, years: number } + */ + async putBucketObjectLockConfiguration(bucket, config) { + let ruleXml = ''; + if (config.mode && (config.days || config.years)) { + const retention = config.days ? `${config.days}` : `${config.years}`; + ruleXml = ` + + + ${this.escapeXml(config.mode)} + ${retention} + + `; + } + + const body = ` + + Enabled${ruleXml} +`; + + await this.request('PUT', `/${bucket}`, { 'object-lock': '' }, body); + } + + /** + * List all versions of objects in a bucket + */ + async listObjectVersions(bucket, prefix = '', delimiter = '/', maxKeys = 1000, keyMarker = null, versionIdMarker = null) { + const params = { + versions: '', + prefix: prefix, + delimiter: delimiter, + 'max-keys': maxKeys.toString() + }; + + if (keyMarker) params['key-marker'] = keyMarker; + if (versionIdMarker) params['version-id-marker'] = versionIdMarker; + + const response = await this.request('GET', `/${bucket}`, params); + return this.parseListObjectVersionsResponse(response); + } + + /** + * Parse ListObjectVersions XML response + */ + parseListObjectVersionsResponse(xmlString) { + const parser = new DOMParser(); + const doc = parser.parseFromString(xmlString, 'text/xml'); + + const result = { + name: doc.querySelector('Name')?.textContent || '', + prefix: doc.querySelector('Prefix')?.textContent || '', + isTruncated: doc.querySelector('IsTruncated')?.textContent === 'true', + nextKeyMarker: doc.querySelector('NextKeyMarker')?.textContent || null, + nextVersionIdMarker: doc.querySelector('NextVersionIdMarker')?.textContent || null, + versions: [], + deleteMarkers: [], + commonPrefixes: [] + }; + + // Parse object versions + doc.querySelectorAll('Version').forEach(v => { + result.versions.push({ + key: v.querySelector('Key')?.textContent || '', + versionId: v.querySelector('VersionId')?.textContent || '', + isLatest: v.querySelector('IsLatest')?.textContent === 'true', + lastModified: v.querySelector('LastModified')?.textContent || '', + size: parseInt(v.querySelector('Size')?.textContent || '0', 10), + storageClass: v.querySelector('StorageClass')?.textContent || 'STANDARD', + etag: v.querySelector('ETag')?.textContent || '' + }); + }); + + // Parse delete markers + doc.querySelectorAll('DeleteMarker').forEach(dm => { + result.deleteMarkers.push({ + key: dm.querySelector('Key')?.textContent || '', + versionId: dm.querySelector('VersionId')?.textContent || '', + isLatest: dm.querySelector('IsLatest')?.textContent === 'true', + lastModified: dm.querySelector('LastModified')?.textContent || '', + isDeleteMarker: true + }); + }); + + // Parse common prefixes (folders) + doc.querySelectorAll('CommonPrefixes').forEach(cp => { + result.commonPrefixes.push({ + prefix: cp.querySelector('Prefix')?.textContent || '' + }); + }); + + return result; + } + + /** + * Delete a specific version of an object + */ + async deleteObjectVersion(bucket, key, versionId) { + await this.request('DELETE', `/${bucket}/${encodeS3Key(key)}`, { versionId }); + } + + /** + * Download a specific version of an object + */ + async getObjectVersion(bucket, key, versionId) { + const fetchParams = await this.buildFetchParams('GET', `/${bucket}/${encodeS3Key(key)}`, { versionId }); + + const response = await fetch(fetchParams.url, { + method: 'GET', + headers: fetchParams.headers, + }); + + if (!response.ok) { + throw new Error(`HTTP ${response.status}: ${response.statusText}`); + } + + return { + blob: await response.blob(), + contentType: response.headers.get('Content-Type') || 'application/octet-stream' + }; + } + + /** + * Restore an old version by copying it to create a new current version + */ + async restoreObjectVersion(bucket, key, versionId) { + const copySource = `/${bucket}/${encodeS3Key(key)}?versionId=${versionId}`; + + const fetchParams = this.buildFetchParams('PUT', `/${bucket}/${encodeS3Key(key)}`, {}, ''); + fetchParams.headers['x-amz-copy-source'] = copySource; + + const response = await fetch(fetchParams.url, { + method: 'PUT', + headers: fetchParams.headers, + }); + + if (!response.ok) { + const errorText = await response.text(); + throw new Error(`Restore failed: ${errorText}`); + } + } + + // ============================================ + // Bucket Tagging Methods + // ============================================ + + /** + * Get bucket tags + * Returns: Array of { key, value } objects + */ + async getBucketTagging(bucket) { + try { + const response = await this.request('GET', `/${bucket}`, { tagging: '' }); + const parser = new DOMParser(); + const doc = parser.parseFromString(response, 'text/xml'); + + const tags = []; + doc.querySelectorAll('Tag').forEach(tagElement => { + const key = tagElement.querySelector('Key')?.textContent || ''; + const value = tagElement.querySelector('Value')?.textContent || ''; + if (key) { + tags.push({ key, value }); + } + }); + + return tags; + } catch (error) { + // If tagging is not configured, return empty array + if (error.message.includes('404') || error.message.includes('NoSuchTagSet')) { + return []; + } + throw error; + } + } + + /** + * Set bucket tags + * @param {string} bucket - Bucket name + * @param {Array<{key: string, value: string}>} tags - Array of tag objects + */ + async putBucketTagging(bucket, tags) { + if (!tags || tags.length === 0) { + // Delete all tags if empty + return await this.deleteBucketTagging(bucket); + } + + const tagsXml = tags.map(tag => + ` \n ${this.escapeXml(tag.key)}\n ${this.escapeXml(tag.value)}\n ` + ).join('\n'); + + const body = ` + + +${tagsXml} + +`; + + await this.request('PUT', `/${bucket}`, { tagging: '' }, body); + } + + /** + * Delete all bucket tags + * @param {string} bucket - Bucket name + */ + async deleteBucketTagging(bucket) { + await this.request('DELETE', `/${bucket}`, { tagging: '' }); + } + + /** + * Get bucket policy + * @param {string} bucket - Bucket name + * @returns {Promise} - Policy document as JSON object + */ + async getBucketPolicy(bucket) { + const response = await this.request('GET', `/${bucket}`, { policy: '' }); + try { + return JSON.parse(response); + } catch (error) { + throw new Error('Failed to parse bucket policy: ' + error.message); + } + } + + /** + * Put bucket policy + * @param {string} bucket - Bucket name + * @param {Object} policy - Policy document as JSON object + */ + async putBucketPolicy(bucket, policy) { + const policyJson = JSON.stringify(policy); + await this.request('PUT', `/${bucket}`, { policy: '' }, policyJson, { + 'Content-Type': 'application/json' + }); + } + + /** + * Delete bucket policy + * @param {string} bucket - Bucket name + */ + async deleteBucketPolicy(bucket) { + await this.request('DELETE', `/${bucket}`, { policy: '' }); + } + + /** + * Get object tags + * @param {string} bucket - Bucket name + * @param {string} key - Object key + * @returns {Promise>} - Array of tag objects + */ + async getObjectTagging(bucket, key) { + try { + const response = await this.request('GET', `/${bucket}/${encodeS3Key(key)}`, { tagging: '' }); + const parser = new DOMParser(); + const doc = parser.parseFromString(response, 'text/xml'); + + const tags = []; + doc.querySelectorAll('Tag').forEach(tagElement => { + const tagKey = tagElement.querySelector('Key')?.textContent || ''; + const tagValue = tagElement.querySelector('Value')?.textContent || ''; + if (tagKey) { + tags.push({ key: tagKey, value: tagValue }); + } + }); + + return tags; + } catch (error) { + // If tagging is not configured, return empty array + if (error.message.includes('404') || error.message.includes('NoSuchTagSet')) { + return []; + } + throw error; + } + } + + /** + * Set object tags + * @param {string} bucket - Bucket name + * @param {string} key - Object key + * @param {Array<{key: string, value: string}>} tags - Array of tag objects + */ + async putObjectTagging(bucket, key, tags) { + if (!tags || tags.length === 0) { + // Delete all tags if empty + return await this.deleteObjectTagging(bucket, key); + } + + const tagsXml = tags.map(tag => + ` \n ${this.escapeXml(tag.key)}\n ${this.escapeXml(tag.value)}\n ` + ).join('\n'); + + const body = ` + + +${tagsXml} + +`; + + await this.request('PUT', `/${bucket}/${encodeS3Key(key)}`, { tagging: '' }, body); + } + + /** + * Delete all object tags + * @param {string} bucket - Bucket name + * @param {string} key - Object key + */ + async deleteObjectTagging(bucket, key) { + await this.request('DELETE', `/${bucket}/${encodeS3Key(key)}`, { tagging: '' }); + } + + /** + * Update object metadata using CopyObject with REPLACE directive + * @param {string} bucket - Bucket name + * @param {string} key - Object key + * @param {Object} metadata - Metadata key-value pairs (will be prefixed with x-amz-meta-) + * @param {string} contentType - Optional content type override + */ + async putObjectMetadata(bucket, key, metadata, contentType = null) { + if (!this.credentials) { + throw new Error('Not authenticated'); + } + + const method = 'PUT'; + const path = `/${bucket}/${encodeS3Key(key)}`; + const endpoint = this.getEndpoint(false); + const url = new URL(endpoint + path); + const host = url.host; + const service = 's3'; + const amzDate = this.getAmzDate(); + const dateStamp = this.getDateStamp(); + + // CopyObject has no body + const body = ''; + const payloadHash = await this.sha256(body); + + // Build all headers that need to be signed + // IMPORTANT: x-amz-copy-source must be URL-encoded + const copySource = `/${bucket}/${encodeS3Key(key)}`; + + const headers = { + 'host': host, + 'x-amz-content-sha256': payloadHash, + 'x-amz-copy-source': copySource, + 'x-amz-date': amzDate, + 'x-amz-metadata-directive': 'REPLACE' + }; + + // Add metadata headers with x-amz-meta- prefix + if (metadata) { + for (const [metaKey, metaValue] of Object.entries(metadata)) { + headers[`x-amz-meta-${metaKey}`] = metaValue; + } + } + + // Add content type if specified + if (contentType) { + headers['content-type'] = contentType; + } + + // Sort headers for canonical request (case-insensitive) + const signedHeadersList = Object.keys(headers).map(h => h.toLowerCase()).sort(); + const signedHeaders = signedHeadersList.join(';'); + + // Create canonical headers (must be lowercase) + const canonicalHeaders = signedHeadersList.map(h => { + const originalKey = Object.keys(headers).find(k => k.toLowerCase() === h); + return `${h}:${headers[originalKey]}\n`; + }).join(''); + + // Create canonical request (no query params for CopyObject) + const canonicalRequest = [ + method, + url.pathname, + '', // empty query string + canonicalHeaders, + signedHeaders, + payloadHash + ].join('\n'); + + // Create string to sign + const algorithm = 'AWS4-HMAC-SHA256'; + const credentialScope = `${dateStamp}/${this.region}/${service}/aws4_request`; + const canonicalRequestHash = await this.sha256(canonicalRequest); + const stringToSign = [ + algorithm, + amzDate, + credentialScope, + canonicalRequestHash + ].join('\n'); + + // Calculate signature + const signingKey = await this.getSigningKey(this.credentials.secretKey, dateStamp, this.region, service); + const signatureBuffer = await this.hmacSha256(signingKey, stringToSign); + const signature = this.bufferToHex(signatureBuffer); + + // Create authorization header + const authorization = `${algorithm} Credential=${this.credentials.accessKey}/${credentialScope}, SignedHeaders=${signedHeaders}, Signature=${signature}`; + + // Build final request headers + const requestHeaders = { + 'Authorization': authorization, + 'X-Amz-Date': amzDate, + 'X-Amz-Content-Sha256': payloadHash, + 'x-amz-copy-source': copySource, + 'x-amz-metadata-directive': 'REPLACE' + }; + + // Add metadata headers + if (metadata) { + for (const [metaKey, metaValue] of Object.entries(metadata)) { + requestHeaders[`x-amz-meta-${metaKey}`] = metaValue; + } + } + + // Add content type if specified + if (contentType) { + requestHeaders['Content-Type'] = contentType; + } + + const response = await fetch(url.toString(), { + method: method, + headers: requestHeaders + }); + + if (!response.ok) { + const text = await response.text(); + throw new Error(`HTTP ${response.status}: ${text || response.statusText}`); + } + + return true; + } + + /** + * Escape XML special characters + */ + escapeXml(str) { + if (!str) return ''; + return str + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + } + + /** + * Generate an AWS-style access key + * Format: AKIA + 16 base32-like characters (excluding 0, 1, 8, 9) + */ + generateAccessKey(prefix = 'AKIA') { + const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'; + let result = prefix; + const randomValues = new Uint8Array(16); + crypto.getRandomValues(randomValues); + for (let i = 0; i < 16; i++) { + result += chars[randomValues[i] % chars.length]; + } + return result; + } + + /** + * Generate an AWS-style secret key (40 characters) + */ + generateSecretKey(length = 40) { + const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + let result = ''; + const randomValues = new Uint8Array(length); + crypto.getRandomValues(randomValues); + for (let i = 0; i < length; i++) { + result += chars[randomValues[i] % chars.length]; + } + return result; + } +} + +// Create global API instance +const api = new VersityAPI(); diff --git a/webui/web/js/app.js b/webui/web/js/app.js new file mode 100644 index 00000000..7e25253f --- /dev/null +++ b/webui/web/js/app.js @@ -0,0 +1,369 @@ +// Copyright 2026 Versity Software +// This file is licensed under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +/** + * VersityGW Admin - Application Utilities + */ + +// ============================================ +// Navigation & Auth Guards +// ============================================ + +/** + * Check if user is authenticated, redirect to login if not + * Also loads user context (user type and accessible gateways) + */ +function requireAuth() { + if (!api.loadCredentials()) { + window.location.href = 'index.html'; + return false; + } + api.loadUserContext(); + return true; +} + +/** + * Require admin role, redirect non-admins to explorer + * Call this on admin-only pages (dashboard, users, buckets, settings) + * Also loads user context (user type and accessible gateways) + */ +function requireAdmin() { + if (!api.loadCredentials()) { + window.location.href = 'index.html'; + return false; + } + api.loadUserContext(); + if (!api.isAdmin()) { + window.location.href = 'explorer.html'; + return false; + } + return true; +} + +/** + * Redirect to appropriate page if already authenticated + * Admin users go to dashboard, regular users go to explorer + */ +function redirectIfAuthenticated() { + if (api.loadCredentials()) { + if (api.isAdmin()) { + window.location.href = 'dashboard.html'; + } else { + window.location.href = 'explorer.html'; + } + return true; + } + return false; +} + +// ============================================ +// Toast Notifications +// ============================================ + +let toastContainer = null; + +function initToasts() { + if (!toastContainer) { + toastContainer = document.createElement('div'); + toastContainer.id = 'toast-container'; + toastContainer.className = 'fixed top-4 right-4 z-50 flex flex-col gap-2'; + document.body.appendChild(toastContainer); + } +} + +function showToast(message, type = 'info') { + initToasts(); + + const toast = document.createElement('div'); + const bgColors = { + success: 'bg-green-50 border-green-500 text-green-800', + error: 'bg-red-50 border-red-500 text-red-800', + warning: 'bg-yellow-50 border-yellow-500 text-yellow-800', + info: 'bg-blue-50 border-blue-500 text-blue-800' + }; + + const icons = { + success: ``, + error: ``, + warning: ``, + info: `` + }; + + toast.className = `flex items-center gap-3 px-4 py-3 rounded-lg border-l-4 shadow-lg max-w-sm animate-slide-in ${bgColors[type]}`; + toast.innerHTML = ` + ${icons[type]} +

${escapeHtml(message)}

+ + `; + + toastContainer.appendChild(toast); + + // Auto-remove after 5 seconds + setTimeout(() => { + toast.classList.add('animate-fade-out'); + setTimeout(() => toast.remove(), 300); + }, 5000); +} + +// ============================================ +// Modal Utilities +// ============================================ + +function openModal(modalId) { + const modal = document.getElementById(modalId); + if (modal) { + modal.classList.remove('hidden'); + // Focus first input + const firstInput = modal.querySelector('input:not([readonly]), select'); + if (firstInput) setTimeout(() => firstInput.focus(), 100); + } +} + +function closeModal(modalId) { + const modal = document.getElementById(modalId); + if (modal) { + modal.classList.add('hidden'); + } +} + +function closeAllModals() { + document.querySelectorAll('[id$="-modal"]').forEach(modal => { + modal.classList.add('hidden'); + }); +} + +// Close modals on Escape key +document.addEventListener('keydown', (e) => { + if (e.key === 'Escape') closeAllModals(); +}); + +// ============================================ +// Loading States +// ============================================ + +function setLoading(element, loading) { + if (loading) { + element.disabled = true; + element.dataset.originalText = element.innerHTML; + element.innerHTML = ` + + + + + `; + } else { + element.disabled = false; + if (element.dataset.originalText) { + element.innerHTML = element.dataset.originalText; + } + } +} + +function showTableLoading(tableBodyId, columns) { + const tbody = document.getElementById(tableBodyId); + if (!tbody) return; + + tbody.innerHTML = ''; + for (let i = 0; i < 5; i++) { + const row = document.createElement('tr'); + row.className = 'border-b border-gray-50'; + for (let j = 0; j < columns; j++) { + row.innerHTML += ` + +
+ + `; + } + tbody.appendChild(row); + } +} + +function showEmptyState(tableBodyId, columns, message = 'No data found') { + const tbody = document.getElementById(tableBodyId); + if (!tbody) return; + + tbody.innerHTML = ` + + + + + +

${escapeHtml(message)}

+ + + `; +} + +// ============================================ +// Utility Functions +// ============================================ + +function escapeHtml(text) { + if (!text) return ''; + const div = document.createElement('div'); + div.textContent = text; + return div.innerHTML; +} + +function formatRole(role) { + const roleConfig = { + admin: { label: 'Admin', class: 'bg-primary-50 text-primary' }, + user: { label: 'User', class: 'bg-gray-100 text-charcoal' }, + userplus: { label: 'User+', class: 'bg-accent-50 text-accent' } + }; + const config = roleConfig[role] || roleConfig.user; + return `${config.label}`; +} + +function debounce(func, wait) { + let timeout; + return function executedFunction(...args) { + const later = () => { + clearTimeout(timeout); + func(...args); + }; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + }; +} + +// ============================================ +// Sidebar Active State +// ============================================ + +function initSidebar() { + const currentPage = window.location.pathname.split('/').pop() || 'index.html'; + document.querySelectorAll('.nav-item').forEach(item => { + const href = item.getAttribute('href'); + if (href === currentPage) { + item.classList.add('active'); + item.classList.remove('text-white/70'); + item.classList.add('text-white'); + } else { + item.classList.remove('active'); + } + }); +} + +// ============================================ +// Update User Info in Sidebar +// ============================================ + +function updateUserInfo() { + const info = api.getCredentialsInfo(); + if (!info) return; + + const accessKeyShort = info.accessKey.length > 12 + ? info.accessKey.substring(0, 12) + '...' + : info.accessKey; + + const roleLabel = info.isAdmin ? 'Admin' : 'User'; + + const userInfoEl = document.getElementById('user-info'); + if (userInfoEl) { + userInfoEl.innerHTML = ` +
+

${escapeHtml(accessKeyShort)}

+

${roleLabel}

+
+ `; + } +} + +/** + * Initialize sidebar with role-based navigation + * Hides admin-only nav items for non-admin users + */ +function initSidebarWithRole() { + initSidebar(); + + // Hide admin-only nav items for non-admin users + if (!api.isAdmin()) { + document.querySelectorAll('[data-admin-only]').forEach(item => { + item.style.display = 'none'; + }); + } +} + +// ============================================ +// Confirm Dialog +// ============================================ + +function confirm(message, onConfirm, onCancel) { + const modal = document.createElement('div'); + modal.className = 'fixed inset-0 z-50'; + modal.innerHTML = ` + +
+
+
+
+ + + +
+

Confirm Action

+

${escapeHtml(message)}

+
+ + +
+
+
+
+ `; + + document.body.appendChild(modal); + + modal.querySelector('#confirm-cancel').addEventListener('click', () => { + modal.remove(); + if (onCancel) onCancel(); + }); + + modal.querySelector('#confirm-ok').addEventListener('click', () => { + modal.remove(); + if (onConfirm) onConfirm(); + }); + + modal.querySelector('.modal-backdrop').addEventListener('click', () => { + modal.remove(); + if (onCancel) onCancel(); + }); +} + + +// ============================================ +// CSS Animations (inject once) +// ============================================ + +const styleEl = document.createElement('style'); +styleEl.textContent = ` + @keyframes slide-in { + from { transform: translateX(100%); opacity: 0; } + to { transform: translateX(0); opacity: 1; } + } + @keyframes fade-out { + from { opacity: 1; } + to { opacity: 0; } + } + .animate-slide-in { animation: slide-in 0.3s ease-out; } + .animate-fade-out { animation: fade-out 0.3s ease-out; } +`; +document.head.appendChild(styleEl); diff --git a/webui/web/users.html b/webui/web/users.html new file mode 100644 index 00000000..a09e6263 --- /dev/null +++ b/webui/web/users.html @@ -0,0 +1,621 @@ + + + + + + + VersityGW Admin - Users + + + + + + + + + + +
+ + + + +
+
+

VersityGW Users

+ +
+ +
+
+ +
+
+

Users

+

Manage gateway user accounts

+
+ +
+ + +
+
+
+ + + + +
+
+ + + + + +
+
All Roles
+
Admin
+
User
+
User+
+
+
+
+
+ + +
+
+ + + + + + + + + + + + + + +
Access KeyRoleUser IDGroup IDProject IDActions
+
+
+
+
+
+
+ + + + + + + + + + diff --git a/webui/webserver.go b/webui/webserver.go new file mode 100644 index 00000000..2c822b65 --- /dev/null +++ b/webui/webserver.go @@ -0,0 +1,140 @@ +// Copyright 2026 Versity Software +// This file is licensed under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package webui + +import ( + "fmt" + "net/http" + "strings" + + "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v2/middleware/filesystem" + "github.com/gofiber/fiber/v2/middleware/logger" + "github.com/gofiber/fiber/v2/middleware/recover" +) + +// ServerConfig holds the server configuration +type ServerConfig struct { + ListenAddr string + Gateways []string // S3 API gateways + AdminGateways []string // Admin API gateways (defaults to Gateways if empty) + Region string + TLSCert string + TLSKey string + CORSOrigin string +} + +// Server is the main GUI server +type Server struct { + app *fiber.App + config *ServerConfig + quiet bool +} + +// Option sets various options for NewServer() +type Option func(*Server) + +// WithQuiet silences default logging output. +func WithQuiet() Option { + return func(s *Server) { s.quiet = true } +} + +// NewServer creates a new GUI server instance +func NewServer(cfg *ServerConfig, opts ...Option) *Server { + app := fiber.New(fiber.Config{ + AppName: "versitygw", + ServerHeader: "VERSITYGW", + DisableStartupMessage: true, + }) + + server := &Server{ + app: app, + config: cfg, + } + + for _, opt := range opts { + opt(server) + } + + server.setupMiddleware() + server.setupRoutes() + + fmt.Printf("initializing web dashboard on %s\n", cfg.ListenAddr) + + return server +} + +// setupMiddleware configures middleware +func (s *Server) setupMiddleware() { + // Panic recovery + s.app.Use(recover.New()) + + // Request logging + if !s.quiet { + s.app.Use(logger.New(logger.Config{ + Format: "${time} | web | ${status} | ${latency} | ${ip} | ${method} | ${path}\n", + })) + } +} + +// setupRoutes configures all routes +func (s *Server) setupRoutes() { + // API endpoint to get configured gateways + s.app.Get("/api/gateways", s.handleGetGateways) + + // Serve embedded static files from web/ + s.app.Use("/", filesystem.New(filesystem.Config{ + Root: http.FS(webFS), + PathPrefix: "web", + Index: "index.html", + NotFoundFile: "index.html", // SPA fallback + Browse: false, + })) +} + +// handleGetGateways returns the configured gateway URLs (both S3 and Admin) +func (s *Server) handleGetGateways(c *fiber.Ctx) error { + adminGateways := s.config.AdminGateways + if len(adminGateways) == 0 { + // Fallback to S3 gateways if admin gateways not configured + adminGateways = s.config.Gateways + } + + return c.JSON(fiber.Map{ + "gateways": s.config.Gateways, + "adminGateways": adminGateways, + "defaultRegion": s.config.Region, + }) +} + +// Serve starts the server +func (s *Server) Serve() error { + addr := strings.TrimSpace(s.config.ListenAddr) + if addr == "" { + return fmt.Errorf("webui: listen address is required") + } + + // Check if TLS is configured + if s.config.TLSCert != "" && s.config.TLSKey != "" { + return s.app.ListenTLS(addr, s.config.TLSCert, s.config.TLSKey) + } + + return s.app.Listen(addr) +} + +// Shutdown gracefully shuts down the server +func (s *Server) Shutdown() error { + return s.app.Shutdown() +}
+ + + + +
+
+

VersityGW Buckets

+ +
+ +
+
+ +
+
+

Buckets

+

View and manage bucket ownership

+
+ +
+ + +
+
+ + + +

+ Note: Create buckets, view existing buckets, and transfer ownership between users. +

+
+
+ + +
+
+
+ + + + +
+
+ + + + + +
+
All Owners
+ +
+
+
+
+ + +
+
+ + + + + + + + + + + + + + + + +
Bucket NameOwnerActions
+
+
+
+
+
+